Skip to content
Makala zote

Kuchora hali za uthibitishaji kulingana na hali ya bidhaa yako

Charles Archibong

, Mwanzilishi mwenza

Endesha bidhaa yako kutoka kwa hali, matokeo, na checkStatus ya duka kando yake kama maelezo. Panga kila moja ya thamani kumi za hali hadi hali moja katika mfumo wako, na uchukue hali ya hivi karibuni kutoka kwa verification.status_updated au upigaji kura.

Kichwa cha habari "Hali imeingia, bidhaa imetoka" kando ya kielelezo cha ngazi tatu zinazoinuka, kwenye mteremko wa kina wa indigo.

Mambo muhimu

  • Tenda kulingana na hali, ambayo ndiyo matokeo; weka checkStatus kama rekodi ya kile ukaguzi otomatiki uligundua.
  • Imeidhinishwa na checkStatus imeshindwa ni ubaguzi uliorekodiwa, si utata, na unastahili kuhifadhiwa.
  • Kwa sheria za uamuzi wa mtiririko wa kazi, verification.completed si ya mwisho; uamuzi unafika kama verification.status_updated.
  • Onyesha sababu kwa mwombaji kuhusu matokeo yaliyoshindwa na ambayo hayakupatikana, kamwe hayakupatikana kwa makosa, pale yanapoelekezwa kwako.

Bidhaa yako inapaswa kubadilisha hali kwenye sehemu moja:statusNi matokeo ya uthibitishaji, na inachukua moja kati ya thamani kumi, kutokanot_startedkwaapprovedDukacheckStatuskando yake, kwa sababu inarekodi kile ukaguzi otomatiki ulipata na ndiyo maelezo pekee utakayopata wakati hizo mbili hazikubaliani. Hazikubaliani mara nyingi zaidi kuliko wahandisi wanavyotarajia, na hiyo ni kwa muundo.

Kwa vitendo hiyo ina maana ya mambo matatu: ramani ya kila moja ya kumistatusthamani hadi hali moja katika mfumo wako, chukua ya hivi karibunistatuskutoka kwaverification.status_updatedwebhook au kutoka kwa upigaji kura badala ya kutoka kwa tukio la kwanza unalopokea, na utumiereasonCode(sio hali ghafi pekee) kuamua cha kumwambia mwombaji. Sehemu iliyobaki ya makala haya inabadilisha hilo kuwa jedwali unaloweza kupitisha na msimbo unaoweza kurekebisha.

Kwa nini kuna sehemu mbili badala ya moja?

Kwa sababu mambo mawili tofauti huamua uthibitishaji. Ukaguzi otomatiki husoma hati, huuliza rekodi ya serikali, hulinganisha uso na kusoma chipu. Kisha uamuzi wa utaratibu wako wa kazi hutawala, au mtu katika timu yako, huamua cha kufanya kuhusu mtu huyo. Nyaraka za mzunguko wa maisha ya uthibitishaji (hufunguka kwenye kichupo kipya) huipa kila swali sehemu yake.

Uwanja

Swali linajibu

Thamani

status

Matokeo yake ni nini?

not_started,in_progress,processing,in_review,awaiting_resubmission,approved,declined,abandoned,expired,error

checkStatus

Hundi ziligundua nini?

pending,verified,failed,not_found,error

statusInafanyiwa kazi kwa mpangilio maalum, na sheria ya kwanza inayotumika inashinda: uamuzi wa mhakiki, kisha uamuzi wa mtiririko wa kazi yako, kisha ukaguzi pekee.checkStatushaibadiliki kamwe kwa sababu ya sheria au mhakiki. Kwa hivyo mwombaji ambaye sura yake hailingani, lakini ambaye mhakiki alimkubali baada ya simu ya video, anaishia nastatus: "approved"nacheckStatus: "failed"Zote mbili ni kweli, na kuhifadhi ya kwanza pekee kungekufanya usiweze kuelezea baadaye kwa nini ubaguzi huo uliruhusiwa.

Kila hali inapaswa kuangaziaje bidhaa yako?

Hapa kuna ramani iliyofanyiwa kazi ya programu ya mikopo inayoonyesha. Akaunti inasema na ujumbe ni mifano; safu wima za kulia ndizo sehemu ya kunakili.

status

Imetulia?

Hali ya akaunti yako (mfano)

Kile mwombaji anaona (mfano)

Kinachofanya sehemu yako ya nyuma

not_started

Hapana

kyc_invited

"Maliza kuthibitisha utambulisho wako"

Hakuna kitu bado. Tuma vikumbusho ikiwa unatumia viungo.

in_progress

Hapana

kyc_in_progress

"Anza pale ulipoishia"

Hakuna kitu bado.

processing

Hapana

kyc_checking

"Tunaangalia maelezo yako"

Subiri. SomawaitingOnikiwa inachukua muda mrefu.

in_review

Hapana

kyc_manual_review

"Mjumbe wa timu yetu anapitia hili"

Subiri. Mtu anahusika.

awaiting_resubmission

Hapana

kyc_action_needed

Ombi la mkaguzi, pamoja na njia ya kurudi kwenye mtiririko

Subiri jaribio jipya.

approved

Ndiyo

kyc_passed

Toa ufikiaji wa bidhaa

Hifadhi matokeo, endelea kuagiza.

declined

Ndiyo

kyc_failed

Ujumbe uliochaguliwa kutokareasonCode

Amua kama jaribio jipya linaruhusiwa.

abandoned

Ndiyo

kyc_dropped

"Anza tena"

Toa uthibitisho mpya.

expired

Ndiyo

kyc_link_expired

"Kiungo chako kimeisha muda wake"

Tuma kiungo kipya.

error

Ndiyo

kyc_retry

"Kuna kitu kimeenda vibaya"

Jaribu tena au wasiliana na usaidizi. Hakuna kilichotozwa.

Chaguo mbili za muundo katika jedwali hilo zinafaa kunakiliwa hata kama utabadilisha jina la kila jimbo.

Kwanza, hali moja kwa kila thamani, hata pale ambapo thamani mbili zinafanana . Inajaribu kukunjwain_reviewndaniprocessingkwa sababu zote mbili zinamaanisha "subiri". Ziweke kando:in_reviewinamaanisha mtu katika timu yako anadaiwa uamuzi, ambao ni kipimo cha foleni ya ndani, hukuprocessingJe, jukwaa linafanya kazi?

Pili,declinedni jimbo moja, huku sababu ikiwa pamoja nalo . Kitambulisho ambacho hifadhidata ya serikali haina nideclinednareasonCode: "identity_not_found", si hadhi tofauti. Tawi kwenye msimbo, si kwenye wingi wa majimbo.

Usindikaji unasubiri nini hasa?

Kwa kawaida, hukaguliwa tu. Lakini wakati mtiririko wako wa kazi unashikilia uamuzi wake kuhusu jambo linaloendelea polepole,processinginaweza kudumu kwa muda mrefu zaidi, na mwisho wa hali unajumuishawaitingOnkusema nini. Maadili yanajumuisha"screening"(vikwazo, PEP au skrini ya vyombo vya habari hasi) na"key_people"(wakurugenzi na wamiliki kwenye ombi la biashara wakikamilisha uthibitishaji wao wenyewe);nullInamaanisha ukaguzi bado unaendelea. Rejeleo la mwisho wa hali (hufunguka kwenye kichupo kipya) linaorodhesha.

Sehemu hiyo ndiyo inayomruhusu mwombaji wako kuchunguzwa kusema jambo muhimu zaidi kuliko kizungushio, na kuiruhusu timu yako ya uendeshaji kuona ni kwa nini programu ya biashara imekuwaprocessingkwa siku mbili.

Kwa nini uthibitishaji.uliokamilika si jibu la mwisho kila wakati?

Kwa sababu inaelezea ukaguzi, si uamuzi. Matukioverification.completed,.failed,.not_foundna.errorhutumwa mara tu ukaguzi unapokamilika. Ikiwa mtiririko wako wa kazi una sheria za uamuzi, hiyo ni kabla ya mtiririko wa kazi kuamua, nastatushuonyesha hundi pekee.

Hukumu hiyo inatolewa baadaye kamaverification.status_updated, pamoja nasource: "workflow"Tukio hilo hilo pia huzuka wakati mhakiki anapoamua kwenye dashibodi (source: "dashboard") au sehemu yako ya nyuma huamua kupitia ukaguzi API (source: "api"HubebapreviousStatusna mpyastatus, na tofauti na matukio mengi hutolewa tambarare badala ya kufungwa kwadatakitu, kama nyaraka za webhooks (hufunguka kwenye kichupo kipya) zinavyoelezea.

Mfano uliotumika hufanya mtego uwe thabiti. Mtiririko wa kazi humnyima mtu yeyote aliye na ulinganisho uliothibitishwa wa orodha ya kutazama. Mwombaji hupita kila hundi:verification.completedinafika nastatus: "approved"Sekunde chache baadaye, kusubiri kwa uchunguzi kunaisha na mtiririko wa kazi unapungua, kwa hivyoverification.status_updatedinafika nastatus: "declined"nasource: "workflow"Ikiwa msimamizi wako alimpa mteja huduma katika tukio la kwanza, umempa mtu ambaye sera yako mwenyewe inamkataa.

Kanuni: ikiwa mtiririko wako wa kazi una sheria za uamuzi, tendeaverification.status_updated(au kura mpya) kama chanzo chastatusBila sheria za uamuzi, ukaguzi ndio uamuzi naverification.completedni ya mwisho isipokuwa mhakiki ataibadilisha baadaye.

Unapaswa kumwambia nini mwombaji?

TumiareasonCodekuchagua ujumbe, na kutumiareasonkwa uangalifu.

Kwenyefailedaunot_foundhundi,reasonimeandikwa kwa ajili ya mwombaji: lugha rahisi ikitaja kile ambacho hakikufanana na cha kufanya baadaye, bila alama, bila kizingiti na bila kusoma chochote kutoka kwa rekodi ya serikali. Unaweza kuionyesha kama ilivyo.

Kwenyeerrormatokeo,reasonimeandikwa kwa ajili yako. Inaweza kusema "ongeza salio lako" au "wasiliana nasi" Toden ", ambayo haimaanishi chochote kwa mwombaji. Waonyeshe ujumbe wa jumla na uelekezereasonkwa timu yako.

reasonCode(mifano)

Hatua inayofuata iliyopendekezwa kwa mwombaji

document_blurry,document_unreadable

Piga picha tena

document_expired

Tumia hati ya sasa

selfie_mismatch

Piga picha ya kujipiga picha tena

identity_not_found,gov_data_mismatch

Angalia nambari na maelezo yaliyoingizwa

provider_error,system_error

Ujumbe wa jumla wa kujaribu tena

Misimbo mipya inaweza kuongezwa baada ya muda, kwa hivyo unganisha msimbo usiotambulika na ujumbe wa jumla wa hitilafu badala ya hitilafu katika msimbo wako.

Hii inaonekanaje katika msimbo?

Kidhibiti kinachotumia sheria zilizo hapo juu, katika TypeScript.accountsSimu ni vihifadhi vya kudumu kwako mwenyewe.

type Status =
  | 'not_started' | 'in_progress' | 'processing' | 'in_review'
  | 'awaiting_resubmission' | 'approved' | 'declined'
  | 'abandoned' | 'expired' | 'error';

const ACCOUNT_STATE: Record<Status, string> = {
  not_started: 'kyc_invited',
  in_progress: 'kyc_in_progress',
  processing: 'kyc_checking',
  in_review: 'kyc_manual_review',
  awaiting_resubmission: 'kyc_action_needed',
  approved: 'kyc_passed',
  declined: 'kyc_failed',
  abandoned: 'kyc_dropped',
  expired: 'kyc_link_expired',
  error: 'kyc_retry',
};

export async function applyVerificationStatus(event: {
  verificationId: string;
  status: Status;
  checkStatus?: string;
  reasonCode?: string | null;
  reason?: string | null;
}) {
  const state = ACCOUNT_STATE[event.status] ?? 'kyc_checking'; // unknown value: keep waiting
  await accounts.updateByVerificationId(event.verificationId, {
    kycState: state,
    kycStatus: event.status,
    kycCheckStatus: event.checkStatus ?? null, // the explanation, kept for audit
    kycReasonCode: event.reasonCode ?? null,
    kycReason: event.reason ?? null,
  });
}

Iite kutoka kwa zote mbiliverification.status_updatedmsimamizi na njia yako ya kupigia kura, ili vyote viwili visiweze kuteleza. Toa uwasilishaji wa webhook kwenyeX-Myaza-Deliverykichwa cha habari kabla ya kuiita.

Nini hutokea wakati uthibitisho unarudishwa?

Inahifadhi kitambulisho chake. Mhakiki anapotuma uthibitishaji na mwombaji akawasilisha tena, uthibitishaji huo huo huanza jaribio jipya:attempthuenda juu kwa moja,checkStatusinarudi kwapending, na ukaguzi unaendelea tena. Ramani yako hushughulikia hili bila kesi maalum: hali huhama kutokaawaiting_resubmissionkwaprocessingna kisha hutatuliwa tena. Kuweka rekodi zako kwenyeverificationId, si kwenye swali la "uthibitisho wa hivi karibuni kwa mtumiaji huyu", ndicho kinachofanya hilo lifanye kazi.

Kwa picha kamili, ikijumuisha kila jaribio la awali na kila uamuzi, somaGET /api/kyc/verifications/:idkutoka sehemu yako ya nyuma yenye ufunguo wa siri. InarudireviewnastatusHistory, mpya zaidi kwanza, kama ilivyoelezwa katika marejeleo ya matokeo ya uthibitishaji (hufunguka kwenye kichupo kipya) .

Orodha ya ukaguzi

  • Hali ya bidhaa moja kwa kilastatusthamani, pamoja nain_reviewnaprocessingkuwekwa kando.

  • checkStatus,reasonnareasonCodeimehifadhiwa karibu nastatus, siku zote.

  • Hivi karibunistatusimechukuliwa kutokaverification.status_updatedau kupiga kura wakati mtiririko wako wa kazi una sheria za uamuzi.

  • Nakala ya mwombaji iliyochaguliwa nareasonCode;reasonimeonyeshwa pekee kwenyefailednanot_found.

  • HaijulikanistatusaureasonCodethamani zinazoshughulikiwa kama "endelea kusubiri" au "kushindwa kwa jumla", si kama ajali.

  • Rekodi zilizowekwa kwenyeverificationId, kwa hivyo uwasilishaji upya husasisha safu mlalo ile ile.

Kitovu cha msanidi programu huunganisha marejeleo ya wavuti na hali yanayotumika hapa.

Vyanzo

Charles Archibong

Kuhusu mwandishi

Charles Archibong

Mwanzilishi mwenza

Charles Archibong ndiye mwanzilishi mwenza wa Toden. Anaandika kuhusu uthibitishaji wa utambulisho, teknolojia ya kifedha, na kazi ya vitendo ya kujenga huduma za kidijitali zinazoaminika.

Jenga bidhaa yako.Tutashughulikia yaliyobaki.

Utambulisho na uzingatiaji tangu mwanzo hadi mwisho, kwa viwango vya kimataifa na bei zinazowafaa waanzilishi.