- Del 1, konseptet. Les dette først. v3 er en omforming, ikke en omdøping: hvis du mapper gamle endepunkter én-til-én, kjemper du mot API-et. Ti minutter her sparer deg for dager senere.
- Del 2, API-et. Endepunkt-for-endepunkt-mapping, forespørselseksempler, tilstandsmaskiner og en migreringssjekkliste.
api.deprecation for utfasingsvarsler.
Innhold. Del 1: 1.1 hvorfor v3 finnes, 1.2 objektmodell, 1.3 klarhet per capability, 1.4 task-løkken, 1.5 pengeflytting, 1.6 tilstandsmaskiner, 1.7 konvensjoner, 1.8 den gyldne veien. Del 2: 2.1 kunder, 2.2 capabilities, 2.3 tasks og submissions, 2.4 kontoer, 2.5 mottakere og destinations, 2.6 quotes og transfers, 2.7 webhooks, 2.8 sandbox, 2.9 eldre endepunkter, 2.10 migreringsrekkefølge, 2.11 fallgruvesjekkliste.
Del 1, konseptet
1.1 Hvorfor v3 finnes
v1 og v2 lot fire overlappende måter vokse frem for å gjøre en kunde klar for betaling:/rails, /banks, /accounts/applications og forretnings-rail-applications-overflaten, hver med sitt eget statusvokabular. Dokumentinnsamling (/documents, KYC-import, verifikasjons-SDK-tokens) var frakoblet fra det den faktisk skulle låse opp. v3 samler alt dette i seks ressurser, kunden pluss fem ting den eier:
1.2 Objektmodellen
To strukturelle regler å internalisere:- Capabilities styrer alt. Kontoer opprettes under en
readycapability; quotes prises mot en capability. Onboarding betyr å få de nødvendige capabilities tilready. - Tasks kan henge hvor som helst. En capability, en konto eller en pågående transfer kan bære
openTaskIds. Uansett hvor du ser dem, er løkken den samme: les task, send inn svar, vent på gjennomgang, les foreldreobjektet på nytt.
1.3 Klarhet er per capability, ikke per kunde
v1 blandet/rails-klarhet med en kundeomfattende KYC-port. I v3 finnes det ingen kundestatus: en kunde kan være fullt brukbar på stablecoin_transfers mens sepa-capabilityen fortsatt har åpne tasks. Capabilities med sammenslåtte kontoer når ready som regel raskere enn navngitte, så begynn å transactere på det som er ready i stedet for å vente på alt.
Hvis v1- eller v2-koden din baserer UI-merker på kundens verifikasjonsstatus, må du skrive den om:
- “Kan de transactere på X?” blir capability X
status == "ready". - “Må de gjøre noe?” blir en task med status
action_required(capabilityen viser typiskrestrictedmedstatusReason.resolution: "complete_tasks"). - “Venter vi på Swipelux?” blir tasks i
in_review, capabilitypending.
1.4 Task-løkken
Alt det gamle dokument- og KYC-overflaten gjorde, er nå denne ene løkken: Sentrale egenskaper:- En task bærer
requirements[], de enkelte forespørslene. Hver har en task-spesifikkrequirementId, en stabilkeysom navngir forespørselen (for eksempel adressebekreftelse, dedupliser UI-en din på denne) og et typetrequestsom beskriver nøyaktig hva slags inndata som kreves (tekst, dato, valg, dokument, attestasjon og så videre). - Innsending er gjennomgangs-styrt: den endrer aldri capability- eller kontostatus direkte, det gjør aksept. Ett unntak:
profile-svar skrives direkte inn i kundeprofilen ved innsending (2.3). Etter innsending poller du tasken eller foreldreressursen. taskRevision(ekko av taskensrevision) er en samtidighetsvakt: har tasken endret seg siden du leste, må du lese på nytt og bygge svarene på nytt.absenceer et fullverdig svar (“Jeg har ikke dette fordi …”), bruk det i stedet for å la krav henge.
1.5 Pengeflytting
Én flyt for payins, payouts og stablecoin-flyttinger. Det finnes ingen retningsinndata, du deklarerer aldri payin kontra payout. Formene på inn- og utvalutaen avleder en skrivebeskyttetdirection på quoten og transferen: fiat_to_stablecoin (payin), stablecoin_to_fiat (payout) eller stablecoin_move.
1.6 Én tilstandsmaskin per ressurs
Hver statusbærende ressurs har sin egen enum, og hver ikke-lykkelig status bærer en strukturert årsak. Kontoer, applications og transfers deler formen{ code, message, actor, retryable }: kontoer og applications viser den som statusReason, transfers som stateDetail. actor sier hvem som må handle (customer, developer, provider, network, swipelux), retryable sier om det hjelper å prøve på nytt. Capabilities bruker { code, resolution, message }, der resolution (complete_tasks, wait, contact_support, none) sier hva som fører capabilityen videre. code-verdier er en åpen, kun-utvidbar katalog: forgren på resolution (eller actor pluss retryable), og tolerer koder du aldri har sett før.
Tilstander denne guiden ikke går gjennom (
rejected, suspended, disabled, failed, canceled) er terminale eller support-drevne; definisjoner per ressurs finnes i spesifikasjonen.
Transfer, tegnet ut:
1.7 Konvensjoner
Idempotensregler verdt å internalisere før du skriver kode:
- Å gjenbruke en nøkkel med en annerledes body gir
409 idempotency_conflictså lenge nøkkelen oppbevares (minst 7 dager), så planlegg aldri å gjenbruke en nøkkel. Generer en ny UUID per logisk operasjon og lagre den sammen med jobben din. - Replay dekker også feil: hvis den opprinnelige forespørselen endte i en terminal 4xx, gir samme nøkkel pluss body samme problemsvar igjen.
- To samtidige forespørsler med samme nøkkel: én vinner, den andre får
409. Prøv taperen på nytt etter at vinneren er ferdig; replayen returnerer det opprinnelige svaret.
1.8 Den gyldne veien
Del 2, API-et
2.1 Kunder
Opprette, skilt på
type (illustrative verdier, feltnavn per spesifikasjon):
- Opprettelse er progressiv:
{ "type": "individual" }alene er en gyldig opprettelse. Manglende opplysninger gjør aldri kunden ugyldig, de dukker opp senere som intake-tasks på capabilities-ene som trenger dem. - Virksomheter bærer
businesspluss registreringsdata. v1s shareholder-CRUD mappes til related parties, utvidet til å dekke direktører, ledere og eiere: opprett dem inline ved kundeopprettelse (hver får en stabilrp_-id) eller administrer dem via de dedikerte related-parties-endepunktene. - Ingen kunde-
status-felt, se 1.3. - Eksisterende kunder overføres: kunder opprettet på v1 eller v2 er adresserbare med samme id på v3-endepunktene. v3-lesningen er en renset visning, eldre verdier som ikke består v3-validering kommer tilbake som fraværende. Etter din første v3-write blir visningen permanent: fraværende verdier kommer ikke tilbake av seg selv. Berik derfor tidlig, sett av en engangs-runde som
PATCH-er den fulle profilen fra dine egne poster før du stoler på v3-lesninger. v1-metadataer et separat navneområde og overføres ikke, sett det på nytt på v3. externalIder førsteklasses og unik på tvers av alle kundene dine i v3, per miljø (409 duplicate_external_id). Arkivering av en kunde frigjør ikkeexternalId, tøm den via PATCH før DELETE hvis du vil gjenbruke den.DELETEer en arkiveringskaskade (ingen gjenoppretting; ids gjenbrukes aldri). Den blokkeres med409 customer_has_active_resourcesplussblockingResources[]så lenge det finnes en ikke-arkivert konto eller pågående transfer.- PATCH-mergeregler: eksplisitt
nulltømmer et nullbart felt, arrayer erstattes fullstendig (unntatt inline related parties, som upsertes etter id),metadata-nøkler slås sammen. Fulle skjemaer og listefiltre finnes i OpenAPI-spesifikasjonen.
2.2 /rails, /banks, applications blir Capabilities
- En capability er
method(ach,wire,rtp,pix,sepa,swift,spei,pse,transfers_3_0,faster_payments,sepa_instant,uaefts,card,stablecoin_transfersog så videre) plussaccountType(pooledellernamed,nullfor ikke-bankmetoder) plussdirections(payinellerpayout). Den offentligecapabilityIder det kvalifiserte paret (sepa_pooled,ach_named) eller kun metoden forcardogstablecoin_transfers. - Hver capability-forespørsel genererer en application, posten per forsøk under
.../capabilities/{capabilityId}/applications(pluss/{applicationId}/history), med egne statuser (1.6) ogstatusReason. Den er revisjonsloggen for en forespørsel; i det daglige poller du selve capabilityen. capabilities/supportedreturnerer tilgjengelighet (available,betaellerdisabled), kvalifisering og institusjoner som tilbys. Bankvalg skjer ved forespørselstidspunktet via det valgfrieinstitutions-arrayet, det finnes ingen separat/banks-ressurs. Utelatelse (eller å sende[]) velger alle standardinstitusjoner;isDefault: trueer et kunde- og capability-spesifikt flagg, ikke et globalt. En ikke-tom liste overstyrer standardene, og en bankstøttet capability uten anvendbar standard returnerer422 capability_institutions_required. Institusjons-ids er ugjennomsiktige, tolerer nye.stablecoin_transferstildeles automatisk ved kundeopprettelse og fødes somready(bes altså aldri om og kan ikke kanselleres).carder kun for individer.openTaskIdspå capabilityen er “hva gjør jeg neste”-pekeren. Åpen betyraction_requiredellerin_review, og oppsummeringen inkluderer delte tasks på kundenivå som nås gjennom aktive avhengigheter.cancelfungerer kun frapendingellerrestrictedog uten blokkerende ressurser, ellers409 capability_not_cancelable, hvis problem-body listerblockingResources. Å be på nytt etter kansellering er en fersk opprettelse med en ny idempotency-nøkkel.- Poll GET-en. Capability-status oppdateres når du leser; poll
GET .../capabilities/{capabilityId}eller abonner påcapability.status_changed, ikke cache. - Å be om én metode kan gjøre relaterte metoder tilgjengelige med en gang, behandle capabilities som et sett du leser på nytt, ikke som én rad du sporer.
- Bruk
tasks-previewfor å vise onboarding-forespørsler før du forplikter deg til en forespørsel. - Verifikasjon er ikke engangs: nye tasks kan dukke opp på en allerede
readycapability (periodisk eller hendelsesdrevet re-verifikasjon). Hold task-løkken koblet gjennom hele kundens levetid, ikke bare ved onboarding.
2.3 Dokumenter og KYC blir Tasks og Submissions
Merknad om navn. Disse endepunktene ble en kort periode levert som
requirements og fulfillments. Fra 02.08.2026 er de offentlige navnene tasks og submissions. Omdøpingen omfattet kun ressursene og endepunkt-stiene, requirements[]-arrayet inne i en task og dens requirementId beholder disse navnene.GET /v3/customers/{customerId}/tasks, svar med POST .../tasks/{taskId}/submissions.
Rundt den løkken:
- Rå fillagring:
POST/GET/DELETE /v3/customers/{customerId}/documents(pluss/{documentId}), last opp én gang med API-nøkkelen din, og referer så til dokument-id-er i submission-svar. Dette erstatter alle upload-token- og direct-upload-inntak. - Helt nye lesninger:
GET /v3/tasks(merchant-omfattende innboks),GET /v3/transfers/{transferId}/tasks,GET .../tasks/{taskId}/history,GET .../tasks/{taskId}/submissions(pluss/{submissionId}).
- Svartyper:
profile,text,date,single_select,multi_select,boolean,attestation,document,resource_reference,absence. Hvert requirementsrequest-objekt sier hvilken type det forventer. - En submission må besvare hvert handlingskrevende requirement i gjeldende runde, med nøyaktig den
taskRevisiondu leste. Delvise submissions avvises. profile-svar skriver gjennom: de oppdaterer kundeprofilen via den vanlige valideringsveien og re-evaluerer umiddelbart hver capability som refererer til det samme intake-arbeidet. Søskenlagerte intake-tasks der alle requirements er oppfylt, lukkes automatisk.- Requirements kan danne alternative grupper (
alternativeKey): send inn nøyaktig én av gruppen. changes_requestedøkerremediationRoundog bærerreviewFeedback. Les tasken på nytt og send inn på nytt med en ny idempotency-nøkkel.- Hostede verifikasjons-URLer vises kun på kundeavgrenset task-detalj (
GET /v3/customers/{customerId}/tasks/{taskId}) og bare mens sesjonen er handlingskrevende; lister ogGET /v3/tasks/{taskId}er bevisst URL-frie. - Tjenestevilkår er også en task:
openTaskIdskan inkludere en task medcategory: "terms_of_service"hvis hostede aksepteringside er lenket på samme måte (kun kundeavgrenset detalj). Generiske submissions kan ikke godta vilkår, og KYC-godkjenning innebærer aldri aksept av vilkår. - Tasks er avgrenset per capability, så det “samme” kravet (for eksempel adressebekreftelse) kan dukke opp én gang per capability. Dedupliser i UI-en på requirement
key. - Ingen oversettelseslag: å poste til
/v1/documentslåser ikke opp v3-capabilities. Når en kunde først er på v3, driv alle forespørsler gjennom tasks.
2.4 Kontoer og wallets
Opprette, skilt på
origin pluss type. Utstedte bankkontoer tar én method; eksterne bankkontoer tar i stedet et methods-array (å sende method der avvises):
countrypå utstedte bankkontoer er valgfritt (standard per metode); på eksterne bankkontoer oppgir du det eksplisitt. Wallet-kontoer bærer ikke land i det hele tatt.settlement.accountIder påkrevd på utstedte bankkontoer: den navngir den utstedte wallet-kontoen som mottar oppgjorte midler fra innskudd til bankkontoen.- Utstedte kontoer eksponerer
details(IBAN eller routing pluss konto eller adresse), versjonertrouting(innskuddskoordinater kan roteres, gjengi alltid den nyeste lesningen),fees,balances. - Nettverk:
polygon,ethereum,base,arbitrum,optimism,bsc,avalanche. - Capability-porten gjelder kun utstedte kontoer: å opprette en mot en ikke-klar capability feiler med en capability-kodet feil, be om capabilityen først (2.2). Eksterne kontoer trenger ingen capability (og ingen kundegodkjenning); de får kun validering av forespørselsskjema og bankdetaljer.
- Utstedte bankkontoer fødes som
provisioningmeddetails: null. Poll kontoen eller se påaccount.status_changedtilready. DELETEarkiverer, sletter aldri hardt. Kontoer som refereres av pågående transfers returnerer409 account_has_active_transfers. Prøv på nytt etter at disse transferene når en terminal tilstand.- Nytt i v3: Rules, stående instruksjoner på en utstedt wallet-konto (
POST/GET /v3/customers/{customerId}/rules,GET/PATCH/DELETE .../rules/{ruleId}) som automatisk feier innkommende midler til en annen konto eller en wallet-destination. Ingen v1- eller v2-ekvivalent.
2.5 Mottakere og destinations
v2 hadde ikke noe mottakerkonsept. Hvis du er på v2 og betaler ut til tredjeparter, er dette en ny overflate, ikke et navnebytte.
- Recipient er hvem:
individual(fornavn og etternavn) ellerbusiness(firmanavn), med påkrevdrelationship(employee,contractor,vendor,subsidiary,merchant,customer,landlord,family,other). Recipients og destinations er kun for tredjeparter. En utbetaling til deg selv bruker ikke recipient i det hele tatt: sikt på en av kundens egneacc_-kontoer som quotensdestinationId(2.6). - Destination er hvor: typet per metode,
sepa(iban, bic valgfritt),achellerwire(routing pluss konto),swift(fulle koordinater pluss valgfri mellombank),spei(clabe),pse,transfers_3_0(cbu) og så videre, samt wallet-destinations. Hver destination har sin egen status. Følg med pådestination.status_changed. - Fiat-destinations krever mottakerens fullstendige
address(gate, by, postnummer, land) før opprettelse. Manglende deler feiler med422 recipient_address_required. Wallet-destinations hopper over adressen, men kreverownershippå toppnivå (self_custodied, ellercustodialmed et custodian-navn). - Nøyaktighet i mottakernavnet er viktig: mottakerbanker matcher kontoens juridiske navn. Send eksakt juridisk fornavn pluss etternavn eller firmanavn, ikke et visnings-kallenavn.
- Feltskjemaer per metode for destinations finnes i OpenAPI-spesifikasjonen.
2.6 Quotes og transfers
destinationIdtar enacc_-id (kundeeid konto) eller endst_-id (mottakerdestination). Fiat-finansierte quotes (payins) må sikte mot enacc_-konto, etdst_-mål betyr alltid en utbetaling (ellers422 quote_direction_invalid).externalIdpå quotes og transfers er en ikke-unik korrelasjonsreferanse (gjentas i lesninger, filtrerbar på lister). Regelen om unikhet per miljø (2.1) gjelder kun for kundensexternalId.- Utfør en quote nøyaktig én gang, før
expiresAt. En utløpt quote feiler med409 quote_expired, en andre utførelse med409 quote_already_executed(problemet inneholder eksisterendetransferId). - Kansellering av transfer støttes ennå ikke:
POST .../cancelreturnerer409 transfer_not_cancelablei alle tilstander. Dagenscanceled-transfers kommer fra at finansieringsvinduet utløper på en ufinansiert payin, ikke fra dette endepunktet. - Payins starter i
awaiting_funds: gjengiGET .../instructionsfor betaleren, bankkoordinater pluss referanse- eller memokode for fiat, innskuddsadresse for krypto. Referansekoden er slik innskuddet matches. Vis den alltid. stateplussstateDetailfor maskinlesbare subtilstander;action_requiredbetyr at en compliance-task er vedlagt (openTaskIds,GET .../tasks), svar via submissions.- Innkommende innskudd oppdaget på utstedte kontoer vises som transfers med
origin: "inbound_deposit"(i stedet for"quoted"). - Referanser til betalingsnettverk er samlet under
references:transactionHash,traceNumber,imad,uetr,explorerUrl,returnedTransferId.
To migrasjonsadvarsler:
- Transfers krysser ikke versjoner. Transfers opprettet på v1 eller v2 er ikke lesbare fra v3. Listen utelater dem og
GET /v3/transfers/{transferId}gir 404. Bytt over oppretting først, behold v1-leseveien til disse transferene når terminale tilstander, og fjern den så. - Ingen tokenbytter.
stablecoin_movekrever samme valuta inn og ut: USDC til USDT feiler med422 recipient_destination_invalidmed encurrency_mismatch-feltfeil. Samme nettverk på begge sider, ingen bridging, og wallet-til-wallet-flyttinger støtter for øyeblikket kun gebyrfri levering: en quote hvis plattform- eller utviklergebyr er ulik null feiler med422 amount_not_deliverable.
2.7 Webhooks
Hendelseskatalog:
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/portalreturnerer en hostet administrasjonsportal-URL for leveringslogger, retries og manuell replay.transfer.createdleveres for øyeblikket i eldre v1-payloadform (v3-konvolutten aktiveres når v1-webhooks utfases). Behandle den kun som et hint og hent transferen via GET; ikke bygg mot bodyen dens.- Hendelser er hint: ved mottak hent ressursen og handle på lesningen. Bygg aldri tilstand basert på hendelses-payload eller rekkefølge. Levering er minst-én-gang og kan være forsinket eller omordnet. Dedupliser på hendelses-id, og gjenopprett tapte hendelser med hver listes inklusive
updatedAfter-filter. - Abonner på
api.deprecation, maskinkanalen for versjonsutfasinger. - Ingen
task.*-hendelse i dag: etter innsending poller du tasken eller foreldreobjektet.
2.8 Sandbox
Samme base-URL; sandbox-API-nøkkelen velger miljøet.
v3-sandboxen simulerer gjennomgangsløkken fra ende til ende: opprett en task, send inn mot den,
review den til accepted eller rejected, og se capabilityen låses opp. Øv på herstellings-UX-en din før produksjon. Både tasks opprettet i sandboxen og de vanlige intake-taskene som dukker opp på forespurte capabilities kan gjennomgås på denne måten; som i produksjon fyres ingen task-webhooks, poll (2.7).
2.9 Eldre endepunkter uten v3-erstatning
Disse har ingen v3-erstatning. De fleste forblir uendret på v1 (behold de eksisterende kallene dine); to trekkes tilbake helt (se Disposisjon):
Hvert annet offentlig v1- eller v2-endepunkt dukker opp i en mappingtabell ovenfor.
2.10 Foreslått migreringsrekkefølge
Hvert trinn leveres uavhengig; v1 eller v2 og v3 kjører side om side mot samme kundebase. Øv på hvert trinn mot sandbox-nøkkelen din (2.8) før du gjentar det i produksjon.1
Rørleggerarbeid
Idempotency-Key på alle effektfulle forespørsler (POST, PATCH, PUT, DELETE; sandbox-endepunkter unntatt); penger som strenger; hjelpere for cursor-paginering.2
Webhooks
Registrer v3-endepunkter per hendelse, inkludert
api.deprecation. v1-konfigurasjonen med ett endepunkt er en separat overflate, la den stå; begge kjører side om side frem til draineringen i trinn 9.3
Profilberikelse
PATCH /v3/customers/{id} med den fulle profilen du har (v1 samlet mindre enn det v3 eksponerer), og sett metadata på nytt. Gjør dette bevisst til den første v3-writen per kunde: det fyller den rensede visningen før den visningen blir permanent (2.1).4
Lesninger
Rett kunde-, capability- og kontolesninger mot v3; skriv om kundestatus-logikken per 1.3. Først etter trinn 3, uberikte lesninger kommer tilbake med eldre-ugyldige felter som fraværende.
5
Onboarding-writes
Opprett via
POST /v3/customers; be om capabilities i stedet for /rails, /banks eller applications; bygg task-løkken (det største nye UI-arbeidet, tasks-preview hjelper med å vise forespørsler på forhånd). Herfra slutter du å poste /v1/documents for v3-drevne kunder, de låser ikke opp capabilities (2.3).6
Kontoer
Utsted via v3; flytt import til
origin: external.7
Utbetalinger
Recipients pluss destinations, deretter quote og transfer.
8
Innbetalinger
Quote, transfer, instructions; fortsett å gjengi referansekoden.
9
Drainering
Transfers krysser ikke versjoner (2.6). Behold v1- eller v2-leseveien og v1-webhookendepunktet for transfers opprettet der, dobbeltles til de når terminale tilstander, og fjern så den gamle klienten og v1-webhookkonfigurasjonen.
2.11 Fallgruvesjekkliste
- Ny UUID per logisk operasjon, lagret med jobben din og gjenbrukt ved retry; gjenbruk aldri en nøkkel med endret body (
409 idempotency_conflict). Sandbox-endepunkter er unntatt fra headeren. - Berik eksisterende kunder (
PATCHden fulle profilen, settmetadatapå nytt, den overføres ikke) før enhver annen v3-write, den første v3-writen gjør den rensede visningen permanent. -
externalIder unik per miljø og frigjøres ikke ved arkivering, tøm den viaPATCHførDELETEhvis du planlegger å gjenbruke den. - Det finnes ikke noe kunde-
status-felt, avled klarhet per capability. -
action_requiredogin_reviewbetyr begge en åpen task. - Submissions er gjennomgangs-styrt (innsending er ikke det samme som opplåst) og må besvare hvert handlingskrevende requirement med nøyaktig
taskRevision. Ved uoverensstemmelse må du lese på nytt og bygge på nytt. - Det finnes ingen
task.*-webhook, poll tasken (eller foreldreobjektet) etter hver innsending. - Retry ved
changes_requestedbetyr å lese tasken på nytt, nye svar, ny idempotency-nøkkel. - Å poste til
/v1/documentslåser aldri opp en v3-capability, når en kunde er på tasks, driv hver forespørsel gjennom tasks. - Nye tasks kan dukke opp på en allerede
readycapability, hold task-løkken koblet etter onboarding, ikke bare under. - Capability
cancelfungerer kun frapendingellerrestricteduten blokkerende ressurser (409 capability_not_cancelable); å be på nytt etter kansellering er en fersk opprettelse med en ny idempotency-nøkkel. - Capability må være
readyfør du utsteder kontoer under den eller quoter mot den. - Quote har beløp på nøyaktig én side; ingen retningsfelt; utfør nøyaktig én gang før
expiresAt(409 quote_expiredeller409 quote_already_executed). - Stablecoin-flyttinger er kun samme-valuta og samme-nettverk (USDC til USDT feiler
422); wallet-til-wallet støtter kun gebyrfri levering. -
DELETEarkiverer, sletter aldri hardt. Kontosletting blokkeres av pågående transfers (409 account_has_active_transfers); kundesletting blokkeres i tillegg av enhver ikke-arkivert konto (409 customer_has_active_resources,blockingResources[]navngir dem). - v1- eller v2-transfers er usynlige for v3-lesninger (listen utelater dem, GET gir 404), dobbeltles til drainert, og fjern så de gamle veiene.
- Innskudds-
routingog instructions kan roteres, gjengi alltid den nyeste GET-en, og vis alltid referansekoden. - Webhooks er hint; GET er sannheten, dedupliser på hendelses-id, gjenopprett tapte hendelser med
updatedAfter.