Payment Initiation (PIS)
PIS enables a user via a TPP to initiate and sign a transfer from the users own account to other accounts. The user can fetch its saved recipients to make transfers easier. The status of the transfer can be checked in order for the TPP to display to the user when the transfer has succeeded. Note that SEK is the only currency supported by SBAB for transfers. Requests are subject to all relevant authorization and validation rules as well a a signing of the transfer.
End users authorization is required for all methods in PIS.
- Transfer money to any Swedish bank account
- Instant transfer money between SBAB accounts
To get access to the PIS service according to the The Second Payment Services Directive (PSD2) it is required to be a legal person with a permit as an Payment Initiation Service Provider, granted by national competent authorities (in Sweden: Finansinspektionen).Read documentation and test API
PIS (Payment Initiation Service) flow in the sandbox for transfers and recurring transfers
Even though the end points differ between transfers and recurring transfers the flow is the same and is described below.
- Ask for the users' accounts (AIS)
- Initiate a transfer in the sandbox setting the account number from the accounts reply (use the authKey provided in the mail), in the reply you get a referenceId. When initiating transfers between own accounts when neither signing nor autostarttoken is needed, the sandbox always answers status='completed' directly but in production the status is 'processing' in the response. The status is updated to 'completed' very shortly after in production when the transaction succeeds.
- Use the referenceId to ask for the status of the signing. If it hasn't been signed and need a signing you get the status need_sign. If the transfer doesn't require a signing or if the transfer is signed you get a 404.
- Use the signing call to sign the transfer, if the signing was successful you get a 202 answer. Note that once the transfer is signed the status in the sandbox becomes complete even though it hasn't been executed. In the sandbox there is no engine that will make the future transfers and recurring transfers execute. The signing is mocked in the sandbox and will always be successful if the initiated transfer exists.
- Ask for the transfer by using one of these methods
- Ask for all the transfers from the AIS section and you will see the transfer as a future transfer or as a transfer that has just occurred depending on the date set.
- Ask for the single transfer by using the transferId (same as referenceId in the sandbox, note that referenceId and transferId differs in production) (6. Delete the transfer if it was a future transfer by using delete call. The transfer will no longer be listed under transfers)
PIS (Payment Initiation Service) Flow
The payment initiation flow is the same for both regular transfers and recurring transfers.
The end user initiates a transfer by providing info to and from account, amount, date och a statement. The system user (TPP) provides sign method and return url (if web flow). The transfer request results in a response containing a transfer id, a redirect url and a status.
The system user redirects the end user to the redirect url, the end user signs the transfer. The system user asks for the status of the transfer until the transfer is either signed or canceled.
If the transfer was within between SBAB accounts the transfer will be executed right away if the date was set ot todays date. Otherwise the transfer will be executed on the closes bankgiro cut off time on the date set. Once the transfer is completed the status of the transfer will be set to completed.