Environment variables
Descobreix les capacitats suportades
Llegeix les opcions actuals del client ambGET /v3/customers/{customerId}/capabilities/supported:
List supported capabilities
directions, method i accountType previstos. Continua només quan availability sigui available o beta i eligibility.eligible sigui true. Si es retornen institutions, selecciona només un ID d’aquesta resposta.
Cada entrada d’institució inclou un logoUrl i un indicador isDefault. Utilitza logoUrl per mostrar el logotip del banc en una interfície de selecció de banc i mostra la teva pròpia icona genèrica de banc quan sigui null. isDefault s’aplica només a aquest client i a aquesta capacitat, no a la institució de manera global. GET /v3/institutions retorna el mateix logoUrl, que pot ser nul. Els IDs d’institució són opacs, així que gestiona els IDs nous sense canvis de codi.
Institution entry
data[].id seleccionat com a CAPABILITY_ID. No copiïs mai un ID de capacitat d’un altre client o entorn.
Tipus de comptes agrupats vs nominatius
Les capacitats bancàries venen en dues variants, codificades al campaccountType i al sufix de l’ID de capacitat (per exemple ach_pooled, wire_named):
pooled: compte bancari compartit de Swipelux. Cada cobrament utilitza una referència única per encaminar els fons. Escull aquest per a transferències d’un sol ús.named: dades bancàries dedicades per al client (IBAN virtual, compte ACH dedicat). Reutilitzables i compartibles amb qualsevol pagador. Necessari per als comptes bancaris emesos.
pooled. Utilitza named només quan el client necessiti dades bancàries reutilitzables. Consulta la resposta supported per veure quines variants estan disponibles.
Per rebre dipòsits SWIFT o emetre dades bancàries SWIFT, utilitza swift_named. swift_pooled només admet pagaments, així que consulta els directions de cada opció a la resposta de capacitats suportades. Un compte SWIFT nominatiu retorna dades de recepció reutilitzables, incloent-hi el BIC del banc, una referència quan sigui necessària i l’adreça del beneficiari quan el banc la proporcioni.
Per als comptes emesos ACH, Wire i SWIFT, pots triar un banc concret amb institution i desar la sol·licitud del compte abans que el banc aprovi el client. Consulta Emet un compte bancari.
Sol·licita la capacitat
Sol·licita l’opció seleccionada ambPOST /v3/customers/{customerId}/capabilities/{capabilityId}:
Request capability
institutions explícita només quan necessitis seleccionar entre els IDs retornats per la resposta de capacitats suportades.
Emmagatzema data.status com a CAPABILITY_STATUS, data.accountProvisioning com a ACCOUNT_PROVISIONING_STATUS, data.openTaskIds com a OPEN_TASK_IDS i cada data.applications[].id a APPLICATION_IDS.
Sol·licituds compartides per banc
Per a les capacitats bancàries nominatives, cada client té un expedient de sol·licitud per banc. Les capacitats agrupades i de plataforma utilitzen expedients sense banc. Swipelux comparteix un expedient entre totes les capacitats compatibles que sol·licitis:- Una sola aprovació pot cobrir diverses capacitats. Per exemple, un expedient aprovat en un banc pot fer que tant una capacitat ACH com una de wire passin a
ready. - Una sol·licitud posterior que coincideixi amb un expedient existent el reutilitza. Swipelux no obre una segona sol·licitud ni afegeix tasques duplicades.
- Els expedients de bancs diferents són independents. Un rebuig en un banc no afecta un expedient en un altre banc.
201significa que la petició ha obert un expedient de sol·licitud nou.200significa que la petició s’ha resolt en un expedient de sol·licitud que el client ja tenia, per exemple una petició repetida d’una capacitat bancària que el client ja té, o una petició d’una capacitat cancel·lada. Una petició repetida decardostablecoin_transferscontinua retornant409 capability_already_exists.selectedApplicationIdés un camp de nivell superior al costat dedataamb l’ID de l’expedient que la petició ha seleccionat o obert. Swipelux l’omet quan la petició no ha seleccionat cap expedient. Una repetició idempotent retorna el mateix valor.
Response (abbreviated)
institutions per seleccionar el mateix expedient, o envia un sol ID d’institució per dirigir-te a aquest banc. S’omet qualsevol banc que hagi rebutjat definitivament el client. Quan només indiques aquest banc, o quan tots els bancs elegibles han rebutjat el client, la petició retorna 409 capability_terminally_rejected. Per provar un altre banc després d’un rebuig, torna a sol·licitar la capacitat amb l’ID d’institució d’aquest banc.
L’estat d’una capacitat reflecteix tots els expedients relacionats del client. Per a una capacitat nominativa, n’hi ha prou amb un expedient ready l’aprovació del qual la cobreixi perquè passi a ready, independentment del que informin els altres bancs. Una capacitat agrupada també espera la seva comprovació de mètode, que s’informa a probes a la llista de sol·licituds del client.
Llista les sol·licituds del client
Llista tots els expedients de sol·licitud del client ambGET /v3/customers/{customerId}/applications. Els resultats es paginen amb nextCursor i hasMore, i accepten updatedAfter:
List applications
applications[] d’una capacitat, a més de:
scope:namedper a un expedient en un sol banc,provider_pooledoplatformper a expedients sense banc, onullper a un expedient històric sense classificar.institutionno hi és en els expedientsprovider_poolediplatform.requestedScope[]: les claus de capacitat sol·licitades per a l’expedient, cadascuna amb el seu primerrequestedAt. Les entrades no s’eliminen mai.coverage[]: les claus de capacitat que cobreix l’aprovació de l’expedient, cadascuna ambgrantedAtisource. La cobertura registra l’abast, no l’autorització. Llegeix la capacitat per conèixer-ne l’estat actual.probes[]: comprovacions de mètode per a les claus de capacitat agrupades que cobreix l’expedient, cadascuna ambcapabilityKey,statusireason. Les claus nominatives no requereixen mai cap comprovació.generation,predecessorApplicationIdisupersededByApplicationId: enllaços de successió. QuansupersededByApplicationIdestà definit, l’expedient s’ha substituït. Segueix aquest ID fins a l’expedient actual. La llistaapplications[]d’una capacitat només inclou els expedients actuals, de manera que un expedient substituït només apareix en aquesta llista.
Response (abbreviated)
Completa les tasques actuals
Llista les tasques ambGET /v3/customers/{customerId}/tasks, selecciona els IDs de OPEN_TASK_IDS i, a continuació, llegeix cada tasca actual amb GET /v3/customers/{customerId}/tasks/{taskId}:
List open tasks
data.revision i data.requirements més recents. Torna a obtenir la tasca immediatament abans d’enviar-la si qualsevol dels dos pot haver canviat.
Evidències del perfil reutilitzades
Per a les tasques de recollida de dades de la sol·licitud que accepten l’enviament directe per API, Swipelux reutilitza la informació que el client ja ha proporcionat. Quan es crea o es concilia una tasca d’aquest tipus, Swipelux comprova el perfil del client i els documents que ha pujat el mateix client. Els requisits elegibles que ja estan coberts per un valor de perfil o un document utilitzable passen ain_review en lloc de continuar sent accionables. Les actualitzacions del perfil i les pujades de documents nous activen la mateixa comprovació per a les tasques existents.
Només els valors que falten o que són incompatibles continuen sent accionables. La reutilització no aprova les evidències. Swipelux les continua revisant. Les sol·licituds de correcció explícites i els requisits ja responguts continuen sent accionables. Els documents dels propietaris i de les parts relacionades no es reutilitzen, i els requisits que només es recullen mitjançant una sessió allotjada mantenen el seu flux habitual.
Mostra els requisits
Construeix els formularis a partir de les metadades que retorna cada requisit, no a partir de les claus dels requisits. Un requisit pot incloure untitle curt opcional, i cada request inclou un prompt per mostrar sota l’encapçalament.
Els requisits amb request.type: "profile" identifiquen el camp del perfil amb profilePointer i afegeixen metadades d’entrada:
allowedValues: els valors permesos per a un camp escalar, o per a cada element d’un camp de matriu. Envia aquests valors, no etiquetes de visualització traduïdes.valueSchema: un document JSON Schema Draft 7 autònom que descriu la forma de l’entrada, les propietats niades, els camps obligatoris i les restriccions estructurals. Els enums dels objectes apareixen a la propietat corresponent, per exemplevalueSchema.items.properties.type.enumper als identificadors fiscals. Swipelux continua aplicant validacions entre camps i de revisió després de l’enviament, així que un valor que superi l’esquema encara pot ser rebutjat.valueType: "country", oitemValueType: "country"per a les matrius: el camp accepta codis ISO 3166-1 alpha-2 en majúscules. Les propietats de país niades avalueSchemautilitzenformat: "iso-3166-1-alpha-2". Utilitza una llista de països estàndard per a les etiquetes localitzades.
Requirement
valueSchema i allowedValues. Mostra’ls a partir de prompt i valueType.
Cada tasca oberta inclou una marca de temps dueAt. Quan Swipelux crea una tasca sense una data de venciment explícita, dueAt és per defecte exactament 31 dies després del createdAt de la tasca. Tracta dueAt com a informatiu: no el pots definir mitjançant l’API i no provoca cap transició automàtica del cicle de vida. Només el camp separat deadline, quan és present, provoca una transició automàtica.
Accions allotjades
A la resposta de detall de la tasca, cada entrada deverificationSessions i tosSessions inclou un objecte action. Les respostes de la llista de tasques no inclouen aquests enllaços d’acció. Desa l’id de cada sessió i llegeix action.kind abans d’enviar el client; no dedueixis la disponibilitat de l’enllaç a partir del status de la sessió.
action.kind: "available"inclouaction.urliaction.expiresAt(actualment semprenull). Desaaction.url, envia-hi el client i torna a llegir la tasca. Els campsurliexpiresAtde la sessió contenen els mateixos valors.action.kind: "unavailable"significa que no s’ha de presentar cap enllaç. Els campsurliexpiresAtde la sessió no hi són. Elstatusd’una sessió, per si sol, no determina quin tipus d’acció rebràs.
Verification session
action_required per aquest motiu porta reviewFeedback.code: hosted_profile_direct_submission_required. Demana aquest valor al client i envia’l com a resposta via API.
Puja documents
Quan un requisit sol·licita un document, puja’l ambPOST /v3/customers/{customerId}/documents:
Upload document
data.id retornat com a DOCUMENT_ID abans d’enviar la resposta que hi fa referència.
Per recuperar més tard un fitxer emmagatzemat, crida GET /v3/customers/{customerId}/documents/{documentId}/download. Swipelux retorna una url que descarrega el fitxer com a adjunt i que expira al cap d’una hora. Els documents arxivats retornen 404.
Respostes via API
Envia un conjunt complet de respostes per a la revisió actual ambPOST /v3/customers/{customerId}/tasks/{taskId}/submissions:
Submit task answers
Prerequisit de propietari beneficiari per a negocis
Sol·licitar una capacitat de negoci que necessita proves de propietari beneficiari té èxit encara que el client encara no tingui cap propietari qualificat. La capacitat es crea com arestricted amb statusReason.code: tasks_due, i la tasca d’admissió del negoci sol·licita els fets de propietat que falten, inclosa l’estructura de propietat.
La mateixa tasca conté un requisit resource_reference la sol·licitud del qual inclou qualification: "beneficial_owner":
Beneficial owner requirement
person activa del mateix client amb un percentatge de propietat proporcionat d’almenys 25, o amb ownership.declared: true i cap percentatge.
El requisit es deriva de la llista actual de parts relacionades, per la qual cosa normalment no el respons directament:
- Crear o actualitzar una part relacionada qualificada satisfà el requisit en la mateixa reavaluació i obre el treball de perfil i documents propi d’aquest propietari. Consulta Afegeix parts relacionades del negoci.
- També pots fer referència explícita a una part qualificada amb una resposta
resource_referenceque porti el seurelatedPartyId. - El requisit continua llistat a la tasca actual després de complir-se. Quan no queda cap altra obligació oberta, la tasca esdevé
satisfied. - Arxivar l’última part qualificada, o eliminar els fets que la qualificaven, torna a obrir el requisit, fins i tot després que la tasca hagi estat
satisfied.
Continua quan la capacitat estigui preparada
Torna a llegir la capacitat ambGET /v3/customers/{customerId}/capabilities/{capabilityId}:
Refetch capability
status de la capacitat indica si el dret està aprovat. Per a una capacitat que emet un compte, accountProvisioning informa per separat si aquest compte és not_started, in_progress, issued o failed; una capacitat que no emet cap compte retorna not_applicable.
Mentre la capacitat és pending, dos dels valors de statusReason.code que pot informar indiquen si hi ha una revisió en curs. preparing_submission significa que Swipelux encara està preparant una sol·licitud per enviar-la i que no hi ha cap revisió en curs, encara que la sol·licitud d’un altre banc sigui rejected o requereixi atenció. review_in_progress significa que hi ha una revisió en curs, per exemple mentre una sol·licitud és in_review o una verificació allotjada està oberta. Tots dos utilitzen resolution: wait. Un canvi entre aquests codis manté l’estat pending, de manera que no envia cap esdeveniment capability.status_changed. Llegeix la capacitat per veure el codi actual.
Continua només quan l’estat actual de la capacitat permeti el compte, la cotització o la transferència que vulguis crear. Quan el flux necessiti un compte emès, espera també que accountProvisioning esdevingui issued.
A continuació, escull el recorregut corresponent a Fluxos comuns.