- 1. daļa, koncepcija. Izlasi to vispirms. v3 ir pārveidojums, nevis pārdēvēšana: ja tu vienu pret vienu attēlosi vecos galapunktus, tu cīnīsies ar API. Desmit minūtes šeit ietaupīs dienas vēlāk.
- 2. daļa, API. Galapunktu attēlojumi, pieprasījumu piemēri, stāvokļu mašīnas un migrācijas kontrolsaraksts.
api.deprecation webhook notikumu, lai saņemtu paziņojumus par izbeigšanu.
Saturs. 1. daļa: 1.1 kāpēc pastāv v3, 1.2 objektu modelis, 1.3 gatavība katrai spējai, 1.4 uzdevumu cilpa, 1.5 naudas kustība, 1.6 stāvokļu mašīnas, 1.7 konvencijas, 1.8 zelta ceļš. 2. daļa: 2.1 klienti, 2.2 spējas, 2.3 uzdevumi un iesniegumi, 2.4 konti, 2.5 saņēmēji un galamērķi, 2.6 cenu piedāvājumi un pārskaitījumi, 2.7 webhooki, 2.8 sandbox, 2.9 mantotie galapunkti, 2.10 migrācijas secība, 2.11 kļūmju kontrolsaraksts.
1. daļa, koncepcija
1.1 Kāpēc pastāv v3
v1 un v2 izauga četros pārklājošos veidos, kā klientu padarīt gatavu maksājumiem:/rails, /banks, /accounts/applications un uzņēmumu rail-applications virsma, katrs ar savu statusu vārdnīcu. Dokumentu ievākšana (/documents, KYC importi, verifikācijas SDK tokeni) bija atrauta no tā, ko tā patiesībā atbloķēja. v3 sakļauj to visu sešos resursos, klientu plus piecas lietas, kas tam pieder:
1.2 Objektu modelis
Divi strukturāli noteikumi, ko internalizēt:- Spējas visu vārti. Konti tiek nodrošināti zem
readyspējas; cenu piedāvājumi tiek cenoti pret spēju. Iekļaušana nozīmē vajadzīgo spēju novešanu līdzready. - Uzdevumi piesaistās jebkur. Spēja, konts vai izpildē esošs pārskaitījums var nest
openTaskIds. Kur vien tos redzi, cilpa ir viena un tā pati: lasi uzdevumu, iesniedz atbildes, gaidi pārskatīšanu, atkārtoti lasi vecāku.
1.3 Gatavība ir katrai spējai, ne katram klientam
v1 sapina/rails gatavību ar klienta mēroga KYC vārtiem. v3 klienta statusa nav: klients var būt pilnībā izmantojams stablecoin_transfers, kamēr viņa sepa spējai vēl ir atvērti uzdevumi. Kopīgā konta spējas parasti nokļūst ready ātrāk nekā vārda spējas, tāpēc sāc darījumus ar to, kas ir ready, nevis gaidi visu.
Ja tavs v1 vai v2 kods vada UI zīmes no klienta verifikācijas statusa, pārraksti to:
- „Vai viņi var veikt darījumus X?” kļūst par spēju X
status == "ready". - „Vai viņiem kaut kas jādara?” kļūst par jebkuru uzdevumu ar statusu
action_required(spēja parasti rādarestrictedarstatusReason.resolution: "complete_tasks"). - „Vai gaidām uz Swipelux?” kļūst par uzdevumiem
in_review, spējupending.
1.4 Uzdevumu cilpa
Viss, ko darīja vecā dokumentu un KYC virsma, tagad ir šī viena cilpa: Galvenās īpašības:- Uzdevums nes
requirements[], atsevišķus lūgumus. Katram ir katrā uzdevumārequirementId, stabilskey, kas nosauc lūgumu (piemēram, adreses pierādījums, izmanto to UI dedublēšanai) un tipizētsrequest, kas precīzi apraksta vēlamo ievadi (teksts, datums, izvēle, dokuments, apliecinājums un tā tālāk). - Iesniegšana ir pārskatīšanas vārtoti: tā nekad tieši nemaina spējas vai konta stāvokli, tikai pieņemšana to dara. Viens izņēmums:
profileatbildes iesniegšanas brīdī tiek rakstītas klienta profilā (2.3). Pēc iesniegšanas apjautā uzdevumu vai vecāka resursu. taskRevision(uzdevumarevisionatbalss) ir konkurentuma sargs: ja uzdevums ir mainījies kopš tā, kad tu to nolasīji, nolasi vēlreiz un pārbūvē atbildes.absenceir pirmās klases atbilde („man tā nav, jo…”), izmanto to tā vietā, lai prasības paliktu nepabeigtas.
1.5 Naudas kustība
Viena plūsma iemaksām, izmaksām un stablecoin kustībām. Nav virziena ievades, tu nekad nedeklarē payin vai payout. Ienākošā un izejošā valūtas forma atvasina tikai lasāmudirection uz cenu piedāvājuma un pārskaitījuma: fiat_to_stablecoin (payin), stablecoin_to_fiat (payout) vai stablecoin_move.
1.6 Viena stāvokļu mašīna vienam resursam
Katram statusu nesošam resursam ir savs enum, un katrs nelaimīgais statuss nes strukturētu iemeslu. Konti, pieteikumi un pārskaitījumi dala formu{ code, message, actor, retryable }: konti un pieteikumi to izliek kā statusReason, pārskaitījumi kā stateDetail. actor norāda, kam jārīkojas (customer, developer, provider, network, swipelux), retryable norāda, vai atkārtota mēģināšana var palīdzēt. Spējas izmanto { code, resolution, message }, kur resolution (complete_tasks, wait, contact_support, none) norāda, kas virza spēju uz priekšu. code vērtības ir atvērts, tikai papildināms katalogs: sazarojies pēc resolution (vai actor plus retryable) un pieņem vēl neredzētus kodus.
Stāvokļus, ko šis ceļvedis neizspēlē (
rejected, suspended, disabled, failed, canceled), ir termināli vai atbalsta virzīti; katra resursa definīcijas ir specifikācijā.
Transfer, izvērsts:
1.7 Konvencijas
Idempotences noteikumi, ko iemācīties, pirms rakstīt kodu:
- Atslēgas atkārtota izmantošana ar atšķirīgu saturu ir
409 idempotency_conflicttik ilgi, kamēr atslēga tiek saglabāta (vismaz 7 dienas), tāpēc nekad neplāno atslēgu atkārtoti izmantot. Ģenerē svaigu UUID katrai loģiskai operācijai un saglabā to kopā ar savu darbu. - Atkārtojums aptver arī kļūdas: ja sākotnējais pieprasījums beidzās ar termināli 4xx, tā pati atslēga plus saturs atgriež to pašu problēmas atbildi vēlreiz.
- Divi vienlaicīgi pieprasījumi ar to pašu atslēgu: viens uzvar, otrs saņem
409. Atkārto zaudētāju pēc tam, kad uzvarētājs ir noslēdzies; atkārtojums atgriež sākotnējo atbildi.
1.8 Zelta ceļš
2. daļa, API
2.1 Klienti
Izveide, diskriminēta pēc
type (ilustratīvas vērtības, lauku nosaukumi pēc specifikācijas):
- Izveide ir pakāpeniska:
{ "type": "individual" }viens pats ir derīga izveide. Trūkstoši fakti nekad neatceļ klientu, tie vēlāk parādās kā uzņemšanas uzdevumi uz tām spējām, kurām tie nepieciešami. - Uzņēmumiem ir
businessplus reģistrācijas dati. v1 shareholder CRUD attēlojas uz related parties, paplašinātām, lai aptvertu direktorus, amatpersonas un īpašniekus: izveido tos iekļauti klienta izveidē (katrs saņem stabilurp_id) vai pārvaldi tos caur dedicētajiem related-parties galapunktiem. - Nav klienta
statuslauka, skati 1.3. - Esošie klienti tiek pārnesti: v1 vai v2 izveidoti klienti ir adresējami ar to pašu id uz v3 galapunktiem. v3 lasījums ir attīrīts skats, mantotās vērtības, kas neiztur v3 validāciju, atgriežas prombūtnē. Pēc tavas pirmās v3 rakstīšanas šis skats kļūst pastāvīgs: prombūtnes vērtības pašas neatgriežas. Tāpēc bagātini agri, ieplāno vienreizēju piegājienu, kas
PATCHo pilnu profilu no taviem paša ierakstiem, pirms paļaujies uz v3 lasījumiem. v1metadatair atsevišķa vārdu telpa un netiek pārnesta, iestati to no jauna uz v3. externalIdir pirmās klases un unikāls starp taviem klientiem uz v3, katrā vidē (409 duplicate_external_id). Klienta arhivēšana neatbrīvo tāexternalId, notīri to ar PATCH pirms DELETE, ja plāno to atkārtoti izmantot.DELETEir arhivēšanas kaskāde (nav atjaunošanas; id nekad netiek atkārtoti izmantoti). Tas tiek bloķēts ar409 customer_has_active_resourcesplusblockingResources[], kamēr eksistē kāds nearchivēts konts vai izpildē esošs pārskaitījums.- PATCH sapludināšanas noteikumi: skaidrs
nullnotīra nullable lauku, masīvi tiek aizstāti pilnībā (izņemot iekļautas related parties, kas tiek upsertētas pēc id),metadataatslēgas tiek sapludinātas. Pilnas shēmas un saraksta filtri ir OpenAPI specifikācijā.
2.2 /rails, /banks, pieteikumi kļūst par Capabilities
- Spēja ir
method(ach,wire,rtp,pix,sepa,swift,spei,pse,transfers_3_0,faster_payments,sepa_instant,uaefts,card,stablecoin_transfersun tā tālāk) plusaccountType(pooledvainamed,nullne-banku metodēm) plusdirections(payinvaipayout). PubliskaiscapabilityIdir kvalificēts pāris (sepa_pooled,ach_named) vai kailā metodecardunstablecoin_transfersgadījumā. - Katrs spējas pieprasījums rada application, ierakstu par katru mēģinājumu zem
.../capabilities/{capabilityId}/applications(plus/{applicationId}/history), ar saviem statusiem (1.6) unstatusReason. Tas ir pieprasījuma audita pēdas; ikdienā apjautā pašu spēju. capabilities/supportedatgriež pieejamību (available,betavaidisabled), tiesības un piedāvātās iestādes. Bankas izvēle notiek pieprasījuma brīdī caur opcionāloinstitutionsmasīvu, nav atsevišķa/banksresursa. Tā izlaišana (vai[]sūtīšana) izvēlas katru noklusējuma iestādi;isDefault: trueir klienta-un-spējas specifisks karogs, ne globāls. Tukšs saraksts pārraksta noklusējumus, un banku spēja bez piemērota noklusējuma atgriež422 capability_institutions_required. Iestāžu id ir necaurspīdīgi, pieņem jaunus.stablecoin_transferstiek automātiski piešķirts klienta izveidē un dzimstready(tātad tas nekad netiek pieprasīts un nav atceļams).cardir tikai individuālajiem.openTaskIdsuz spējas ir tavs „ko darīt tālāk” rādītājs. Atvērts nozīmēaction_requiredvaiin_review, un apkopojums iekļauj koplietotus klientu līmeņa uzdevumus, kas sasniegti caur aktīvām atkarībām.canceldarbojas tikai nopendingvairestrictedun bez bloķējošiem resursiem, citādi409 capability_not_cancelable, kura problēmas saturs uzskaitablockingResources. Atkārtota pieprasīšana pēc atcelšanas ir svaiga izveide ar jaunu idempotences atslēgu.- Apjautā GET. Spējas stāvoklis atjaunojas, kad tu to lasi; apjautā
GET .../capabilities/{capabilityId}vai abonēcapability.status_changed, neveido kešu. - Vienas metodes pieprasīšana var uzreiz padarīt pieejamas saistītas metodes, izturies pret spējām kā pret kopu, ko atkārtoti lasi, ne kā pret vienu rindu, ko izseko.
- Izmanto
tasks-preview, lai parādītu uzņemšanas lūgumus pirms apņemšanās pie pieprasījuma. - Verifikācija nav vienreizēja: jauni uzdevumi var parādīties uz jau
readyspējas (periodiska vai notikumu vadīta atkārtota verifikācija). Turi uzdevumu cilpu ievadītu visu klienta dzīves ciklu, ne tikai uzņemšanai.
2.3 Dokumenti un KYC kļūst par Tasks un Submissions
Nosaukuma piezīme. Šie galapunkti īsu brīdi tika izlaisti kā
requirements un fulfillments. Kopš 2026-08-02 publiskie nosaukumi ir tasks un submissions. Pārdēvēšana aptvēra tikai resursus un galapunktu ceļus, requirements[] masīvs uzdevuma iekšpusē un tā requirementId saglabā šos nosaukumus.GET /v3/customers/{customerId}/tasks, atbildi ar POST .../tasks/{taskId}/submissions.
Ap šo cilpu:
- Neapstrādāta failu glabāšana:
POST/GET/DELETE /v3/customers/{customerId}/documents(plus/{documentId}), augšupielādē vienreiz ar savu API atslēgu, tad atsaucies uz dokumenta id iesniegumu atbildēs. Tas aizstāj katru upload-token un direct-upload uzņemšanu. - Jauni lasījumi:
GET /v3/tasks(tirgotāja mēroga iesūtne),GET /v3/transfers/{transferId}/tasks,GET .../tasks/{taskId}/history,GET .../tasks/{taskId}/submissions(plus/{submissionId}).
- Atbildes tipi:
profile,text,date,single_select,multi_select,boolean,attestation,document,resource_reference,absence. Katras prasībasrequestobjekts pasaka, kādu tipu tas sagaida. - Iesniegumam jāatbild uz katru rīcības prasīgu prasību pašreizējā kārtā, ar tieši to
taskRevision, ko tu nolasīji. Daļēji iesniegumi tiek noraidīti. profileatbildes raksta cauri: tās atjaunina klienta profilu pa normālu validācijas ceļu un uzreiz pārvērtē katru spēju, kas atsaucas uz to pašu uzņemšanas darbu. Brāļu uzņemšanas uzdevumi, kuru prasības visas ir izpildītas, automātiski aizveras.- Prasības var veidot alternatīvas grupas (
alternativeKey): iesniedz tieši vienu no grupas. changes_requestedpalielinaremediationRoundun nesreviewFeedback. Nolasi uzdevumu vēlreiz, iesniedz vēlreiz ar svaigu idempotences atslēgu.- Mitinātās verifikācijas URL parādās tikai klientam apjomotā uzdevuma detalizācijā (
GET /v3/customers/{customerId}/tasks/{taskId}) un tikai kamēr sesija ir rīcības prasīga; saraksti unGET /v3/tasks/{taskId}ir apzināti bez URL. - Lietošanas noteikumi arī ir uzdevums:
openTaskIdsvar iekļautcategory: "terms_of_service"uzdevumu, kura mitinātā pieņemšanas lapa ir saistīta tāpat (tikai klientam apjomota detalizācija). Vispārīgi iesniegumi nevar pieņemt noteikumus, un KYC apstiprinājums nekad nenozīmē noteikumu pieņemšanu. - Uzdevumi ir apjomoti pa spējām, tāpēc „tas pats” lūgums (piemēram, adreses pierādījums) var parādīties vienreiz katrai spējai. Dedublē UI pēc prasības
key. - Nav tulkošanas slāņa: postēšana uz
/v1/documentsneatbloķēs v3 spējas. Kad klients ir uz v3, virzi visus lūgumus caur uzdevumiem.
2.4 Konti un maki
Izveide, diskriminēta pēc
origin plus type. Izsniegti bankas konti ņem vienu method; ārējie bankas konti tā vietā ņem methods masīvu (method sūtīšana tur tiek noraidīta):
countryuz izsniegtiem bankas kontiem ir opcionāls (noklusēts pēc metodes); uz ārējiem bankas kontiem norādi to skaidri. Maku kontiem nav valsts vispār.settlement.accountIdir obligāts uz izsniegtiem bankas kontiem: tas nosauc izsniegto maka kontu, kas saņem norēķinātos līdzekļus no iemaksām bankas kontā.- Izsniegtie konti izliek
details(IBAN vai routing plus konts vai adrese), versionēturouting(iemaksas koordinātas var mainīties, vienmēr renderē jaunāko lasījumu),fees,balances. - Tīkli:
polygon,ethereum,base,arbitrum,optimism,bsc,avalanche. - Spējas vārti attiecas tikai uz issued kontiem: viena izveidošana pret ne-ready spēju neizdodas ar spējas kodētu kļūdu, pieprasi spēju vispirms (2.2). Ārējiem kontiem nav vajadzīga spēja (un nav vajadzīgs klienta apstiprinājums); tie saņem tikai pieprasījuma-shēmas un bankas-detaļu validāciju.
- Izsniegtie bankas konti piedzimst
provisioningardetails: null. Apjautā kontu vai vēroaccount.status_changed, līdzready. DELETEarhivē, nekad neveic pilnīgu dzēšanu. Konti, uz kuriem atsaucas izpildē esoši pārskaitījumi, atgriež409 account_has_active_transfers. Atkārto pēc tam, kad šie pārskaitījumi sasniedz termināli stāvokli.- Jauns v3: Rules, pastāvīgas instrukcijas uz izsniegta maka konta (
POST/GET /v3/customers/{customerId}/rules,GET/PATCH/DELETE .../rules/{ruleId}), kas automātiski aizskalo ienākošos līdzekļus uz citu kontu vai maka galamērķi. Nav v1 vai v2 ekvivalenta.
2.5 Saņēmēji un galamērķi
v2 nebija saņēmēja koncepta. Ja tu esi uz v2 un izmaksā trešajām pusēm, tā ir jauna virsma, ne pārdēvēšana.
- Recipient ir kas:
individual(vārds un uzvārds) vaibusiness(uzņēmuma nosaukums), ar obligāturelationship(employee,contractor,vendor,subsidiary,merchant,customer,landlord,family,other). Saņēmēji un galamērķi ir tikai trešajām pusēm. Pirmās puses izmaksa nemaz neizmanto saņēmēju: mērķē uz vienu no klienta pašaacc_kontiem kā piedāvājumadestinationId(2.6). - Destination ir kur: tipizēts pa metodei,
sepa(iban, bic opcionāls),achvaiwire(routing plus konts),swift(pilnas koordinātas plus opcionāls starpnieks),spei(clabe),pse,transfers_3_0(cbu) un tā tālāk, plus maku galamērķi. Katram galamērķim ir savs statuss. Vērodestination.status_changed. - Fiat galamērķiem nepieciešama saņēmēja pilnīga
address(iela, pilsēta, pasta indekss, valsts) pirms izveides. Trūkstošas daļas neizdodas ar422 recipient_address_required. Maku galamērķi izlaiž adresi, bet prasa augšējā līmeņaownership(self_custodiedvaicustodialar glabātāja nosaukumu). - Labuma saņēmēja vārda precizitāte ir svarīga: saņemošās bankas saskaņo konta juridisko vārdu. Sūti precīzu juridisko vārdu plus uzvārdu vai uzņēmuma nosaukumu, ne attēlojamo iesauku.
- Metodei specifisku galamērķa lauku shēmas ir OpenAPI specifikācijā.
2.6 Cenu piedāvājumi un pārskaitījumi
destinationIdņemacc_(klienta piederošs konts) vaidst_(saņēmēja galamērķis) id. Fiat-finansētiem piedāvājumiem (iemaksām) jāmērķē uzacc_kontu,dst_mērķis vienmēr nozīmē izmaksu (422 quote_direction_invalidcitādi).externalIduz piedāvājumiem un pārskaitījumiem ir nu unikāla korelācijas atsauce (atbalsota lasījumos, filtrējama sarakstos). Katra vides unikalitātes noteikums (2.1) attiecas tikai uz klientaexternalId.- Izpildi piedāvājumu tieši vienreiz, pirms
expiresAt. Beidzies piedāvājums neizdodas ar409 quote_expired, otrā izpilde ar409 quote_already_executed(problēma nes esošotransferId). - Pārskaitījuma atcelšana vēl netiek atbalstīta:
POST .../cancelatgriež409 transfer_not_cancelablekatrā stāvoklī. Šodienascanceledpārskaitījumi nāk no finansēšanas loga beigām nefinansētai iemaksai, ne no šī galapunkta. - Iemaksas sākas ar
awaiting_funds: renderēGET .../instructionsmaksātājam, bankas koordinātas plus atsauces vai memo kodu fiat, iemaksas adresi kripto. Atsauces kods ir tas, kā iemaksa tiek saskaņota. Vienmēr to attēlo. stateplusstateDetailmašīnlasāmiem apakšstāvokļiem;action_requirednozīmē, ka ir pievienots atbilstības uzdevums (openTaskIds,GET .../tasks), atbildi caur iesniegumiem.- Ienākošās iemaksas, kas atklātas uz izsniegtiem kontiem, parādās kā pārskaitījumi ar
origin: "inbound_deposit"(pretstatā"quoted"). - Maksājumu tīkla atsauces konsolidētas zem
references:transactionHash,traceNumber,imad,uetr,explorerUrl,returnedTransferId.
Divi migrācijas brīdinājumi:
- Pārskaitījumi nešķērso versijas. Pārskaitījumi, kas izveidoti uz v1 vai v2, nav nolasāmi no v3. Saraksts tos izlaiž un
GET /v3/transfers/{transferId}atgriež 404. Vispirms pārslēdz izveidi, saglabā v1 lasīšanas ceļu, līdz šie pārskaitījumi sasniedz termināli stāvokli, tad noņem to. - Nav tokenu maiņas.
stablecoin_moveprasa vienu un to pašu valūtu iekšā un ārā: USDC uz USDT neizdodas ar422 recipient_destination_invalid, kas nescurrency_mismatchlauka kļūdu. Tas pats tīkls abās pusēs, nav tilta, un maka-uz-maka kustības šobrīd atbalsta tikai bezmaksas piegādi: piedāvājums, kura platformas vai izstrādātāja maksa nav nulle, neizdodas ar422 amount_not_deliverable.
2.7 Webhooki
Notikumu katalogs:
customer.created, customer.updated, customer.archived, capability.created, capability.status_changed, application.status_changed, recipient.status_changed, destination.status_changed, account.created, account.status_changed, account.details_changed, transfer.created, transfer.state_changed, api.deprecation.
GET /v3/webhooks/portalatgriež mitināta pārvaldības portāla URL piegādes žurnāliem, atkārtojumiem un manuālai atkārtošanai.transfer.createdpašlaik tiek piegādāts ar mantoto v1 satura formu (v3 aploksne aktivizēsies, kad v1 webhooki beigsies). Uzskati to tikai kā norādi un GET pārskaitījumu; neveido pret tā saturu.- Notikumi ir norādes: saņemot, GET resursu un rīkojies pēc lasījuma. Nekad neveido stāvokli no notikumu satura vai secības. Piegāde ir vismaz vienreiz un var būt aizkavēta vai pārkārtota. Dedublē pēc notikuma id un atgūsti izlaistus notikumus ar katra saraksta iekļaujošo
updatedAfterfiltru. - Abonē
api.deprecation, mašīnu kanālu versiju izbeigšanai. - Šodien nav
task.*notikuma: pēc iesniegšanas apjautā uzdevumu vai tā vecāku.
2.8 Sandbox
Tas pats bāzes URL; sandbox API atslēga izvēlas vidi.
v3 sandbox simulē pārskatīšanas cilpu no gala līdz galam: izveido uzdevumu, iesniedz pret to,
review to uz accepted vai rejected, vēro spējas atbloķēšanu. Izmēģini savu remediācijas UX pirms produkcijas. Gan sandbox izveidotie uzdevumi, gan parastie uzņemšanas uzdevumi, kas parādās uz pieprasītām spējām, ir pārskatāmi šādi; tāpat kā produkcijā, uzdevumu webhooki neizdarās, apjautā (2.7).
2.9 Mantotie galapunkti bez v3 aizvietojuma
Šiem nav v3 aizvietojuma. Vairums paliek uz v1 nemainīgi (turi savus esošos izsaukumus); divi tiek pilnībā atcelti (skati Rīcību):
Katrs cits publiskais v1 vai v2 galapunkts parādās augstāk kādā attēlojuma tabulā.
2.10 Ieteicamā migrācijas secība
Katrs solis piegādājams neatkarīgi; v1 vai v2 un v3 darbojas paralēli pret to pašu klientu bāzi. Izmēģini katru soli pret savu sandbox atslēgu (2.8) pirms atkārtot to produkcijā.1
Cauruļvads
Idempotency-Key uz visiem efektu radošiem pieprasījumiem (POST, PATCH, PUT, DELETE; sandbox galapunkti izņemti); nauda kā virknes; kursora lappošanas palīgi.2
Webhooki
Reģistrē v3 galapunktus katram notikumam, ieskaitot
api.deprecation. v1 vienotā galapunkta konfigs ir atsevišķa virsma, atstāj to vietā; abi darbojas paralēli līdz iztukšošanai 9. solī.3
Profila bagātināšana
PATCH /v3/customers/{id} ar pilno profilu, kas tev ir (v1 vāca mazāk nekā v3 izliek) un iestati metadata no jauna. Padari to apzināti par pirmo v3 rakstīšanu katram klientam: tas aizpilda attīrītu skatu pirms tas kļūst pastāvīgs (2.1).4
Lasījumi
Norādi klienta, spējas un konta lasījumus uz v3; pārraksti klienta-statusa loģiku pēc 1.3. Tikai pēc 3. soļa, ne bagātinātie lasījumi atgriežas ar mantoti-nederīgiem laukiem prombūtnē.
5
Uzņemšanas rakstījumi
Izveido caur
POST /v3/customers; pieprasi spējas nevis /rails, /banks vai pieteikumus; veido uzdevumu cilpu (lielākais jaunais UI darbs, tasks-preview palīdz parādīt lūgumus iepriekš). No šī punkta pārstāj postēt /v1/documents v3-vadītiem klientiem, tie neatbloķē spējas (2.3).6
Konti
Izsniedz caur v3; pārceļ importus uz
origin: external.7
Izmaksas
Saņēmēji plus galamērķi, tad piedāvājums un pārskaitījums.
8
Iemaksas
Piedāvājums, pārskaitījums, instrukcijas; saglabā atsauces koda renderēšanu.
9
Iztukšošana
Pārskaitījumi nešķērso versijas (2.6). Saglabā v1 vai v2 lasīšanas ceļu un v1 webhook galapunktu tur izveidotajiem pārskaitījumiem, lasi dubulti, līdz tie sasniedz termināli stāvokli, tad noņem veco klientu un v1 webhook konfigu.
2.11 Kļūmju kontrolsaraksts
- Svaigs UUID par katru loģisko operāciju, saglabāts kopā ar darbu un atkārtoti izmantots atkārtotā mēģinājumā; nekad atkārtoti neizmanto atslēgu ar mainītu saturu (
409 idempotency_conflict). Sandbox galapunkti ir atbrīvoti no galvenes. - Bagātini esošos klientus (
PATCHpilno profilu, iestatimetadatano jauna, tā netiek pārnesta) pirms jebkuras citas v3 rakstīšanas, pirmā v3 rakstīšana padara attīrīto skatu pastāvīgu. -
externalIdir unikāls katrā vidē un netiek atbrīvots ar arhivēšanu, notīri to arPATCHpirmsDELETE, ja plāno to atkārtoti izmantot. - Nav klienta
statuslauka, atvasini gatavību katrai spējai. -
action_requiredunin_reviewabi nozīmē atvērtu uzdevumu. - Iesniegumi ir pārskatīšanas vārtoti (iesniegšana nav tas pats, kas atbloķēšana) un jāatbild uz katru rīcības prasīgu prasību ar tieši
taskRevision. Neatbilstības gadījumā nolasi vēlreiz un pārbūvē. - Nav
task.*webhook, apjautā uzdevumu (vai tā vecāku) pēc katra iesnieguma. -
changes_requestedatkārtojums ir: nolasi uzdevumu vēlreiz, svaigas atbildes, svaiga idempotences atslēga. - Postēšana uz
/v1/documentsnekad neatbloķē v3 spēju, kad klients ir uz uzdevumiem, virzi katru lūgumu caur uzdevumiem. - Jauni uzdevumi var parādīties uz jau
readyspējas, turi uzdevumu cilpu ievadītu pēc uzņemšanas, ne tikai tās laikā. - Spējas
canceldarbojas tikai nopendingvairestrictedbez bloķējošiem resursiem (409 capability_not_cancelable); atkārtota pieprasīšana pēc atcelšanas ir svaiga izveide ar svaigu idempotences atslēgu. - Spējai jābūt
readypirms zem tās var izsniegt kontus vai pret to piedāvāt. - Piedāvājumam ir summa tieši vienā pusē; nav virziena lauka; izpildi tieši vienreiz pirms
expiresAt(409 quote_expiredvai409 quote_already_executed). - Stablecoin kustības ir tikai tās pašas valūtas, tā paša tīkla (USDC uz USDT neizdodas ar
422); maks-uz-maks atbalsta tikai bezmaksas piegādi. -
DELETEarhivē, nekad neveic pilnīgu dzēšanu. Konta dzēšanu bloķē izpildē esoši pārskaitījumi (409 account_has_active_transfers); klienta dzēšanu papildus bloķē jebkurš nearchivēts konts (409 customer_has_active_resources,blockingResources[]tos nosauc). - v1 vai v2 pārskaitījumi nav redzami v3 lasījumiem (saraksts izlaiž, GET 404), lasi dubulti līdz iztukšošanai, tad noņem vecos ceļus.
- Iemaksas
routingun instrukcijas var mainīties, vienmēr renderē jaunāko GET un vienmēr rādi atsauces kodu. - Webhooki ir norādes; GET ir patiesība, dedublē pēc notikuma id, atgūsti izlaistus notikumus ar
updatedAfter.