Skip to main content

Β· One min read

Improvements​

πŸ“± Deactivate users who aren't using Swan anymore. This way, their phone number can be reused for a different user.

🌐 In about 2 weeks, you'll be able to choose and update the preferred language for account memberships, which is used for the invitation email and when ordering and using cards.

  • By default, the new AccountMembership.language inherits the Account.language chosen during onboarding.
  • The available languages are: Dutch nl, English en, French fr, German de, Italian it, Portuguese pt, and Spanish es.
  • Finnish fi won't be supported for the account membership language yet.
  • If you're subscribed to the AccountMembership.Updated webhook, you'll receive a webhook notification when AccountMembership.language is live.
  • If you've already used the updateAccountMembership mutation to choose the language for an account membership, it won't change with this update.

Β· One min read

New features​

πŸͺ You can now manage webhooks automatically with the API. Use the API to create webhooks dynamically, retry failed events automatically, and keep track of webhook delivery.

Improvements​

⏸️ When an account is suspended or reactivated, we now trigger an Account.Updated webhook notification.

πŸ“ƒ If a KBIS document for a newly-created company is refused at the end of a French capital deposit process, you can now upload a new one and we'll process it again.

Upcoming breaking changes​

πŸͺͺ In 4 weeks, we will deprecate the notStarted identification status and replace it with Started to streamline identification flows and reduce confusion.

πŸ’³ In 4 weeks, we will start using the new following issued card rejection reason codes: ThreeDsError, PeriodTransactionNumberLimitExceeded, MissingExpirationDate, MissingPin, DigitalWalletDeactivated, DigitalWalletEnrolmentInvalid, DigitalWalletTokenInvalid, DigitalWalletRefusal, DigitalWalletSuspended, InvalidAmount, and CardholderCancellation. The new rejection reasons are available in Sandbox using the Event Simulator.

Β· One min read

Improvements​

πŸ’° We're supporting additional fees to provide a more flexible billing solution for our partners. This will allow further customization of our standard fee list, facilitating extra revenue generation. You can check our public documentation for further details.

πŸ” Access the returnReason when receiving a return transaction for returned SEPA Credit Transfers and reversed SEPA Direct Debits.

βœ… Get better visibility about your account holders' ongoing verification processes by going to Dashboard > Data > Account holders.

Upcoming breaking changes​

πŸ’³ For naming consistency, we deprecated choosePINCode in the printPhysicalCard mutation and made it optional. In the coming weeks, choose PINs for your cardholders by using the new optional field choosePin.

⚠️ The list of documentReasonCode for a Refused capital deposit document has been expanded with nine new values. They'll take effect in 4 weeks.

Β· One min read

New features​

πŸ’Έ Offer bulk credit transfer capabilities to your end users. Your end users can now export a list of credit transfers from their accounting or payment tool into a CSV file, then upload the file into their Web Banking app. As a result, they'll initiate multiple credit transfers simultaneously (bulk payments).

🏦 Swan is now available for Open Banking payment initiators. They can connect to our API to initiate SEPA Credit Transfers and Instant SEPA Credit Transfers. Contact your Account Manager if you're interested in this feature.

Upcoming breaking changes​

πŸ™…πŸΎ In 4 weeks, the status Canceled will be added to CapitalDepositCase, and the status CapitalDepositCanceled to Shareholder. Learn more about statuses for your capital deposit cases and shareholders.

Β· One min read

Improvements​

πŸ“ƒ It's now possible to simulate a supporting document request in Sandbox.

πŸ“… We've improved the account holder queries with verificationStatusInfo, allowing you to get the exact date when a verification status was updated.

πŸ”š Shareholder accounts are now set to Closing upon completion of the capital deposit case. First, we will use CloseAccountReasonType = ComplianceReason. In 4 weeks, we will use the new value CapitalDepositReason.

Breaking changes​

⚠️ The Ultimate Beneficial Owner's (UBO) residency country is now mandatory in our no-code onboarding form.

Β· One min read

New features​

🌎 Account holders can now send International Credit Transfers to:

  • Exchange euros for another currency and transfer it.
  • Transfer euros outside of SEPA.
  • Receive International Credit Transfers in euros sent from outside of SEPA.

Please contact your Account Manager if you're interested.

Improvements​

βœ… Beneficiary verification between two Dutch accounts is now available on Swan's Web Banking.

Β· One min read

Improvements​

πŸ“ƒ Use the newly introduced Dashboard > Data > Onboarding > Supporting documents page to manage the document collection during the account opening process. Learn more about the supporting document collection.

πŸ§ͺ Simulate a supporting document status update.

⏸️ Suspending an account now triggers an Account.Updated webhook.

Upcoming breaking changes​

⚠️ In 2 weeks, we'll reject any input of the "_" character in the reference field, and sanitize it in the label field within the initiateCreditTransfers mutation, as it's not authorized in SEPA messages. For the reference field, ensure that the content:

  • Doesn't start or end with a "/"
  • Doesn't have "//"
  • Follows this pattern: (regex [A-Za-z0-9 -?.+,/’])

πŸ’Έ The beneficiaryId input field for the mutation initiateCreditTransfers has been deprecated, and will be removed in 4 weeks.

ℹ️ In the upcoming months, we'll remove the requirement of one unique phone number per user. While each phone number will remain linked to only one user at a time, it can later be reused by different users, like employees, at separate times.

Β· One min read

New features​

βœ… Before initiating a credit transfer to a Swan account from a Dutch financial institution, payers can now check the account holder's name and account status. This will remove current friction when receiving SEPA Credit Transfers from the Netherlands.

Upcoming breaking changes​

πŸ’₯ In 4 weeks, the Ultimate Beneficial Owner's residency country becomes mandatory in our no-code onboarding form. In 4 months, our API will enforce this change as well.

Β· One min read

New features​

πŸ“– Documentation has always been a priority at Swan. Today, we introduce the next era of our docs, with a stronger information hierarchy, dedicated product, Developers, and Partnership sections, and a powerful search that unites everythingβ€”including API Reference. There's more content, and everything was created with accessibility in mind. Discover the new docs.swan.io!

πŸ›‘οΈ We added new user roles to the Dashboard! Open your Team Management section to edit access for your team. This improves data privacy & security.

Improvements​

πŸ’³ To avoid unwanted notifications for Suspended physical cards (amongst other things), 3DS Strong Customer Authentication for card transactions on eCommerce websites won't be triggered for a card that doesn't have the status Enabled, or a physicalCard that doesn't have the status Activated. Authorization received for cards that aren't Enabled or Activated will still appear as Rejected.

Breaking changes​

⚠️ Queries using pagination are now limited to 100 elements to load per request.

Β· One min read

New features​

βœ… Before initiating a credit transfer to a Dutch IBAN from another financial institution, you can now check the account holder's name and account status using the new beneficiaryVerification query.

Improvements​

πŸ’³ Order cards in the language of your account. When ordering cards for an account member not already bound to a user, the card language will be the account language and not English by default.

Breaking changes​

⚠️ To prevent capital deposit failures caused by validation rejections related to shareholder onboarding, we are including the same validation checks as those used for onboarding, and we now answer with a ValidationRejection. This provides more specific and restrictive rejection criteria.