Skip to main content
Upcoming features

Single-use virtual card improvements, passcode reset improvements, and more!
Check out Swan's public roadmap to see what's in the works. ๐Ÿš€

โš ๏ธ Upcoming breaking changes

๐Ÿ‘ฅ Starting June 19th, the amount field will be removed from the transactions search filter. Please use the amount filters to refine your search.

๐Ÿ’ธ Starting June 19th, the beneficiaryId and isMyOwnIban input fields will be removed from the initiateCreditTransfers mutation. The isMyOwnIban field will become optional.

๐Ÿ›‘ Starting June 19th, a new rejection type, ValidationRejection, will be used to validate an input in the initiateCreditTransfers mutation.

๐Ÿšซ Starting June 19th, calls to scheduleStandingOrder with an invalid reference will be rejected. See the API reference for the regex pattern.

โš ๏ธ Starting July 1st, the shippingProvider field in PhysicalCardToActivateStatusInfo and PhysicalCardRenewedStatusInfo will be migrated from a String to an ENUM. Please note that the shipping providers La Poste and CORREOS will soon be deprecated.

๐Ÿ’ถ On August 1st, we're removing the merchantPayment field in the InitiateCheckMerchantPaymentSuccessPayload, use checkMerchantPayment instead. We're also deprecating merchantPayment.

ยท One min read

Improvementsโ€‹

๐Ÿงญ Account statement documents now follow a new, more readable naming convention that includes the document language. The new format is: AccountStatement_[ProjectName]_[AccountNumber]_[period]_[documentLanguage].

๐Ÿ‘ซ Account member invitations with a ConsentPending status will now expire if the inviter doesn't provide consent before the consent period ends. This automatically changes the account membership status to Disabled, allowing you to inform the user to send a new invitation.

  • If you're subscribed to the AccountMembership.Updated webhook, you'll receive a notification when the membership is Disabled.
  • When querying AccountMembershipDisabledStatusInfo, you'll see the reason InvitationExpired.

โœ๏ธ You can now use CheckMerchantPayment to track the statuses and balances of French check payments.

API updatesโ€‹

Upcoming breaking changesโ€‹

โš ๏ธ Starting July 1st, the shippingProvider field in PhysicalCardToActivateStatusInfo and PhysicalCardRenewedStatusInfo will be migrated from a String to an ENUM. Please note that the shipping providers La Poste and CORREOS will soon be deprecated.

๐Ÿ’ถ On August 1st, we're removing the merchantPayment field in the InitiateCheckMerchantPaymentSuccessPayload, use checkMerchantPayment instead. We're also deprecating merchantPayment.

ยท 2 min read

New featuresโ€‹

๐Ÿ’ณ You can now disable users from updating their card settings in Swan's Web Banking from your Dashboard > Web banking settings tab. When disabled, users with the CanUpdateCards permission can only update card limits through your product, not Web Banking.

Improvementsโ€‹

๐Ÿงญ We've made several improvements to your Dashboard:

  • The Dashboard search now returns more accurate results. Results automatically narrow as you type and add more details. This update is available on the Account Holders, Onboarding, Account, Account Memberships, and Capital Deposits pages.
  • Filters have a new look across all Dashboard pages to help you find data more efficiently. We added quick filters for all verification statuses on the Account Holders page based on user feedback. We removed the Verifications page because the new filters provide the same information in a more accessible way.

๐Ÿ” We've added new filters to enhance searching for transaction information by amount and execution date in the API:

  • Amount filters: we added isAboveAmount and isBelowAmount. We also updated the amount filter to return an exact match. These filters are now cumulative and will replace the current amount field in the transactions search filter (see upcoming breaking change).
  • Execution date filters: we added isAfterExecutionDate and isBeforeExecutionDate.

โœ๏ธ The requestMerchantPaymentMethods mutation now validates your SEPA Creditor Identifier (SCI) when you request SEPA Direct Debit. If the SCI is invalid, the mutation will reject it, helping you avoid blocked transactions in the future.

๐Ÿ“ You can now retrieve all transactions initiated by a standing order using the standingOrder.transactions query.

API updatesโ€‹

Upcoming breaking changesโ€‹

๐Ÿ‘ฅ Starting June 19th, the amount field will be removed from the transactions search filter. Please use the amount filters to refine your search.

๐Ÿ’ธ Starting June 19th, the beneficiaryId and isMyOwnIban input fields will be removed from the initiateCreditTransfers mutation. The isMyOwnIban field will become optional.

๐Ÿ›‘ Starting June 19th, a new rejection type, ValidationRejection, will be used to validate an input in the initiateCreditTransfers mutation.

๐Ÿšซ Starting June 19th, calls to scheduleStandingOrder with an invalid reference will be rejected. See the API reference for the regex pattern.

ยท One min read

New featuresโ€‹

๐Ÿ“ฅ You can now export account data in .csv format from your Dashboard or with the API by calling the exportAccountData mutation.

Improvementsโ€‹

๐Ÿชช Auto identification is now smoother. To automatically skip the identification process for eligible users on projects configured to bypass it, add the accountMembershipId to the authorization URL when inviting account members.

๐Ÿค To protect you and the merchant from fraud, merchant payments may now have a paymentAmountLimit that applies to each individual transaction. This limit may be applied during the review of the merchant payment method or later, based on risk factors. It's available in the merchantPaymentMethod type in the API, for Card, SEPA Direct Debit (Core and B2B), and French check payments. Setting a limit will trigger a MerchantPaymentMethod.Updated webhook.

ยท One min read

New featuresโ€‹

๐Ÿ’ณ You can now set a preferred shipping provider for physical cards, when calling the addCards mutation. To do this, select shippingProvider in the physicalCardCustomOptions input.

๐Ÿ“ฅ You can now export account membership data in .csv format from your Dashboard or with the API by calling the exportAccountMembershipData mutation.

Improvementsโ€‹

๐Ÿงญ We improved the executionDate field for card transactions. It now shows the precise timestamp from Mastercard, giving you additional visibility on the time when the transaction was received by the network.

๐Ÿ”Ž We've released several updates to improve your Dashboard:

  • You can now apply new filters to the following Dashboard pages:
    • Accounts: IBAN
    • Account memberships: email, firstName, and lastName
    • Account holders: firstName and lastName
    • Onboarding: email
    • Users: firstName and lastName
  • We've increased the size of the search bar, making it easier to view and input text.
  • The search bar now automatically removes unwanted spaces from your input, ensuring more accurate results.

Updateโ€‹

๐Ÿงพ Starting May 1st, invoices will be issued through our new billing provider, Lago. The format will change, but the content will remain the same.

ยท One min read

New featuresโ€‹

๐Ÿ“ฅ You can now export card data in .csv format from your Dashboard or with the API by calling the exportCardData mutation.

๐Ÿ”” You can now activate two new text message notifications for rejected card payments due to an incorrect PIN or an invalid card expiration date. Activate them from your Dashboard > Settings > Notifications.

๐Ÿ’Œ A new white-labeled email notification for card expiration is now available! Activate it from your Dashboard > Settings > Notifications.

Updateโ€‹

๐Ÿ”ด To provide more detailed feedback, errors in the addCards inputs, especially the physical card delivery address and spending limit, will now return a ValidationRejection instead of an error.

ยท One min read

New featureโ€‹

๐Ÿ‡ฎ๐Ÿ‡น Italian IBANs are now are live! Generate onboarding links from your Dashboard > Settings > Onboarding.

Improvementsโ€‹

๐Ÿ“ French company onboardings are now smoother. In addition to previously auto-filling UBOs, the VAT number, and the address, we now automatically retrieve representative information and company type when you add the companyโ€™s registration number. You no longer need to ask users if theyโ€™re the legal representative; instead, compare their data to the retrieved information.

API updatesโ€‹

Upcoming breaking changeโ€‹

๐Ÿ‘ฅ Starting on April 10th, the type of AccountMembershipsFilterInput.accountId will change from String to ID, making it consistent with the other filters.

ยท One min read

New featureโ€‹

๐Ÿ“ฑ Users can now change the phone number associated with their Swan account securely and independently. Tap New phone number? Update it at the beginning of any login or consent flow and follow the prompts.

Updateโ€‹

โญ๏ธ Effective March 13, all new business debit cards are issued with a new Banking Identification Number (BIN). Card numbers with the new BIN start with 543946 instead of the current 547395. The BIN for existing cards will be updated automatically when the cards are renewed.

API updatesโ€‹

Upcoming breaking changeโ€‹

๐Ÿ““ Effective May 1st, providing gender for Ultimate Beneficial Owners (UBO) is mandatory due to Swanโ€™s reporting obligations. This field includes more granular options than the title field, set to be deprecated on May 1st.

ยท 2 min read

New featureโ€‹

๐Ÿ”Ž Get bank details (RIBs) for virtual IBANs with the account query. You can also download them from your Dashboard. If you use Swan's Web Banking interface, your users can download them from the Account > Virtual IBANs tab.

Improvementsโ€‹

๐Ÿชช We improved the sign-up process for a smoother user experience. Now, all users enter their personal information at the beginning. We also added a review page for users to confirm that their information is correct, helping avoid rejections due to mismatched data.

๐Ÿ‘ฅ To improve the granularity of account membership permissions, only account members with canManageAccountMembership can view a list of account members. Previously, those with canViewAccount could also view the list.

โ›ด๏ธ We added new fields to payment control POST requests and card transaction queries: merchantAcquirerId and subMerchantId. Start implementing these fields using the Event Simulator. Please note that the subMerchantId field will be returned null until it's implemented in the upcoming months.

๐Ÿ›ก๏ธ One time every 24 hours, your users are now required to acknowledge a fraud warning before consenting to a transfer.

API updatesโ€‹

Upcoming breaking changesโ€‹

๐Ÿ‘ฅ Starting on March 20th, account memberships are only returned in the accountMemberships and account.Memberships queries if you have the canManageAccountMembership permission.

โœ Starting on April 1st, the registrationNumber field becomes mandatory for company onboardings, regardless of country. This applies to all onboardings where companyType is set to Company, and where companyType is set to SelfEmployed and the account country is France. Additionally, the isRegistered parameter will be set to true automatically for these onboardings. Please note that this update doesn't impact capital deposits.

ยท One min read

New featuresโ€‹

๐Ÿ“ฅ You can now export account holder data in .csv format, either from your Dashboard or with the API by calling the exportAccountHolderData mutation.

Improvementsโ€‹

๐Ÿ‘ค To provide a seamless experience when users change their own phone numbers, updating Enabled account members' personal details won't trigger user binding errors anymore.

๐Ÿ’ฐ To avoid unnecessary debt collection, fee transactions are only Booked when there's enough money in an account. When accounts have an insufficient balance, the fee transaction remains Pending until more funds are added.

๐Ÿ’ณ Canceling cards is now fully asynchronous to improve system performance. As a result, when you cancel a physical or virtual card, the status always changes to Canceling before Canceled.

API updatesโ€‹

Upcoming breaking changesโ€‹

โš ๏ธ Effective from March 10th, consent notification API requests to your endpoint time out after 2 seconds instead of 3, in order to comply with 3-D Secure (3DS) requirements.

ยท One min read

New featuresโ€‹

๐Ÿ”” Consent notifications are now more reliable. If your endpoint doesnโ€™t answer correctly, notifications automatically fall back to text messages. Users can also choose to receive text messages instead of in-app notifications with a new button on the consent screen.

โš™๏ธ Onboarding now includes a new field, acquisitionChannel, which provides valuable insights to support our efforts in fighting against financial crime. Set the field to one of the following values: InboundOrganic, InboundReferral, OutboundSales, and OutboundAccountingFirm.

Improvementsโ€‹

๐Ÿงญ Get a more up-to-date view of your card transactions. We now process the booking of issued card transactions more regularly, with twice as many batches per day.