Ajouté
- Les destinations des destinataires acceptent les types
pixetpix_safepour les paiements en BRL au Brésil. Une destination Pix paie une clé Pix. Une destination Pix Safe paie un compte bancaire identifié par le CPF ou le CNPJ du titulaire, le code ISPB de la banque, l’agence et le numéro de compte. Les deux nécessitent que la capacité Pix du client (pix_pooled) soit prête, et leurs paiements sont financés en USDC sans frais développeur. Voir Destinataires et Envoyer des fonds. GET /v3/customers/{customerId}/tasks/{taskId}acceptedocumentCandidatesForavec l’identifiant d’une exigence documentaire, ainsi quedocumentAlternativeKeypour une exigence comportant des alternatives. La réponse liste alors, dansdata.documentCandidates, les fichiers déjà téléversés par le client qui peuvent satisfaire cette exigence, avec les éventuelsmissingMetadataouconflictingMetadata. Soumettez ledocumentIdd’un candidat avec lesdocumentMetadatamanquantes au lieu de téléverser à nouveau le fichier. La requête nécessiteaccounts:readetcustomers:read, et une sélection invalide renvoie400 validation_error.
Modifié
GET /v3/webhooks/portalrenvoie une URL de portail qui expire au bout d’une heure, avecCache-Control: no-store. Avec une clé API disposant dewebhooks:write, le portail affiche le secret de signature du point de terminaison et permet de gérer les points de terminaison, de relancer les livraisons et de les rejouer. Avec seulementwebhooks:read, le portail affiche uniquement les livraisons. Voir Webhooks.- Citi (
citibank) n’est proposée qu’aux clients professionnels. Chaque entreprise conserve Citi mutualisée, et Citi nominative n’est proposée qu’aux entreprises immatriculées hors des États-Unis. Lorsque Citi n’est pas proposée à un client, la liste des capacités prises en charge l’omet, la désigner renvoie422 capability_institutions_unsupported, et une méthode proposée uniquement par Citi est listée commedisabled. Une requête sansinstitutionseffectue la sélection parmi les banques restantes. Les dossiers et comptes existants ne changent pas. - Les capacités CFSB (
cfsb) nominatives ne sont proposées qu’aux clients américains : les entreprises immatriculées aux États-Unis et les particuliers qui y résident. Pour les autres clients, la liste des capacités prises en charge omet CFSB nominative, et la désigner renvoie422 capability_institutions_unsupported. Une requête sansinstitutionseffectue la sélection parmi les banques restantes. CFSB mutualisée, les clients dont le pays est inconnu et les dossiers existants ne changent pas. - Les capacités ACH, Wire et SWIFT nominatives de Lead Bank (
lead_bank) ne sont proposées qu’aux clients que Lead Bank peut accueillir, en fonction de leur forme juridique et de leurs pays. Pour les autres clients, la liste des capacités prises en charge ometlead_bank, et la désigner renvoie422 capability_institutions_unsupported. Les clients que Lead Bank a déjà accueillis, ainsi que les capacités dont la demande ouverte désigne déjàlead_bank, la conservent. Les dossiers et comptes existants ne changent pas. - RTP est uniquement mutualisé. Aucune banque ne propose
rtp_namedaux nouvelles demandes : la liste des capacités prises en charge l’affiche donc commedisabled. Pour un client qui ne détient pasrtp_named, une demande de capacité ou un aperçu de tâche qui la concerne et désigne une banque renvoie422 capability_institutions_unsupported, et une demande sansinstitutionsrenvoie422 capability_variant_unavailable. RTP mutualisé (rtp_pooled) est proposé chez Citi : seuls les clients professionnels peuvent donc le demander. - Les nouvelles demandes de pièces d’identité pour les particuliers et les bénéficiaires effectifs peuvent définir
constraints.identityMetadataRequired: true, de sorte que chaque fichier doit indiquer son numéro d’identification et son pays de délivrance dansdocumentMetadata. Les nouvelles demandes de justificatif d’adresse d’entreprise et de justificatif de résidence des propriétaires peuvent définirconstraints.maxIssueAgeDays: 90, de sorte que chaque fichier doit indiquer sa date d’émission. Les tâches existantes conservent leurs exigences : lisez donc les contraintes de chaque demande de tâche. - Une réponse de tâche à une demande d’immatriculation d’entreprise, dont le
profilePointerest/business/registration, nécessite à la fois le pays de juridiction, le numéro d’immatriculation et une date de constitution antérieure à la date de soumission. LevalueSchemade la demande publie cette règle, et une réponse partielle renvoie400 validation_error. - Après une vérification hébergée, Swipelux accepte une réponse hébergée à une exigence de profil portant sur une valeur structurée, comme une adresse ou des identifiants fiscaux, uniquement si elle passe les mêmes contrôles de schéma et de contraintes qu’une réponse directe. Sinon, l’exigence reste ouverte et vous soumettez cette valeur avec
POST /v3/customers/{customerId}/tasks/{taskId}/submissions. Une exigence que Swipelux remet enaction_requiredpour cette raison portereviewFeedback.code: hosted_profile_direct_submission_required. Les tâches déjàsatisfiedconservent leur statut. Voir Capacités et exigences. - Une tâche rejetée par une vérification hébergée peut quitter
rejectedlorsque cette décision de vérification est ultérieurement annulée. Elle passe alors àsatisfied, ou àaction_requiredsous une nouvellerevision, avec réouverture des exigences auxquelles la nouvelle décision ne répond pas. Les soumissions antérieures pour ces exigences restentrejected: soumettez donc à nouveau ces réponses. Voir Migrer vers v3. - Le
typedes destinations des destinataires est désormais une énumération ouverte. Les versions antérieures de cette référence la décrivaient comme fermée : mettez donc à jour tout client qui rejette ou ignore les types inconnus. Les réponses de destination et les événementsdestination.status_changedpeuvent désormais contenirpixetpix_safe, et d’autres types peuvent être ajoutés. - Les requêtes de création et de mise à jour de destinataires, y compris l’objet imbriqué
address, ignorent les champs qu’elles ne définissent pas au lieu de renvoyer400 validation_error. Dans une requête de création, un champ de nom ou de secteur d’activité propre à l’autre type de destinataire renvoie toujours400, de même quetypeetexternalIddansPATCH /v3/customers/{customerId}/recipients/{recipientId}. UnPATCHne contenant aucun champ reconnu renvoie400 validation_errorau lieu de200. - Un lien de vérification pour une session éligible qui demande uniquement des documents ouvre désormais une page de téléversement de documents hébergée par Swipelux. Le lien lui-même ne change pas, et les autres sessions ouvrent toujours le parcours de vérification hébergé.
employment.occupationsur les clients particuliers et les personnes des parties liées accepte au maximum 255 caractères.POST /v3/customers,PATCH /v3/customers/{customerId},POST /v3/customers/{customerId}/related-parties,PATCH /v3/customers/{customerId}/related-parties/{relatedPartyId}etPOST /v3/customers/{customerId}/tasks/{taskId}/submissionsrenvoient400 validation_errorlorsqu’une valeur de profil ou une réponse à une tâche contient un lien vers un formulaire Swipelux, comme un lien de RFI, de demande client ou de suivi de transfert. Cela ne s’applique pas àexternalIdni àmetadata. Chaque valeur rejetée apparaît danserrors[]aveccode: public_form_linket son JSON Pointer, et la réponse ne répète jamais le lien. Envoyez plutôt l’information elle-même. Voir Erreurs et nouvelles tentatives.
Corrigé
- Les réponses de cotation et de transfert de paiement conservent un montant source en USDC ou USDT avec six décimales, par exemple
4009.711365au lieu de4009.71. Les montants en monnaie fiduciaire conservent deux décimales. Créer ou lire un paiement dont le montant source en stablecoin comporte plus de deux décimales ne renvoie plus500. - La référence
POST /v3/customers/{customerId}/capabilities/{capabilityId}/canceldécrit désormais l’annulation telle qu’elle fonctionne. Vous pouvez annuler une capacitéready, la capacitéstablecoin_transfersne peut pas être annulée, et l’annulation ne met fin qu’à cette capacité, tandis que ses dossiers conservent leur statut, leurs tâches et leurs approbations. - Une demande de capacité ou un aperçu de tâche qui indique dans
institutionsun code bancaire au lieu d’un identifiant public d’institution, commecitipourcitibank, renvoie422 capability_institutions_unsupporteden citant les identifiants disponibles, au lieu de503 kyc_configuration_unavailable. - Une demande de capacité ou un aperçu de tâche pour une méthode qu’aucune banque ne propose au client, que la liste des capacités prises en charge affiche comme
disabled, renvoie422 capability_variant_unavailableavecretryable: falseau lieu de503 kyc_configuration_unavailable, sauf si le client détient déjà cette capacité. documentCandidatesne liste plus les fichiers que Swipelux conserve à l’issue d’une vérification hébergée terminée, que vous ne pouvez ni lire ni télécharger. Une réponse de tâche qui en cite un renvoie400 invalid_document_reference, comme pour un document inconnu.
Ajouté
GET /v3/customersaccepteinclude=documentRequirements. Chaque résumé client indique alors le nombre de documents obligatoires encore manquants, indépendamment de la disponibilité des capacités. Combinez-le sous la formeinclude=capabilities,documentRequirements. Voir Clients.- La page Webhooks du panneau marchand ajoute Replay missed events au menu du point de terminaison. Cette action renvoie les événements des 13 derniers jours que le point de terminaison n’a jamais reçus, et n’envoie jamais deux fois le même événement. Voir Webhooks.
- La page Settings du panneau marchand comporte une section Compliance. Les propriétaires et les administrateurs peuvent définir l’adresse e-mail de conformité et choisir de recevoir ou non des e-mails lorsque Swipelux demande des informations complémentaires sur un client.
- Les marchands peuvent répondre directement à leurs propres demandes de conformité KYB sur la page KYB du panneau marchand.
Modifié
- Les mises à jour de clients et de parties liées ne renvoient plus
409 field_conflicts_with_completed_intakeaprès une admission bancaire terminée. La mise à jour est enregistrée, et chaque nouveau dossier bancaire vérifie le profil le plus récent selon ses propres exigences. - Les demandes de capacité renvoient
409 capability_route_header_conflictlorsque le routage bancaire existant d’une capacité ne peut pas être mis à jour en toute sécurité. Contactez le support Swipelux avant de réessayer. GET /v3/customers/{customerId}/capabilities/{capabilityId}/tasks-previewrenvoie422 capability_institutions_unsupportedlorsqueinstitutionsdésigne une banque que la capacité ne propose pas, comme les demandes de capacité.- Dans la sandbox, les capacités ACH, Wire et SWIFT sont servies uniquement chez JPMorgan Chase. Les demandes qui omettent
institutionssélectionnentjpmorgan, et désigner une autre banque renvoie422 capability_institutions_unsupported. Le routage en production ne change pas. Voir Tester dans la sandbox. - Forcer le statut d’une capacité en sandbox renvoie
409 capability_status_blockedavec unstatusReasonlorsque le cas simulé ne peut pas atteindre le statut demandé. Répéter un forçage déjà appliqué renvoie200sans modification. Voir Tester dans la sandbox. POST /v3/sandbox/tasks/{taskId}/reviewrenvoie409 task_not_sandbox_reviewablepour une tâche détenue par les Opérations ou par un autre workflow. Les tâches issues dePOST /v3/sandbox/taskset les tâches de collecte de capacités que Swipelux recueille restent examinables. Voir Tester dans la sandbox.PATCH /v3/customers/{customerId}/accounts/{accountId}renvoie409 account_provisioning_unresolvedlorsque vous modifiez le règlement alors que le compte est encore en cours de provisionnement auprès de la banque. Réessayez une fois le provisionnement finalisé. Voir Erreurs et nouvelles tentatives.POST /v3/transferspeut renvoyer409 quote_execution_evidence_conflict. Créez une nouvelle cotation et exécutez-la. Voir Erreurs et nouvelles tentatives.- Le volet Pay out du panneau marchand affiche les coordonnées complètes de la destination, masque les numéros de compte et les adresses de portefeuille derrière un bouton bascule, et indique un délai d’arrivée estimé pour chaque moyen de paiement.
- Le panneau marchand regroupe les comptes bancaires dans l’onglet Payment access du client, avec une carte de tâches qui nomme chaque banque. L’onglet Documents a été déplacé dans Profile.
- L’ouverture d’un compte bancaire nommé dans le panneau marchand se fait désormais en une seule étape qui indique la devise, les moyens de paiement et le délai d’onboarding de chaque banque. Voir Comptes.
- Les comptes bancaires retenus pour examen apparaissent comme On hold dans le panneau marchand, avec l’identifiant du compte et une action Contact support.
- Une capacité
pendingindique désormaisstatusReason.code: preparing_submissionau lieu dereview_in_progresspendant que Swipelux prépare un dossier pour soumission et qu’aucun examen n’est en cours. Les deux codes utilisentresolution: wait. Un passage de l’un à l’autre conserve le statutpending, donc aucun événementcapability.status_changedn’est envoyé. Les capacités existantes adoptent le nouveau code lors de leur prochaine réévaluation. Voir Capacités et exigences. - Le tableau Shared methods de l’onglet Payment access du client dans le panneau marchand affiche In preparation au lieu de In review pour une méthode mutualisée dont la capacité indique
preparing_submission. - La liste
applicationsd’une capacité n’affiche désormais que ses dossiers actuels, dans les lectures de capacité (y comprisGET /v3/customers/{customerId}/capabilities/{capabilityId}/applications), les réponses aux demandes de capacité et les événementscapability.status_changed. Un dossier remplacé par un plus récent apparaît toujours dansGET /v3/customers/{customerId}/applications, oùsupersededByApplicationIdindique son successeur. Les tâches ouvertes d’un dossier remplacé comptent toujours dans lesopenTaskIdsde la capacité. Le statut et lesopenTaskIdsde la capacité ne changent pas, donc le changement lui-même n’envoie aucun événement webhook. Voir Capacités et exigences.
Corrigé
- Une seconde demande
allowPendingpour le même compte émis, envoyée avant l’approbation de la banque, renvoie409en indiquant le compte en attente dansholder.accountIdau lieu de500. Voir Émettre un compte bancaire. - L’annulation d’une capacité clôture désormais les demandes de compte émis encore en attente d’approbation bancaire, de sorte qu’une demande ultérieure auprès de la même banque repart de zéro.
- Redemander une capacité annulée dont tous les dossiers bancaires ont été rejetés publie un seul événement
capability.status_changeddepuiscanceled. - Redemander une banque après l’archivage de son dossier précédent soumet désormais le nouveau dossier.
- Les destinations des destinataires peuvent être ajoutées dès que la capacité correspondante indique
ready, au lieu de renvoyer409 rail_not_ready. Voir Destinataires. - Les événements webhook envoyés avant votre première ouverture de la page Webhooks du panneau marchand sont désormais conservés, afin que vous puissiez les renvoyer vers un nouveau point de terminaison.
- Les dates d’échéance des tâches dans le panneau marchand s’affichent dans votre propre fuseau horaire, et les volets d’examen bancaire affichent All requirements submitted lorsqu’il ne reste plus rien en suspens.
Ajouté
POST /v3/quotesaccepte uninstitutionIdfacultatif pour choisir une route bancaire approuvée pour une cotation de paiement crypto vers fiat. Omettez-le pour conserver le routage automatique. Une banque qui n’est pas disponible pour le paiement renvoie422 bank_not_supported_for_customer, et l’envoi deinstitutionIdavec tout autre type de cotation renvoie400 validation_error. Voir Envoyer des fonds.- Les demandes de compte bancaire émis sur
POST /v3/customers/{customerId}/accountsacceptentinstitutionpour rattacher le compte à une seule banque sans solution de repli, etallowPending: truepour enregistrer la demande tant que le dossier auprès de cette banque est encore en attente d’approbation.allowPendingnécessiteinstitution. Les demandes enregistrées indiquent l’applicationIdqui les régit. Voir Émettre un compte bancaire. - Le panneau marchand dispose d’une page Webhooks native pour gérer les points de terminaison. Voir Webhooks.
- Le panneau marchand ajoute un volet Pay in avec des comptes bancaires nommés, des dépôts crypto et une étape de vérification.
- Le flux Pay out du panneau marchand affiche les soldes des portefeuilles dans le sélecteur de source, ajoute une option de montant Max et inclut une étape de vérification.
- Les profils clients du panneau marchand disposent d’un onglet Recipients & destinations.
- Les exigences des tâches peuvent inclure un court intitulé
title. Lepromptde la demande continue de porter les instructions. Voir Capacités et exigences.
Modifié
- Les cotations de pay-in par wire sur les routes Wire mutualisées exigent désormais au moins 20 $. Les cotations inférieures au minimum d’une route, ou trop faibles pour couvrir les frais de transfert, renvoient
422 amount_not_deliverableau lieu d’un échec de cotation générique. Voir Recevoir des fonds. - Le portail de webhooks regroupe désormais les types d’événements v3 par ressource et affiche le schéma de payload de chaque événement ainsi qu’un exemple. Les anciens types d’événements apparaissent dans un groupe Legacy distinct et sont marqués comme obsolètes. Les points de terminaison qui y sont déjà abonnés continuent de les recevoir ; utilisez les types d’événements v3 pour les nouveaux abonnements. Voir Webhooks.
- Les rechargements en sandbox émettent désormais les événements webhook
transfer.createdettransfer.state_changed. Voir Tester dans la sandbox. accountProvisioningindique désormaisissuedlorsque le client possède déjà un compte émis actif. Voir Capacités et exigences.- Dans le panneau marchand, les détails des comptes bancaires s’ouvrent dans un volet avec les logos des banques. Voir Comptes.
- Le panneau marchand désigne les mouvements de fonds par Pay in et Pay out, maintient votre session ouverte pendant six heures et envoie les demandes d’aide au support Swipelux par e-mail.
- Dans les tâches d’admission qui acceptent la soumission directe, les exigences éligibles déjà étayées par le profil client ou par des documents téléversés passent automatiquement à
in_review. Voir Capacités et exigences.
Corrigé
- Redemander une capacité annulée n’échoue plus à cause de dossiers de demande remplacés ou d’exigences obsolètes.
- Les capacités enregistrées sous l’ancien identifiant Fedwire retiré sont désormais lues comme
wireau lieu de renvoyer500.
Ajouté
GET /v3/customers/{customerId}/applicationsliste les dossiers de demande d’un client, avec les capacités demandées pour chaque dossier et les capacités couvertes par son approbation. Une seule approbation auprès d’une banque peut couvrir plusieurs capacités. Les dossiers historiques conservés pointent vers leur successeur viasupersededByApplicationId. La liste prend en charge la pagination par curseur etupdatedAfter. Voir Capacités et exigences.- Les réponses de
POST /v3/customers/{customerId}/capabilities/{capabilityId}incluentselectedApplicationIdpour les capacités adossées à un dossier. Il identifie le dossier de demande existant que la requête a réutilisé, ou le dossier qu’elle a ouvert. Voir Capacités et exigences. - Les institutions renvoyées par
GET /v3/institutionset par la liste des capacités prises en charge incluent un champlogoUrlpouvant être nul. Utilisez-le pour afficher l’identité visuelle de la banque lorsqu’elle est disponible, et revenez au nom de l’institution lorsqu’il vautnull. Voir Capacités et exigences. - Les paiements SWIFT en USD sont désormais disponibles. Les paiements SWIFT nécessitent au moins 100 USD. Le panneau marchand recueille les instructions bancaires SWIFT des destinataires. Voir Envoyer des fonds.
- Les comptes bancaires émis peuvent recevoir des fonds via SWIFT avec des coordonnées de réception nominatives. Voir Émettre un compte bancaire.
- USDT est désormais pris en charge comme source pour les paiements ACH et Wire. Voir Envoyer des fonds.
- Les comptes bancaires émis acceptent
settlement.currencyavec la valeurUSDCouUSDTpour choisir le stablecoin livré au portefeuille de règlement, indépendamment de la devise du compte du portefeuille. Omettez-le pour continuer à régler dans la devise du portefeuille. Voir Émettre un compte bancaire. - Les comptes bancaires SWIFT et les destinations des destinataires acceptent
bankCity,bankState,bankPostalCodeetbankAddressLine2, ainsi que les champs facultatifsbeneficiaryTaxId,beneficiaryPhoneNumber,ifscBranchCode,paymentCodeet les coordonnées d’une banque intermédiaire. Voir Envoyer des fonds. - Les coordonnées des comptes bancaires émis incluent
achRoutingNumberetwireRoutingNumberlorsque la banque fournit des numéros de routage ACH et Wire distincts, ainsi quebankLogoUrlpour la banque réceptrice. Voir Émettre un compte bancaire. - Les événements webhook
capability.createdincluentapplicationIdet unoriginvalantrequestedouapproval, afin que vous puissiez distinguer les capacités que vous avez demandées de celles couvertes par une approbation. Voir Webhooks. - Les demandes d’exigence peuvent déclarer un format de validation
constraints.format, par exemplehttp_url,us_ssn,us_einoubank_industry_classification. Voir Capacités et exigences.
Modifié
- La création de comptes bancaires dans le panneau marchand commence désormais par la sélection de la banque, et les comptes bancaires affichent des numéros de routage ACH et Wire distincts. Voir Comptes.
- L’énumération
networkinclut désormaissolana. Il s’agit d’une énumération ouverte : acceptez donc les valeurs de réseau que vous ne reconnaissez pas. Voir Comptes. - L’ouverture d’un lien de vérification hébergé pour une tâche dont les exigences restantes nécessitent une soumission directe renvoie
409 verification_session_not_allowed. Soumettez plutôt ces exigences sous forme de soumission de tâche. Voir Erreurs et nouvelles tentatives. - L’archivage d’un compte émis dont le provisionnement n’est pas encore finalisé renvoie
409 account_provisioning_unresolved. Réessayez une fois le provisionnement finalisé. Voir Erreurs et nouvelles tentatives. - Les nouvelles demandes de compte bancaire nommé sont mises en file d’attente pour le provisionnement dès la création du compte, au lieu d’attendre la prochaine actualisation du client. Voir Émettre un compte bancaire.
Supprimé
- Les coordonnées de réception SWIFT mutualisées ne sont plus proposées pour les nouveaux comptes. Utilisez plutôt des coordonnées de réception SWIFT nominatives. Voir Émettre un compte bancaire.
Corrigé
- Les lectures de transferts de paiement renvoient désormais le destinataire de la cotation.
- La création d’un compte ACH après l’archivage d’un compte existant ne renvoie plus
409, et les demandes de compte en attente archivées n’occupent plus d’emplacement de compte. - Les frais bancaires des cotations de pay-in en devise locale sont indiqués dans la bonne devise fiat.
Ajouté
GET /v3/webhooks/{webhookId}lit un point de terminaison de webhook unique et sa sélectionevents. Voir Webhooks.- Les exigences des tâches publient désormais
allowedValueset unvalueSchemaau format JSON Schema pour les champs de profil, y compris les champs d’adresse obligatoires. Les champs de pays indiquent unvalueTypeou unitemValueTypeégal àcountry, soit un code ISO 3166-1 alpha-2. Vous pouvez afficher les champs de saisie et les choix sans les coder en dur. Voir Capacités et exigences. - Les portefeuilles Tron existants peuvent désormais envoyer de l’USDT vers les comptes de portefeuille externe du client, et les lectures de transfert incluent un lien vers un explorateur de blocs pour les transactions Tron. Il n’est pas possible d’émettre de nouveaux portefeuilles sur Tron. Voir Envoyer des fonds.
- Les exigences des tâches peuvent déclarer
requiredWhen(à renseigner uniquement lorsqu’une réponse oui/non désignée correspond),profileAssertion(us_person) etownershipPolicy, et les demandes de documents peuvent définiridentityMetadataRequiredetmaxIssueAgeDays. Les réponses aux tâches acceptentdocumentMetadata(idNumber,issuingCountry,issuedOn) pour les documents référencés, et les lectures de tâches renvoient les réponses déterminantes examinées dansconditionValues. Voir Capacités et exigences. - Les exigences documentaires peuvent lister des
acceptedDocumentSets, et les exigences relatives aux parties liées peuvent demander une qualificationassociated_personoucontrol_personen plus debeneficial_owner. Voir Capacités et exigences. - Les objets
correctiondes transferts couvrent désormais aussi les paiements financés en échec :kind: funding_failureavec une action compensatoirerecover_source_funding, unrecoveryStatusvalantunknownoureported, et des sorties créditées enUSDT. Voir Cotations et transferts.
Modifié
PATCH /v3/webhooks/{webhookId}accepte désormais les anciens types d’événements auxquels le point de terminaison est déjà abonné, ce qui vous permet de les conserver pendant que vous ajoutez des types d’événements v3.eventsremplace l’intégralité de la sélection : incluez donc chaque type d’événement que vous souhaitez conserver. L’ajout d’un ancien type d’événement que le point de terminaison n’avait pas déjà renvoie400 validation_error. Voir Webhooks.- Les identifiants bancaires des destinataires et des comptes sont validés avant leur enregistrement. Voir Destinataires.
- Les demandes de capacité, les soumissions de tâches et les changements de statut en sandbox renvoient désormais
409 capability_application_staleau lieu de500lorsqu’une capacité a été créée dans le cadre d’un modèle d’onboarding antérieur. Voir Erreurs et nouvelles tentatives. - La page RFI publique est désormais un formulaire unique et continu. Elle prend en charge les personnes liées et recueille un numéro d’identification fiscale par personne. Voir Exigences documentaires.
- Les cotations et les transferts renvoient
409 customer_bank_limit_exceededlorsqu’un paiement dépasse le plafond quotidien ou mensuel restant du client auprès de la banque, et503 customer_bank_limits_unavailablelorsque ce plafond ne peut pas être vérifié. Les transferts renvoient409 payout_execution_unavailablelorsqu’un paiement ne peut pas démarrer à partir de sa cotation. Voir Erreurs et nouvelles tentatives. - Les mises à jour de clients et de parties liées qui entrent en conflit avec une admission bancaire terminée renvoient
409 field_conflicts_with_completed_intakeavec letaskIdet lesfields.
Corrigé
- L’historique des capacités annulées reste consultable.
- Les paiements par wire s’affichent et se filtrent correctement dans la liste des transactions du panneau marchand.
Modifié
POST /v3/transferset les lectures de transfert utilisentcheckoutMethodau lieu depaymentMethodpour la présélection du paiement par carte hébergé, et acceptentcard,apple_pay,google_pay,cash_app,sepaetblik. La liste est ouverte et peut s’étendre.paymentMethodn’est plus reconnu ; les requêtes qui l’envoient encore sont traitées comme s’il avait été omis.sepaetbliksont des options de financement à l’intérieur du paiement par carte hébergé, et non des capacités Swipelux. Voir Recevoir des fonds.
Ajouté
POST /v3/transfersaccepte unpaymentMethodfacultatif avec la valeurcard,apple_payougoogle_paypour les devis par carte. Le paiement hébergé s’ouvre sur la méthode demandée lorsqu’elle est disponible pour le client et son appareil, les lectures du transfert renvoient la demande, et les montants et frais du devis restent inchangés. Voir Recevoir des fonds.GET /v3/customers/{customerId}/capabilities/{capabilityId}/tasks-previewaccepteinstitutionspour prévisualiser les tâches de banques spécifiques renvoyées par la liste des capacités prises en charge. Voir Capacités et exigences.
Modifié
- Les cotations par carte reflètent désormais les frais de checkout et le montant net d’USDC livré. Voir Recevoir des fonds.
- Les cotations de paiement rejetées renvoient un code de problème spécifique au lieu d’un échec générique :
quote_amount_out_of_range,quote_volume_limit_exceeded,quote_source_network_unsupportedouquote_failed, et503 quote_temporarily_unavailablelorsque la cotation peut être relancée plus tard. Voir Erreurs et nouvelles tentatives.
Corrigé
- Les cotations par carte n’échouent plus à cause de l’arrondi des frais.
- Rouvrir un lien KYC hébergé ne renvoie plus
409 kyc_process_conflictlorsque les réponses au questionnaire contiennent des espaces superflus. - Les confirmations de retrait par passkey bloquées dans le panneau marchand se rétablissent désormais.
Ajouté
POST /v3/customers/{customerId}/documentsaccepte désormais aussi un corpsapplication/jsonavecstorageKey,fileNameettype. LestorageKeydoit être une référence récente à portée client, mise en attente via l’ancien flux direct-upload, et le téléversement passe les mêmes validations de taille et de signature de fichier que les téléversements multipart. Voir Migrer vers v3.GET /v3/customers/{customerId}/documents/{documentId}/downloadrenvoie uneurlde téléchargement pour un document client actif. L’URL expire après une heure et sert le fichier en pièce jointe. Les documents archivés, inconnus ou appartenant à un autre client renvoient404. Voir Capacités et exigences.- Demander une capacité pour une entreprise sans bénéficiaire effectif crée désormais une tâche d’admission pour en ajouter un au lieu d’échouer avec une erreur
503. Les demandes qui ne peuvent pas aboutir renvoient422 beneficial_owner_requiredavec des instructions pour ajouter une partie liée individuelle avec une participation déclarée ou d’au moins 25 %. Voir Actionnaires, UBO et personnes de contrôle. - Le tableau des tâches du panneau marchand affiche désormais le sujet et la portée de capacité de chaque demande, afin que vous puissiez voir qui et quoi couvre une demande de conformité. Voir Capacités et exigences.
- Les champs de classification sectorielle du panneau marchand proposent désormais des codes NAICS consultables sur les profils clients et les tâches d’exigence. Voir Parcours KYB.
- Les instructions bancaires de pay-in peuvent inclure
bankName,bankAddress,accountHolderNameetaccountHolderAddress. Affichez-les avec les autres coordonnées bancaires. Voir Recevoir des fonds. POST /v3/transfersaccepte unredirectUrlfacultatif qui ramène le client vers votre application après un checkout hébergé par carte ou Apple Pay. L’arrivée sur l’URL ne confirme pas la finalisation ; utilisez les lectures de transfert ou les webhooks. Voir Recevoir des fonds.- Les transferts créés par une Rule v3 apparaissent dans les lectures et les listes de transferts avec
origin: ruleet émettent des événementstransfer.state_changedcomme les autres transferts. Filtrez-les avecGET /v3/transfers?origin=rule. Voir Cotations et transferts. - Les documents d’identité des clients et des parties liées acceptent
sideApplicability(front_only,front_and_backouunknown), et les tâches peuvent recueillir comme réponses des informations sur les documents d’identité telles quetype,number,issuingCountry,issuingRegion,issuedOn,expiresOnetdoesNotExpire. Voir Capacités et exigences.
Modifié
- Les soumissions de coordonnées bancaires en conflit avec une configuration bancaire en cours renvoient désormais
409 ops_rail_handoff_conflict. Conservez les identifiants de vos documents téléversés et relancez la même soumission après la résolution du conflit au lieu de téléverser à nouveau les documents. Voir Erreurs et nouvelles tentatives. - Le minimum pour les dépôts de stablecoins non annoncés dans les portefeuilles clients est désormais de 1 unité au lieu de 10. Les dépôts plus petits sont toujours traités comme de la poussière. Voir Recevoir des fonds.
- La configuration des webhooks est désormais isolée par environnement. Le portail de webhooks s’ouvre limité à l’environnement depuis lequel vous le demandez, de sorte que les points de terminaison sandbox et production ne partagent plus leurs paramètres. Voir Webhooks.
- Le panneau marchand déduit désormais les méthodes de pay-in disponibles des capacités v3 du client, de sorte que la configuration de compte ne propose que les méthodes auxquelles le client a droit. Voir Comptes.
- Les formulaires RFI recueillent désormais les bénéficiaires effectifs qualifiés avec des invites plus courtes et plus claires, et l’historique RFI s’affiche sous forme de jalons de cycle de vie. Voir Exigences documentaires.
- Les tâches ouvertes sans date d’échéance explicite définissent désormais
dueAtpar défaut à 31 jours après leur création. Voir Capacités et exigences.
Supprimé
- Le panneau marchand ne propose plus Fedwire lors de l’ajout de nouvelles méthodes de pay-in. Les comptes Fedwire existants restent consultables. Voir Comptes.
Corrigé
- Les dépôts USDT non annoncés dans les portefeuilles clients sont désormais reconnus et réglés au lieu d’être ignorés.
- Les justificatifs déjà soumis sont désormais repris dans les autres tâches qui exigent le même élément, afin que les clients ne se voient pas demander deux fois le même document.
- Redemander une capacité ne supprime plus les routes bancaires déjà prêtes, de sorte que les coordonnées de compte émises restent stables.
- Les vues d’instructions bancaires du panneau marchand affichent désormais des détails complets, y compris les adresses SWIFT et l’adresse du portefeuille cible.
- Les formulaires RFI font désormais apparaître les erreurs de validation lors de la soumission, valident les descriptions de forme juridique avant l’envoi et acceptent plusieurs sites web d’entreprise.
- Vous pouvez désormais modifier les brouillons de personnes liées dans les formulaires RFI avant de les soumettre.
- Les demandes de conformité annulées n’apparaissent plus dans la liste des tâches du panneau marchand.
- Les statuts de révision des documents s’affichent de nouveau correctement dans le panneau marchand.
Ajouté
- Les sessions hébergées de vérification et de Conditions d’utilisation à l’échelle du client incluent désormais un objet
actionfaisant autorité. Suivez son typeavailableouunavailable; les champs platsurletexpiresAtrestent des miroirs de compatibilité pour les actions disponibles. Voir Capacités et exigences. - Les rechargements de portefeuilles dans la sandbox renvoient désormais des identifiants de transfert que vous pouvez lire avec
GET /v3/transfers/{transferId}ou lister avecGET /v3/transfers. Ils apparaissent comme des dépôts entrants de stablecoins terminés. Voir Tester dans la sandbox. - Les lectures de transfert incluent un objet
correctionlorsque les fonds d’un transfert sont retournés ou annulés après sa finalisation. Il indique lekindde la correction, leproviderStatusnormalisé, l’éventuelproviderShortfallet lecompensatingIntentappliqué par Swipelux. Voir Cotations et transferts.
Modifié
- Le parcours First pay-in du panneau marchand pour les cartes et Apple Pay exige désormais un portefeuille Polygon rattaché au client. Créez ce portefeuille avant de démarrer le parcours. Voir Comptes.
- Les nouvelles requêtes et les réponses publiques utilisent
sepacomme nom canonique de la méthode et de la capacité. L’alias d’entréesepa_instantet les ressources précédemment stockées restent compatibles, mais les réponses publiques utilisentsepa. Voir Comptes. - Les nouvelles demandes de capacité, de compte émis et de cotation Faster Payments ne sont plus disponibles. Les comptes, cotations et transferts existants restent consultables. Voir Comptes.
- La première page KYB ne recueille plus la date de naissance du représentant. Les dates de naissance des actionnaires restent une exigence distincte. Voir Parcours KYB.
- Les références de documents RFI acceptent désormais l’alias MIME
image/jpgen plus deimage/jpeg. Voir Exigences documentaires. - L’historique des tâches du panneau marchand présente désormais une piste d’audit lisible sans compteurs de révision. Voir Capacités et exigences.
- Les cotations et les transferts vérifient désormais les sens pris en charge par la capacité avant tout mouvement de fonds. Utiliser une capacité dans un sens qu’elle ne prend pas en charge renvoie
422 capability_direction_unsupported, et les mouvements entre portefeuilles nécessitent une capacitéstablecoin_transfers. Voir Erreurs et nouvelles tentatives.
Supprimé
- Le panneau marchand ne propose plus la configuration de nouveaux comptes UAEFTS. Les comptes UAEFTS existants restent consultables. Voir Comptes.
Corrigé
- Les formulaires RFI conservent les saisies existantes lorsqu’un réviseur ajoute un nouveau dépôt de document, afin que les réponses précédentes ne soient pas perdues lors d’un nouvel envoi.
- Le panneau marchand reprend les sessions hébergées de conformité à partir des actions disponibles sans écarter les liens valides.
- Les liens hébergés vers les Conditions d’utilisation fonctionnent désormais pour chaque portée de tâche renvoyée par l’API.
- Après une demande de Payment Access dans le panneau marchand, celui-ci ouvre la tâche d’admission renvoyée par cette demande au lieu d’une tâche issue d’une demande antérieure.
- La démonstration KYB du panneau marchand demande désormais les champs obligatoires actuels.
- Une cotation qui réutilise son portefeuille source comme
destinationIdrenvoie désormais des détails exploitables422 quote_direction_invalidavant tout travail du fournisseur. Voir Cotations et transferts. - L’API rejette un encodage incorrect de la chaîne de requête avec une erreur
400au lieu de normaliser silencieusement la requête. Voir Erreurs et nouvelles tentatives. POST /v3/customers/{customerId}/documentsrejette désormais les corps de requête vides, non multipart ou mal formés avec une erreur400.
Ajouté
- Publication du catalogue Problem Details v3 dans la spécification OpenAPI, pour que les intégrateurs puissent mapper les réponses d’erreur directement depuis le schéma. Voir Erreurs.
- Ajout de
customerIdaux événements webhook de compte v3, ce qui vous permet de corréler l’activité du compte au client propriétaire sans lecture supplémentaire. Voir Webhooks. - Couverture complète des champs de profil individuel V3 dans le panneau marchand, afin que les opérateurs d’onboarding puissent examiner et modifier chaque champ KYC collecté via l’API v3. Voir Clients.
- Publication d’un guide de migration développeur v3. Voir Migrer vers v3.
Modifié
- Les codes pays des clients et des comptes sont désormais validés comme des valeurs ISO 3166-1 alpha-2 attribuées au moment de l’écriture. Les lectures tolèrent les valeurs stockées héritées afin que les enregistrements existants continuent à être résolus. Voir Comptes et portefeuilles.
- La disponibilité USDC est désormais limitée par réseau de destination, de sorte que les devis et transferts ne proposent USDC que sur les réseaux réellement pris en charge par la destination.
- Chaque flux d’onboarding requiert désormais les Conditions d’utilisation Swipelux. Les sessions existantes peuvent toujours être reprises. Voir Clients.
Capability.readycontinue d’indiquer l’approbation du droit. UtilisezaccountProvisioningpour suivre l’émission du compte commenot_applicable,not_started,in_progress,issuedoufailed. Voir Capacités et exigences.- Les téléversements HEIC depuis iPhone sont désormais acceptés comme documents d’identité et de domicile.
- Effacer un champ de client ou de partie liée encore requis par une tâche ouverte renvoie désormais
409 field_required_by_open_taskavec letaskIdbloquant et lesfields, au lieu d’un conflit pouvant être relancé. Terminez ou annulez la tâche avant de modifier ces champs. Voir Erreurs et nouvelles tentatives.
Corrigé
- Réexécuter un devis déjà consommé renvoie désormais
409 quote_execution_consumedau lieu d’une erreur générique. Voir Devis et transferts. - Les lectures de liste de transferts et les lectures de montants de devis ne renvoient plus de
500sur de grands résultats historiques. - Les redirections KYC concurrentes renvoient désormais un conflit au lieu de
404, afin que les nouvelles tentatives se résolvent proprement. Les redirections hébergées ne sont plus annulées à mi-parcours, et les liens KYC peuvent toujours être repris. - Les lectures de parties liées pour les clients individuels ne renvoient plus
404. - Les soumissions KYB comportant des champs de portefeuille invalides sont rejetées avant la soumission, et une synchronisation échouée n’est plus signalée comme réussie dans le panneau marchand.
- Les tâches d’exigence du panneau marchand affichent désormais les réponses soumises comme complètes, suivent séparément les actions liées aux conditions, suppriment le texte de document en double, conservent les sessions KYC démarrées en attente jusqu’à leur complétion et gèrent les tâches obsolètes sans casser la vue des exigences.
- Les lignes de lien de vérification dans le panneau marchand affichent désormais une action Open sur chaque ligne, et chaque lien de tâche s’affiche dans la vue des exigences.