Links

Credit Transfer

Sepa Credit Transfer

SEPA Credit Transfer (SCT) lets you transfer euros between accounts situated in the SEPA zone (all EU countries + the UK, Iceland, Lichtenstein, Norway, and Switzerland).
When an account receives a SEPA Credit Transfer, the transaction will be the SepaCreditTransferIntype.
When an account issues a SEPA Credit Transfer, the transaction will be the SepaCreditTransferOuttype.To validate the provided IBAN in the SCT out we execute multiple checks :
  • Is the IBAN size greater or equal to five?
  • Are the third and fourth characters numeric?
  • Is the country code an existing one?
  • Does the IBAN size match the country's IBAN size?
  • Is the IBAN checksum correct?

Internal Credit Transfer

An Internal Credit Transfer is the same as a SEPA Credit Transfer except that it is instant between the two accounts.

Initiate Credit Transfers

Credit transfers can't be sent if the account holder verification is still in progress. While waiting for verification to be finalized, the account has the paymentLevel=Limited and the initiateCreditTransfers mutation returns an error.
You can initiate credit transfers (Internal or SEPA) :
  • #nocode: use the white-labeled Web banking; the deeplink URL is available in your dashboard under the tab White-label #nocode.
  • by API: integrate payments into your product using our API.
Use the initiateCreditTransfer mutation to initiate credit transfers by API. You need to be authenticated with an accessToken, either in the name of the user that wants to make the payment, or with a project access token impersonating that user.
With just one call to this mutation you can initiate multiple credit transfers (supporting bulk and batch payments) from the same account towards different accounts, and for different amounts. Take note: this allows to make just one consent request for multiple transactions. This is helpful for setting up monthly payroll, or paying weekly bills.
A request from theinitiateCreditTransfermutation has two possible returns:
  1. 1.
    Swan requests user consent. In this case, the payment is created with ConsentPending status and a newly created consent resource carrying the consentUrl redirects the user to launch Swan's Strong Customer Authentication (Learn More). Once the consent process and Strong Customer Authentication is completed, the payment changes to Initiatedstatus.
  2. 2.
    Swan estimates that the context of this payment doesn't require user consent. In this case, the payment is created with Initiatedstatus.
Once the consent process and Strong Customer Authentication is completed, Swan checks that the available balance is sufficient to cover the total payment amount. If this is the case, a paymentProduct=SepaCreditTransfer transaction is created with Pendingstatus. This will change to Booked status once the transaction is processed into the SEPA Network and approved by Swan's financial security.
If you specify in the mutation that the target account is a Swan account, a paymentProduct=InternalCreditTransfer transaction is created with Pending status. This will change to Booked status once the transaction is approved by Swan's financial security. If you do not specify it, but Swan detects that the target account is a Swan account in the same project, we will follow the same process.
If you specify in the mutation requestedExecutionAt input, we will create a transaction with Upcoming status and execute it on the requested date. It can be scheduled up to 1 year ahead.
If the amount is insufficient, a transaction is created with Rejected status, with the reason for rejection in the rejectedReasonCodefield.
You can cancel a transaction only if its status is Upcoming. To do so, use the cancelTransaction mutation with the transaction id.
Once a transaction has been processed, it can no longer be canceled, even if its status is still Pending. If a credit transfer was made by error, you must request a recall.

R-Transactions

Once a credit transfer is initiated, there can be other transactions for the same payment linked to exterior events.

Return

When an issued payment is returned because the account doesn't exist, or is closed, or for whatever reason won't receive the payment, a second transaction is created with the SepaCreditTransferOutReturn type to credit the account.
When a credit transfer that has already been received and credited to the account is refused by the account owner, a second transaction is created with the SepaCreditTransferInReturn type to debit the account.
To simulate these exterior events in the Sandbox we have added the tab Event Simulator to your dashboard. It lets you test different scenarios.

Recall

When the issuer of a SEPA Credit Transfer towards a Swan account asks their bank to recall the transaction, for example because it was issued by mistake, Swan receives the request and asks the Swan account holder whether they accept the recall request or not. When the Swan account holder accepts the recall request and if the available balance of the concerned account is sufficient, funds are debited back from the Swan account, through a transaction with the SepaCreditTransferInRecall type created in the Pending status (and then moved to the Booked status) under the same payment ID as the original SepaCreditTransferIn transaction.
You can simulate the reception of SEPA Credit Transfer recall in Sandbox using this mutation.
When a user asks Swan to recall a SEPA Credit Transfer that was previoulsy issued for example by error, Swan transfers the request to the bank that received the initial credit transfer so that the bank can ask the beneficiary whether they accept the recall request or not. When the beneficiary accepts the recall request, funds are credited back on the Swan account, through a transaction with the SepaCreditTransferOutRecall type created in the Booked status under the same payment ID as the original SepaCreditTransferOut transaction.
You can simulate the issuing of SEPA Credit Transfer recall in Sandbox using this mutation.