Skip to main content

ยท 2 min read

New featuresโ€‹

๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ป Subscribe to our new User webhooks to receive real-time updates on any changes related to your users. You can track the identity verification (identifications) process and more. You can also get the list of users who have connected to your project with the new API users query.

๐Ÿค– Impersonate a user with a project access token to unlock certain use cases.

๐Ÿ’ผ We're ready to onboard our first Partners to collect French checks. Please contact us if you're interested in beta testing!

Improvementsโ€‹

๐Ÿ” A new filter period was added to the account statements collection. Use it to filter account statements, whether you create them when you need them or you generate them automatically.

๐Ÿ‡ช๐Ÿ‡บ On your PDF account statements, amounts are now displayed in the local format based on the account language. We'll continue to improve the localized experience.

๐Ÿ‘‘ The project owner's legal representative can now see their card numbers with the API. Also, in Sandbox, promote any account holder in the project to project owner with the testing API mutation promoteAccountHolderToProjectOwner.

Bug fixโ€‹

๐Ÿ‡ซ๐Ÿ‡ท From May 12th to May 15th, Bouygues Telecom blocked text message delivery to French phone numbers (+33), messages that included a link to authenticate. As a quick fix, we will temporarily send https://link.swan.io instead of https://authmsg.co.

๐Ÿ’ณ In the Card.Updated webhook, eventDate changed to updatedAt (previously createdAt).

Breaking changesโ€‹

โฒ๏ธ To improve our webhook performance, we added a timeout of 15 seconds to endpoint requests. When there is no response after 15 seconds, the webhook fails and will automatically retry.

๐Ÿ’ฅ In the addCards mutation, the input field additionalEmbossedLine is now additionalPrintedLine for consistency and user clarity.

Upcoming breaking changesโ€‹

๐Ÿ“ฑ In 4 weeks, Swan will stop sending a text message to users when their identity is successfully verified. Why? With the new User webhook, you can track their progress and notify them however you choose!

ยท One min read

New featuresโ€‹

๐ŸŽ‰ Customize your Web Banking app and onboarding process starting from Swan's open source Banking Frontend. Consider this a reference implementation: you can learn from it, then copy and modify it to fit your needs!

ยท One min read

Improvementsโ€‹

โšก Instant SEPA Credit Transfer fallback can be tested using the Testing API. Initiate an outgoing Instant SEPA Credit Transfer, then reject it using simulateOutgoingSepaCreditTransferRejection mutation. Use reasonCode: BeneficiaryBankNotReachable.

๐Ÿซข Upcoming outgoing Instant SEPA Credit Transfer can be canceled using the cancelTransaction mutation.

โœ๏ธ The externalReference field in initiateCreditTransfers is now working for outgoing Instant SEPA Credit Transfer.

๐Ÿ†” We added the accountId field to Invoice. Use it to find the account associated to an AccountInvoice.Generated webhook event.

Bug fixโ€‹

๐Ÿ“„ Fee amount are displayed in the .csv account statement

Upcoming breaking changesโ€‹

๐Ÿ‘ฎโ€โ™€๏ธ To avoid undesired behaviors with our API, we are changing the Tax Identification Number (TIN) accepted format in all the taxIdentificationNumber inputs from 1-11 characters to 7-11 characters in 4 weeks.

๐Ÿ’ฅ isInstant field for initiateCreditTransfer is depreciated and will be removed in 6 months. Please use mode field instead to initiate an Instant SEPA Credit Transfer.

DOCS:

๐Ÿ’ถ Learn how to build a compliant billing offer.

ยท One min read

New featuresโ€‹

โ†ช๏ธ Direct debit a Swan account within the same project. It's our first step for our new feature, Accept Payments. Please contact us if you're interested in beta testing!

Improvementsโ€‹

๐Ÿ’ณ You can print one line of custom text, such as a company name, on your physical cards. To do so, you'll need to design a custom card with your Technical Account Manager and include this additional line. Contact us if you're interested in designing a custom card, or adapting an existing design.

Breaking changesโ€‹

๐Ÿ’ฅ To avoid undesired behaviors with our API, we changed the accepted date format for two fields in the Onboarding API:

  • IndividualUltimateBeneficialOwnerInput.birthDate must be a date YYYY-MM-DD
  • IndividualUltimateBeneficialOwner.birthDate format change from dateTime to date

ยท 2 min read

New featuresโ€‹

โšก We implemented a fallback option for Instant SEPA Credit Transfers. When an instant transfer is unavailable, whether for technical reasons or due to a manual risk assessment, the instant transfer will run as a standard transfer instead. Your customer won't need to reinitiate a transfer or consent a second time.

  • How? We added a new input mode to the initiateCreditTransfer mutation, as well as the new filter includeRejectedWithFallback to the transactions query.
  • Tip: We recommend you choose false by default so your customers won't see the rejected instant transfer on their transaction history.

Improvementsโ€‹

๐Ÿ“ƒ To reduce back and forth with our KYC team, we're asking some partners to collect additional supporting documents during onboarding for some use cases:

  • Lithuanian companies: Company Registration, UBO Declaration
  • Netherlands, Austria, Luxembourg companies: UBO Declaration
  • German self-employed: Self-employed Registration

๐Ÿ‡ฉ๐Ÿ‡ช For German account onboarding (accountCountry: DEU), three fields are now API-optional:

  • UBO birth date: individualUltimateBeneficialOwners.birthDate
  • UBO birth city: individualUltimateBeneficialOwners.birthCity
  • UBO birth postal code: individualUltimateBeneficialOwners.birthCityPostalCode

๐Ÿ“ผ We added a new field originTransaction to the API at the transaction level. It contains its parent transaction (for example, the card debit for a card debit reversal).

๐Ÿงช We added Instant SEPA Credit Transfers and their associated recalls to the Event Simulator on your Dashboard.

๐Ÿ’ณ You can now approve authorizations with a partial amount. To do so, indicate the partialAuthorizationAmountValue within your payment control response. Note that not all authorizations can be authorized partially; to identify eligible authorizations, look for the allowsPartialAuthorization:true on the payment control notification we send you.

Bug fixโ€‹

โš’๏ธ We fixed some latency issues on our OAuth 2.0 server. Let us know if you still have trouble getting your access tokens.

Breaking changesโ€‹

๐Ÿ’ฅ We added a new value SwornStatement in SupportingDocumentPurposeEnum. To avoid breaking changes on your side, please take these into account. We'll request this supporting document during onboarding for Spanish companies.

ยท One min read

New featuresโ€‹

๐ŸŽจ The onboarding and transfer pages have a fresh, new design. And guess what? We'll be ready to share our code and design system with you in the coming weeks.

๐Ÿ“ˆ We added Capital Deposits to the Dashboard > Data section, which was the first step to removing the current Dashboard. Next, you'll be able to upload documents and simulate everything with the Event Simulator.

ยท 2 min read

New featuresโ€‹

๐Ÿ‡ฉ๐Ÿ‡ช IBANs starting with DE are live after 3 successful months in beta. You can use them via the API or no-code, across all use cases including B2B and B2C! To test them, use the new German onboarding link. You'll find it in your Dashboard, on the Settings/Onboarding tab. The German onboarding flow is a little different, in order to comply with German law. Learn more about requirements for individual and company German accounts.

๐Ÿชช Verify the identity of individual account holders using a Qualified Electronic Signature. This new identification level is mandatory for individual German IBANs but can also be used for individual French IBANs in order to avoid the first transfer to finalize their identification process.

Improvementsโ€‹

โšก Our reachability on Instant SEPA Credit Transfers has been extended to TIPS in addition to EBA-RT1. We're now connected to most banks for initiating and receiving these transactions.

Breaking changesโ€‹

๐Ÿ’ฅ We will begin using some changes we already warned you about, and have added them to the Graph. To avoid breaking changes on your side, please take these into account:

  • New transaction types: SepaInstantCreditTransferInRecall and SepaInstantCreditTransferOutRecall.
  • New rejection reason codes for SepaInstantCreditTransferOut transactions: CreditorBankTechnicalErrorOccurred and CreditorBankTimeout.

ยท One min read

New featuresโ€‹

โœ… We added a new account activation tab to the Web Banking. This makes it easy for our no-code customers to finalize the account holder verification process. Just follow the steps.

โœ‰๏ธ Non-verified users can now use reset passcode by email.

๐Ÿ’ฐ On March 1st 2023, we will start charging banking fees directly on your customers' Swan accounts. This is the first phase of our billing project. Ultimately, this will enable you to choose which fees you want to charge your customers through Swan, and lead to additional revenue.

Improvementsโ€‹

๐Ÿ“ƒ You can now use the accountStatement query to return an account statement from its id.

Breaking changesโ€‹

๐Ÿ’ฅ As mentioned in past release notes, the new rejection reasons for CardOut transactions are as follows: RetryWithChipAndPin, PinRequiredForFurtherTransaction, InvalidSecurityNumber, and InvalidExpirationDate. These have been added to the Graph. Please take them into account to avoid breaking changes on your side.

ยท 2 min read

New featuresโ€‹

๐ŸŽจ The Web Banking has a fresh new design for transaction history, members, and card tabs. And guess what? We're getting ready to share our code and design system with you.

๐Ÿ” Secure all webhooks by adding a secret in the HTTP Request.

๐Ÿ” Automatically trigger the funding of a Swan account based on pre-defined events without user consent. Restricted to account funding SEPA Direct Debit B2B with rolling reserve.

Improvementsโ€‹

๐Ÿ‡ซ๐Ÿ‡ท Automatically fetch UBOs for French registered companies with the updateOnboardCompanyAccountHolder mutation. This was already available in the no-code interface and now it's in the API.

๐Ÿ’ธ Indicate a spendingLimit when using the addCard mutation. To avoid breaking changes, the spendingLimit is an optional input for the addCard mutation.

๐Ÿคณ๐Ÿพ Create a card and add it to Apple Pay or Google Pay simultaneously using the multiple consent feature.

Bug fixโ€‹

๐Ÿ’ฐ We have fixed some bugs on Capital Deposit:

  • Account Holders linked to multiple Capital Deposits don't have status errors anymore.
  • Shareholder status is now properly updated when the funds are deposited.
  • We fixed an error that was preventing some Capital Deposits from moving to completion.

Breaking changesโ€‹

๐Ÿ’ฅ We will begin using some changes we already warned you about, and have added them to the Graph. To avoid breaking changes on your side, please take these into account:

  • New types of Transaction FeeTransaction and InternalDirectDebitTransaction
  • A new enum at Transaction level: paymentProduct = Fees and transactionType = FeesOut, FeesIn
  • A new payment mandate type InternalDirectDebitPaymentMandate
  • A new received payment mandate type InternalReceivedDirectDebitMandate
  • A new rejection reason code on SepaInstantCreditTransferOut and SepaInstantCreditTransferIn
  • A new enum at Onboarding level: companyType = SelfEmployed

Upcoming breaking changesโ€‹

โš ๏ธ In February we will start using a lot of changes that have been added to the Graph. To avoid breaking changes on your side, please take these into account:

  • New rejection reasons for CardOut transactions. The new values are: RetryWithChipAndPin, PinRequiredForFurtherTransaction, InvalidSecurityNumber, InvalidExpirationDate.
  • New rejection reason codes for SepaInstantCreditTransferOut transactions. The new values are: CreditorBankTechnicalErrorOccurred and CreditorBankTimeout.
  • New transaction types SepaInstantCreditTransferInRecall and SepaInstantCreditTransferOutRecall.
  • Add Refused in accountHolder.verificationStatus enum

ยท 2 min read

New featuresโ€‹

๐Ÿ’ธ Initiate SEPA Instant Credit Transfers (SepaInstantCreditTransferOut) transactions using the existing initiateCreditTransfers API mutation with the isInstant input flag. Please note that to guarantee instantaneity, we automatically reject instructions that hit our risk scoring engine (with the RegulatoryReason rejection reason code). In this case, we recommend you suggest your users to issue a new, non-instant SEPA Credit Transfer transaction (SepaCreditTransferOut).

๐Ÿค– Use server-to-server consent to avoid any human interaction with the new grantConsentWithServerSignature mutation! To start playing with this highly secure yet easy feature, head to your Sandbox > Developers > Server Consent. If you are interested in using this feature in Live, please reach out to your TAM, check the documentation and start consenting on the go!

โšก During onboarding, once we have verified the legal representative of the account holder is not a politically exposed person or on a sanctions list, we will distribute the IBAN via API and Web Banking. Most times, this should occur within 10min after ID Verification is completed.

Improvementsโ€‹

๐Ÿ’ณ Display the numbers of a physical card using the new viewPhysicalCardNumbers mutation. This is especially useful if you only issue physical cards.

๐Ÿ” When using server-to-server consent to add single-use virtual cards, the AddSingleUseVirtualCardSuccessForProjectOwnerPayload will now return a card in ConsentPending status. The card will be enabled after the consent is validated. We would still recommend that you verify the card status before using it.

Upcoming breaking changesโ€‹

โš ๏ธ In early January we will start using a lot of changes that have been added to the Graph in order to improve the product in the following month of the release. Please make sure you take it into account before we use them to avoid breaking changes on your side:

  • New types of Transaction FeeTransaction and InternalDirectDebitTransaction
  • A new enum at Transaction level: paymentProduct = Fees and transactionType = FeesOut, FeesIn
  • A new payment mandate type InternalDirectDebitPaymentMandate
  • A new received payment mandate type InternalReceivedDirectDebitMandate
  • New rejection reason codes on SepaInstantCreditTransferOut and SepaInstantCreditTransferIn
  • A new enum at Onboarding level: companyType = SelfEmployed