Découvrir les capacités prises en charge
Lisez les options actuelles du client avecGET /v3/customers/{customerId}/capabilities/supported :
directions, à la method et au accountType prévus. Continuez uniquement lorsque availability est available ou beta et eligibility.eligible est true. Si des institutions sont renvoyées, sélectionnez uniquement un ID de cette réponse.
Stockez le data[].id sélectionné en tant que CAPABILITY_ID. Ne copiez jamais un ID de capacité d’un autre client ou environnement.
Types de comptes mutualisés vs nominatifs
Les capacités bancaires existent en deux variantes, encodées dans le champaccountType et le suffixe de l’ID de capacité (par exemple ach_pooled, wire_named) :
pooled: compte bancaire Swipelux partagé. Chaque encaissement utilise une référence unique pour acheminer les fonds. Choisissez ceci pour les transferts ponctuels.named: coordonnées bancaires dédiées au client (IBAN virtuel, compte ACH dédié). Réutilisables et partageables avec n’importe quel payeur. Requis pour les comptes bancaires émis.
pooled. Utilisez named uniquement lorsque le client a besoin de coordonnées bancaires réutilisables. Vérifiez la réponse supported pour savoir quelles variantes sont disponibles.
Demander la capacité
Demandez l’option sélectionnée avecPOST /v3/customers/{customerId}/capabilities/{capabilityId} :
institutions explicite uniquement lorsque vous devez sélectionner parmi les IDs renvoyés par la réponse de capacité prise en charge.
Stockez data.status en tant que CAPABILITY_STATUS, data.openTaskIds en tant que OPEN_TASK_IDS, et chaque data.applications[].id dans APPLICATION_IDS.
Compléter les tâches actuelles
Listez les tâches avecGET /v3/customers/{customerId}/tasks, sélectionnez les IDs de OPEN_TASK_IDS, puis lisez chaque tâche actuelle avec GET /v3/customers/{customerId}/tasks/{taskId} :
data.revision et les dernières data.requirements. Récupérez à nouveau la tâche juste avant la soumission si l’un ou l’autre peut avoir changé.
Chaque tâche ouverte inclut un horodatage dueAt. Lorsque Swipelux crée une tâche sans date d’échéance explicite, dueAt prend par défaut exactement 31 jours après le createdAt de la tâche. Traitez dueAt comme informatif : vous ne pouvez pas le définir via l’API et il ne déclenche aucune transition automatique du cycle de vie. Seul le champ distinct deadline, lorsqu’il est présent, provoque une transition automatique.
Actions hébergées
Dans la réponse détaillée de la tâche, chaque entrée deverificationSessions et tosSessions inclut un objet action. Les réponses de liste de tâches n’incluent pas ces liens d’action. Enregistrez l’id de chaque session, puis lisez action.kind avant d’orienter le client ; ne déduisez pas la disponibilité du lien à partir du status de la session.
action.kind: "available"inclutaction.urletaction.expiresAt(actuellement toujoursnull). Enregistrezaction.url, envoyez-y le client, puis relisez la tâche. Les champsurletexpiresAtau niveau de la session contiennent les mêmes valeurs.action.kind: "unavailable"signifie qu’aucun lien ne doit être présenté. Les champsurletexpiresAtau niveau de la session sont absents. Lestatusd’une session ne détermine pas à lui seul le type d’action reçu.
Téléverser des documents
Lorsqu’une exigence demande un document, téléversez-le avecPOST /v3/customers/{customerId}/documents :
data.id renvoyé en tant que DOCUMENT_ID avant de soumettre la réponse qui y fait référence.
Réponses API
Soumettez un ensemble complet de réponses pour la révision actuelle avecPOST /v3/customers/{customerId}/tasks/{taskId}/submissions :
Prérequis de bénéficiaire effectif pour les entreprises
Demander une capacité professionnelle qui nécessite des preuves de bénéficiaire effectif réussit même lorsque le client n’a pas encore de propriétaire qualifié. La capacité est créée enrestricted avec statusReason.code: tasks_due, et la tâche d’intake professionnelle demande les faits de propriété manquants, y compris la structure de propriété.
La même tâche porte une exigence resource_reference dont la demande inclut qualification: "beneficial_owner" :
person active du même client avec ownership.declared: true ou un pourcentage de propriété fourni d’au moins 25.
L’exigence est dérivée de la liste actuelle des parties liées, vous n’y répondez donc généralement pas directement :
- Créer ou mettre à jour une partie liée qualifiée satisfait l’exigence lors de la même réévaluation et ouvre le travail de profil et de documents propre à ce propriétaire. Consultez Ajouter des parties liées professionnelles.
- Vous pouvez aussi référencer explicitement une partie qualifiée avec une réponse
resource_referenceportant sonrelatedPartyId. - L’exigence reste listée dans la tâche actuelle après avoir été satisfaite. Lorsqu’aucune autre obligation ne reste ouverte, la tâche devient
satisfied. - Archiver la dernière partie qualifiée, ou supprimer les faits qui la qualifiaient, rouvre l’exigence, même après que la tâche est passée à
satisfied.
Continuer lorsque la capacité est prête
Lisez à nouveau la capacité avecGET /v3/customers/{customerId}/capabilities/{capabilityId} :