The base URL for all PIS APIs is: https://rs1.api.stripeopenbanking.com/open-banking/v3.1/pisp/**
The Stripe API currently only supports:
The Stripe API does not support:
payment-details
end-pointsThe payment request from TPP must have the creditor information.
InstructedAmount/Amount
InstructedAmount/Amount
mandated by Stripe API.RemittanceInformation/Reference
RemittanceInformation/Reference
is a mandatory field and must adhere to the following:
The PISP may also opt to populate reference field on behalf of the PSU
CreditorAccount
requirementsCreditorAccount.SchemeName
supports either UK.OBIE.SortCodeAccountNumber
or UK.OBIE.Wallet
. Providing any other value will return an error.
UK.OBIE.Wallet
CreditorAccount.Identification
: Must be the Stripe recipient account ID (e.g. acct_test_123
)SupplementaryData.CreditorAccount.Destination
: Optional if the recipient has a default outbound destination, otherwise the destination ID (e.g. gbba_test_123
)UK.OBIE.SortCodeAccountNumber
CreditorAccount.Identification
: Must be the concatenated sort code and account number, totaling 14 digitsCreditorAccount
requirementsCreditorAccount.SchemeName
supports UK.OBIE.IBAN
, UK.OBIE.BBAN
and UK.OBIE.SortCodeAccountNumber
(see special case mentioned below). Providing any other value will return an error.
Please ensure to send all required additional SupplementaryData
as mentioned in the SupplementaryData section below.
If you choose to send a domestic payment to a GB recipient from a supported currency on your Financial Account other than GBP
, please use the International Payments API instead and enter the DestinationCountryCode
as GB
. You may then specify the CurrencyOfTransfer
as mentioned below. You may use the UK.OBIE.SortCodeAccountNumber
scheme for the CreditorAccount. Note that the payment will still land in GBP in the user's bank account.
CurrencyOfTransfer
requirementsCurrencyOfTransfer
should always be a supported currency on the user's Stripe Financial Account. This is the currency in which Stripe will debit the user's balance. Users must hold money in that currency at Stripe to be able to send a payment. You may use the AIS APIs to list the user's balances.
DestinationCountryCode
requirementsDestinationCountryCode
should represent the country code of the country where the recipient is based. See the tables below for acceptable values for the DestinationCountryCode.
InstructedAmount/Currency
requirementsInstructedAmount/Currency
can be any currency. The user can specify the instructed amount in any currency and Stripe will do the required FX to extract money from the user's Stripe account and send the money in the recipient's destination currency (see note below).
Stripe only supports payments that land in the recipient's local currency. For instance, when sending a payment to a France based recipient, the payment will post to the user's bank account in Euros.
SupplementaryData
requirementsStripe's Open Banking API requires you to send additional data in the SupplementaryData field to ensure a successful payment. The full schema of SupplementaryData is included at the end of this document.
The following fields are necessary for all payments, except those made with the UK.OBIE.Wallet
scheme with a pre-existing Stripe recipient account ID:
SupplementaryData.CreditorAccount.Email
: Must contain the recipient's email addressSupplementaryData.CreditorAccount.EntityType
: Must be either individual
or company
depending on the type of the recipientNote: SupplementaryData has additional optional fields that are required for a successful payment depending on the destination country:
The following table mentions the bank account details you must send about the creditor depending on the destination country and the scheme name.
Country
refers to the country of the Creditor (DestinationCountryCode
)SchemeName
refers to Initiation.CreditorAccount.SchemeName
Identification
refers to Initiation.CreditorAccount.Identification
RoutingNumber
refers to SupplementaryData.CreditorAccount.BankAccountDetails.RoutingNumber
BranchNumber
refers to SupplementaryData.CreditorAccount.BankAccountDetails.BranchNumber
SwiftCode
refers to SupplementaryData.CreditorAccount.BankAccountDetails.SwiftCode
Country | SchemeName | Identification | RoutingNumber | BranchNumber | SwiftCode |
---|---|---|---|---|---|
AU | UK.OBIE.BBAN | Account Number | BSB | ||
CA | UK.OBIE.BBAN | Account Number | Transit Number | Institution Number | |
FR | UK.OBIE.IBAN | IBAN | |||
US | UK.OBIE.BBAN | Account Number | Routing Number |
The following table mentions the additional KYC data you must send about the creditor depending on the destination country and entity type.
Individual
refers to SupplementaryData.CreditorAccount.Individual
BusinessDetails
refers to SupplementaryData.CreditorAccount.BusinessDetails
Country | Required fields | Required if EntityType=individual | Required if EntityType=company |
---|---|---|---|
AU | SupplementaryData.CreditorAccount.Email | Individual.DateOfBirth | BusinessDetails.Address |
SupplementaryData.CreditorAccount.EntityType | Individual.Address | ||
CA | SupplementaryData.CreditorAccount.Email | Individual.DateOfBirth | |
SupplementaryData.CreditorAccount.EntityType | |||
FR | SupplementaryData.CreditorAccount.Email | Individual.DateOfBirth | |
SupplementaryData.CreditorAccount.EntityType | |||
US | SupplementaryData.CreditorAccount.Email | Individual.DateOfBirth | BusinessDetails.Address |
SupplementaryData.CreditorAccount.EntityType | Individual.Address | ||
The SupplementaryData is an Optional object that contains additional information that Stripe requires in some cases. Please read the tables above to ensure you send all the required data for a successful payment. The shape of the object is defined below:
Properties:
Properties:
Email (string, optional): The email address of the creditor. Example: "foo@bar.com"
Destination (string, optional): Identifier for the recipient's Stripe OutboundDestination object. Example: "gbba_12135r2524542"
EntityType (string, optional): The type of entity the creditor represents. Allowed values: "individual", "company"
Individual (object, optional): Details about the individual creditor. Required if EntityType is "individual".
BusinessDetails (object, optional): Details about the business. Required if EntityType is "company".
BankAccountDetails (object, optional): Details about the bank account.
Properties:
Name (string, optional): The full name of the individual creditor. Example: "Jean Dupont"
DateOfBirth (string, optional): The date of birth of the individual creditor in ISO 8601 format (YYYY-MM-DD). Example: "1990-05-15"
Address (object, optional): The address of the individual.
Properties:
RegisteredName (string, optional): The registered name of the business.
Address (object, optional): The address of the business.
Properties:
RoutingNumber (string, optional): Refer to the table below for the expected value per country.
BranchNumber (string, optional): Refer to the table below for the expected value per country.
SwiftCode (string, optional): Refer to the table below for the expected value per country.
If the Address is required, please provide all the properties you have in the below mentioned spec.
Properties:
CountryCode (string, optional): The country code of the address.
PostalCode (string, optional): The postal code of the address.
State (string, optional): The state or province of the address.
City (string, optional): The city of the address.
Town (string, optional): The town of the address.
Line1 (string, optional): The first line of the address.
Line2 (string, optional): The second line of the address.
The following shows an example payment request to the US using the guidelines above:
DestinationCountryCode
is "US"SchemeName
for the CreditorAccount is UK.OBIE.BBAN
as mentioned in the Bank Account Details tableCreditorAccount.Identification
SupplementaryData.CreditorAccount.BankAccountDetails.RoutingNumber
CreditorAccount.Name
SupplementaryData.CreditorAccount
SupplementaryData.CreditorAccount.Email
and SupplementaryData.CreditorAccount.EntityType
is needed for all payments, those properties are filledSupplementaryData.CreditorAccount.Individual.DateOfBirth
and SupplementaryData.CreditorAccount.Individual.Address
is required for individual
creditors based in the US.{
"Data": {
"ConsentId": "consent_us12345",
"Initiation": {
"EndToEndIdentification": "e2e_id_us12345",
"InstructionIdentification": "instr_id_us12345",
"CreditorAccount": {
"SchemeName": "UK.OBIE.BBAN",
"Identification": "123456789",
"Name": "John Smith"
},
"InstructedAmount": {
"Amount": "1000.00",
"Currency": "USD"
},
"CurrencyOfTransfer": "usd",
"DestinationCountryCode": "US",
"SupplementaryData": {
"CreditorAccount": {
"Email": "john.smith@example.com",
"EntityType": "individual",
"Individual": {
"Name": "John Smith",
"DateOfBirth": "1985-07-15",
"Address": {
"CountryCode": "US",
"PostalCode": "10001",
"State": "NY",
"City": "New York",
"Line1": "123 Broadway",
"Line2": "Apt 4B"
}
},
"BankAccountDetails": {
"RoutingNumber": "111000025"
}
}
}
}
}
}