The base URL for all PIS APIs is: https://rs1.openbanking.zopa.com/open-banking/v4.0/pisp/**
We currently only support redirect via a deeplink to the Zopa mobile app - this deeplink is different depending on the type of consents (AIS or PIS) and needs to be constructed as follows:
zopa://open-banking/pis-single-payment-consent?client_id={{ the client ID }}&response_type=code&scope=openid%20payments&request={{the JWT token}}The Zopa API currently only supports:
These endpoints are only supported for users who have a Zopa Bank Account (Current Account).
The Zopa API does not currently support:
ADHO to achieve a simlar goal)payment-details end-pointsThe swagger for our PIS API can be found here
The payment amount is set using the InstructedAmount/Amount field.
Payments have the following limits which are aligned with the limits applied in the Zopa app:
These limits apply across all outbound transactions (not just payments initiated via PIS). Zopa suggest PISPs notify the PSU that the same limits apply as in their Zopa app. It is possible from time to time that domestic-payment-consents is authorised, but the payment initiation fails due to account limits.
InstructedAmount/Currency must be GBPThe payment reference is specified using RemittanceInformation/Structured/CreditorReferenceInformation/Reference. This field is mandatory.
The reference must also:
^[a-zA-Z0-9\\/\\-?:().,’+\\s#=!\"%&*<>;{@\\r\\n]*\$Payment requests with references which do not conform to the above will be rejected. The PISP may also opt to populate reference field on behalf of the PSU.
The only LocalInstrument supported is Faster Payment scheme. This field, if specified, must have the value UK.OBIE.FPS. If anything other than this is sent by PISP in consent payload then an error will be returned.
However, this field is not mandatory so we suggest PISP simply not include this field and Zopa will stage consent as a Faster Payment.
The only supported Account.SchemeName is UK.OBIE.SortCodeAccountNumber for both DebtorAccount and CreditorAccount. Any other enum provided will return error.
InstructedAmount/Currency must be GBPThe payment reference is specified using RemittanceInformation/Structured/CreditorReferenceInformation/Reference. This field is mandatory.
The reference must also:
^[a-zA-Z0-9\\/\\-?:().,’+\\s#=!\"%&*<>;{@\\r\\n]*\$Payment requests with references which do not conform to the above will be rejected. The PISP may also opt to populate reference field on behalf of the PSU.
The only supported Account.SchemeName is UK.OBIE.SortCodeAccountNumber for both DebtorAccount and CreditorAccount. Any other enum provided will return error.
We only support Standing Orders with a single fixed amount. Consents where the amounts in FirstPaymentAmount, FinalPaymentAmount and RecurringPaymentAmount differ will be rejected.
We only support Standing Orders with the following Frequencies:
ADHO (Adhoc)DAIL (Daily)WEEK (Weekly)FRTN (Fortnightly)MNTH (Monthly)YEAR (Yearly)
Attempts to initiate a mandate with a different frequency will fail.If a monthly mandate is scheduled to occur on e.g. 31st of each month, in months where this day does not occur, the payment will be made the preceding day (i.e. the 30th). If a Standing Order is scheduled with a date that does not exist (e.g. 30th February) the request will error.
All payment initiation requests to Zopa must be protected using a detached JSON Web Signature (JWS) as per the Open Banking standard. This ensures the integrity and authenticity of the payment payload.
Key requirements:
PS256 (RSASSA-PSS using SHA-256). Ensure your signing library supports this algorithm.x-jws-signature header must be included in all relevant API requests, containing the detached JWS for the request body.x-jws-signature header.Content-Type header to application/json.