zopa Domestic Payments API
The Domestic Payments API from zopa — 5 operation(s) for domestic payments.
The Domestic Payments API from zopa — 5 operation(s) for domestic payments.
openapi: 3.0.0
info:
title: Account and Transaction API Specification Account Access Domestic Payments API
description: Swagger for Account and Transaction API Specification
termsOfService: https://www.openbanking.org.uk/terms
contact:
name: Service Desk
email: ServiceDesk@openbanking.org.uk
license:
name: open-licence
url: https://www.openbanking.org.uk/open-licence
version: 4.0.0
servers:
- url: /open-banking/v4.0/aisp
tags:
- name: Domestic Payments
paths:
/domestic-payment-consents:
post:
tags:
- Domestic Payments
summary: Create Domestic Payment Consents
operationId: CreateDomesticPaymentConsents
parameters:
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-idempotency-key'
- $ref: '#/components/parameters/x-jws-signature'
- $ref: '#/components/parameters/x-customer-user-agent'
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/OBWriteDomesticConsent4'
application/json:
schema:
$ref: '#/components/schemas/OBWriteDomesticConsent4'
application/jose+jwe:
schema:
$ref: '#/components/schemas/OBWriteDomesticConsent4'
description: Default
required: true
responses:
'201':
$ref: '#/components/responses/201DomesticPaymentConsentsCreated'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'405':
$ref: '#/components/responses/405Error'
'406':
$ref: '#/components/responses/406Error'
'415':
$ref: '#/components/responses/415Error'
'429':
$ref: '#/components/responses/429Error'
'500':
$ref: '#/components/responses/500Error'
security:
- TPPOAuth2Security:
- payments
/domestic-payment-consents/{ConsentId}:
get:
tags:
- Domestic Payments
summary: Get Domestic Payment Consents
operationId: GetDomesticPaymentConsentsConsentId
parameters:
- $ref: '#/components/parameters/ConsentId'
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-customer-user-agent'
responses:
'200':
$ref: '#/components/responses/200DomesticPaymentConsentsConsentIdRead'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'405':
$ref: '#/components/responses/405Error'
'406':
$ref: '#/components/responses/406Error'
'429':
$ref: '#/components/responses/429Error'
'500':
$ref: '#/components/responses/500Error'
security:
- TPPOAuth2Security:
- payments
/domestic-payment-consents/{ConsentId}/funds-confirmation:
get:
tags:
- Domestic Payments
summary: Get Domestic Payment Consents Funds Confirmation
operationId: GetDomesticPaymentConsentsConsentIdFundsConfirmation
parameters:
- $ref: '#/components/parameters/ConsentId'
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-customer-user-agent'
responses:
'200':
$ref: '#/components/responses/200DomesticPaymentConsentsConsentIdFundsConfirmationRead'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'405':
$ref: '#/components/responses/405Error'
'406':
$ref: '#/components/responses/406Error'
'429':
$ref: '#/components/responses/429Error'
'500':
$ref: '#/components/responses/500Error'
security:
- PSUOAuth2Security:
- payments
/domestic-payments:
post:
tags:
- Domestic Payments
summary: Create Domestic Payments
operationId: CreateDomesticPayments
parameters:
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-idempotency-key'
- $ref: '#/components/parameters/x-jws-signature'
- $ref: '#/components/parameters/x-customer-user-agent'
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/OBWriteDomestic2'
application/json:
schema:
$ref: '#/components/schemas/OBWriteDomestic2'
application/jose+jwe:
schema:
$ref: '#/components/schemas/OBWriteDomestic2'
description: Default
required: true
responses:
'201':
$ref: '#/components/responses/201DomesticPaymentsCreated'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'405':
$ref: '#/components/responses/405Error'
'406':
$ref: '#/components/responses/406Error'
'409':
$ref: '#/components/responses/409Error'
'415':
$ref: '#/components/responses/415Error'
'429':
$ref: '#/components/responses/429Error'
'500':
$ref: '#/components/responses/500Error'
security:
- PSUOAuth2Security:
- payments
/domestic-payments/{DomesticPaymentId}:
get:
tags:
- Domestic Payments
summary: Get Domestic Payments
operationId: GetDomesticPaymentsDomesticPaymentId
parameters:
- $ref: '#/components/parameters/DomesticPaymentId'
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-customer-user-agent'
responses:
'200':
$ref: '#/components/responses/200DomesticPaymentsDomesticPaymentIdRead'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'405':
$ref: '#/components/responses/405Error'
'406':
$ref: '#/components/responses/406Error'
'429':
$ref: '#/components/responses/429Error'
'500':
$ref: '#/components/responses/500Error'
security:
- TPPOAuth2Security:
- payments
components:
schemas:
PostBox:
description: Information that locates and identifies a box in a post office assigned to a person or organization, where letters for them are kept until called for.
type: string
minLength: 1
maxLength: 16
Identification_1:
description: Unique and unambiguous identification of a financial institution or a branch of a financial institution.
type: string
minLength: 1
maxLength: 35
OBWriteDomestic2:
type: object
additionalProperties: false
required:
- Data
- Risk
properties:
Data:
type: object
additionalProperties: false
required:
- ConsentId
- Initiation
properties:
ConsentId:
description: 'OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.'
type: string
minLength: 1
maxLength: 128
Initiation:
type: object
additionalProperties: false
required:
- InstructionIdentification
- EndToEndIdentification
- InstructedAmount
- CreditorAccount
description: The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single domestic payment.
properties:
InstructionIdentification:
description: 'Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.
Usage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.'
type: string
minLength: 1
maxLength: 35
EndToEndIdentification:
description: 'Unique identification assigned by the initiating party to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain.
Usage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.
OB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.'
type: string
minLength: 1
maxLength: 35
LocalInstrument:
$ref: '#/components/schemas/OBInternalLocalInstrument1Code'
InstructedAmount:
type: object
additionalProperties: false
required:
- Amount
- Currency
description: 'Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.
Usage: This amount has to be transported unchanged through the transaction chain.'
properties:
Amount:
$ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
Currency:
$ref: '#/components/schemas/ActiveOrHistoricCurrencyCode'
DebtorAccount:
type: object
additionalProperties: false
required:
- SchemeName
- Identification
description: Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
properties:
SchemeName:
$ref: '#/components/schemas/OBInternalAccountIdentification4Code'
Identification:
$ref: '#/components/schemas/Identification_0'
Name:
description: 'The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP''s online channels.
Note, the account name is not the product name or the nickname of the account.'
type: string
minLength: 1
maxLength: 350
SecondaryIdentification:
$ref: '#/components/schemas/SecondaryIdentification'
Proxy:
$ref: '#/components/schemas/OBProxy1'
CreditorAgent:
type: object
additionalProperties: false
description: Financial institution servicing an account for the creditor.
properties:
SchemeName:
$ref: '#/components/schemas/OBInternalFinancialInstitutionIdentification4Code'
Identification:
$ref: '#/components/schemas/Identification_1'
Name:
$ref: '#/components/schemas/Name'
LEI:
$ref: '#/components/schemas/LEI'
PostalAddress:
$ref: '#/components/schemas/OBPostalAddress7'
CreditorAccount:
type: object
additionalProperties: false
required:
- SchemeName
- Identification
- Name
description: Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.
properties:
SchemeName:
$ref: '#/components/schemas/OBInternalAccountIdentification4Code'
Identification:
$ref: '#/components/schemas/Identification_0'
Name:
description: 'The account name is the name or names of the account owner(s) represented at an account level.
Note, the account name is not the product name or the nickname of the account.
OB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.'
type: string
minLength: 1
maxLength: 350
SecondaryIdentification:
$ref: '#/components/schemas/SecondaryIdentification'
Proxy:
$ref: '#/components/schemas/OBProxy1'
CreditorPostalAddress:
$ref: '#/components/schemas/OBPostalAddress7'
UltimateCreditor:
$ref: '#/components/schemas/OBUltimateCreditor1'
UltimateDebtor:
$ref: '#/components/schemas/OBUltimateDebtor1'
RegulatoryReporting:
type: array
items:
$ref: '#/components/schemas/OBRegulatoryReporting1'
maxItems: 10
RemittanceInformation:
$ref: '#/components/schemas/OBRemittanceInformation2'
SupplementaryData:
$ref: '#/components/schemas/OBSupplementaryData1'
Risk:
$ref: '#/components/schemas/OBRisk1'
OBWriteDomesticResponse5:
type: object
additionalProperties: false
required:
- Data
properties:
Data:
type: object
additionalProperties: false
required:
- DomesticPaymentId
- ConsentId
- CreationDateTime
- Status
- StatusUpdateDateTime
- Initiation
properties:
DomesticPaymentId:
description: 'OB: Unique identification as assigned by the ASPSP to uniquely identify the domestic payment resource.'
type: string
minLength: 1
maxLength: 40
ConsentId:
description: 'OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.'
type: string
minLength: 1
maxLength: 128
CreationDateTime:
description: "Date and time at which the message was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
type: string
format: date-time
Status:
description: Specifies the status of the payment information group. For a full list of values refer to `ExternalPaymentTransactionStatus1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)
type: string
enum:
- RCVD
- PDNG
- ACTC
- PATC
- ACCP
- ACFC
- ACSP
- ACWC
- ACSC
- ACWP
- ACCC
- BLCK
- RJCT
StatusUpdateDateTime:
description: "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
type: string
format: date-time
StatusReason:
type: array
items:
$ref: '#/components/schemas/OBStatusReason'
ExpectedExecutionDateTime:
description: "Expected execution date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
type: string
format: date-time
ExpectedSettlementDateTime:
description: "Expected settlement date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
type: string
format: date-time
Refund:
type: object
additionalProperties: false
required:
- Account
description: Unambiguous identification of the refund account to which a refund will be made as a result of the transaction.
properties:
Account:
type: object
additionalProperties: false
required:
- SchemeName
- Identification
- Name
description: Provides the details to identify an account.
properties:
SchemeName:
$ref: '#/components/schemas/OBInternalAccountIdentification4Code'
Identification:
$ref: '#/components/schemas/Identification_0'
Name:
description: 'Name of the account, as assigned by the account servicing institution.
Usage: The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account.
OB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.'
type: string
minLength: 1
maxLength: 350
SecondaryIdentification:
$ref: '#/components/schemas/SecondaryIdentification'
Charges:
type: array
items:
type: object
additionalProperties: false
description: Set of elements used to provide details of a charge for the payment initiation.
required:
- ChargeBearer
- Type
- Amount
properties:
ChargeBearer:
$ref: '#/components/schemas/OBInternalChargeBearerType1Code'
Type:
$ref: '#/components/schemas/OBInternalPaymentChargeType1Code'
Amount:
$ref: '#/components/schemas/OBActiveOrHistoricCurrencyAndAmount'
Initiation:
type: object
additionalProperties: false
required:
- InstructionIdentification
- EndToEndIdentification
- InstructedAmount
- CreditorAccount
description: The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single domestic payment.
properties:
InstructionIdentification:
description: 'Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.
Usage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.'
type: string
minLength: 1
maxLength: 35
EndToEndIdentification:
description: 'Unique identification assigned by the initiating party to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain.
Usage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.
OB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.'
type: string
minLength: 1
maxLength: 35
LocalInstrument:
$ref: '#/components/schemas/OBInternalLocalInstrument1Code'
InstructedAmount:
type: object
additionalProperties: false
required:
- Amount
- Currency
description: 'Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.
Usage: This amount has to be transported unchanged through the transaction chain.'
properties:
Amount:
$ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
Currency:
$ref: '#/components/schemas/ActiveOrHistoricCurrencyCode'
DebtorAccount:
type: object
additionalProperties: false
required:
- SchemeName
- Identification
description: Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
properties:
SchemeName:
$ref: '#/components/schemas/OBInternalAccountIdentification4Code'
Identification:
$ref: '#/components/schemas/Identification_0'
Name:
description: 'The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP''s online channels.
Note, the account name is not the product name or the nickname of the account.'
type: string
minLength: 1
maxLength: 350
SecondaryIdentification:
$ref: '#/components/schemas/SecondaryIdentification'
Proxy:
$ref: '#/components/schemas/OBProxy1'
CreditorAgent:
type: object
additionalProperties: false
description: Financial institution servicing an account for the creditor.
properties:
SchemeName:
$ref: '#/components/schemas/OBInternalFinancialInstitutionIdentification4Code'
Identification:
$ref: '#/components/schemas/Identification_1'
Name:
$ref: '#/components/schemas/Name'
LEI:
$ref: '#/components/schemas/LEI'
PostalAddress:
$ref: '#/components/schemas/OBPostalAddress7'
CreditorAccount:
type: object
additionalProperties: false
required:
- SchemeName
- Identification
- Name
description: Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.
properties:
SchemeName:
$ref: '#/components/schemas/OBInternalAccountIdentification4Code'
Identification:
$ref: '#/components/schemas/Identification_0'
Name:
description: 'The account name is the name or names of the account owner(s) represented at an account level.
Note, the account name is not the product name or the nickname of the account.
OB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.'
type: string
minLength: 1
maxLength: 350
SecondaryIdentification:
$ref: '#/components/schemas/SecondaryIdentification'
Proxy:
$ref: '#/components/schemas/OBProxy1'
CreditorPostalAddress:
$ref: '#/components/schemas/OBPostalAddress7'
UltimateCreditor:
$ref: '#/components/schemas/OBUltimateCreditor1'
UltimateDebtor:
$ref: '#/components/schemas/OBUltimateDebtor1'
RegulatoryReporting:
type: array
items:
$ref: '#/components/schemas/OBRegulatoryReporting1'
maxItems: 10
RemittanceInformation:
$ref: '#/components/schemas/OBRemittanceInformation2'
SupplementaryData:
$ref: '#/components/schemas/OBSupplementaryData1'
MultiAuthorisation:
type: object
additionalProperties: false
required:
- Status
description: The multiple authorisation flow response from the ASPSP.
properties:
Status:
description: Specifies the status of the authorisation flow in code form. For a full list of values refer to `OBInternalStatus2Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)
type: string
enum:
- AUTH
- AWAF
- RJCT
NumberRequired:
description: Number of authorisations required for payment order (total required at the start of the multi authorisation journey).
type: integer
NumberReceived:
description: Number of authorisations received.
type: integer
LastUpdateDateTime:
description: "Last date and time at the authorisation flow was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
type: string
format: date-time
ExpirationDateTime:
description: "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
type: string
format: date-time
Debtor:
$ref: '#/components/schemas/OBCashAccountDebtor4'
Links:
$ref: '#/components/schemas/Links'
Meta:
$ref: '#/components/schemas/Meta'
UnitNumber:
description: Number that identifies the unit of a specific address .
type: string
minLength: 1
maxLength: 16
OBRegulatoryAuthority2:
type: object
description: 'Entity requiring the regulatory reporting information. '
properties:
Name:
type: string
description: Name of the entity requiring the regulatory reporting information.
minLength: 1
maxLength: 140
CountryCode:
$ref: '#/components/schemas/CountryCode'
LEI:
description: Legal entity identification as an alternate identification for a party. Legal Entity Identifier is a code allocated to a party as described in ISO 17442 "Financial Services - Legal Entity Identifier (LEI)".
type: string
minLength: 1
maxLength: 20
pattern: ^[0-9]{4}[0]{2}[A-Z0-9]{12}[0-9]{2}
OBUltimateCreditor1:
description: Ultimate party to which an amount of money is due.
type: object
properties:
Name:
description: Name by which a party is known and which is usually used to identify that party.
type: string
minLength: 1
maxLength: 140
Identification:
description: Identification assigned by an institution.
type: string
minLength: 1
maxLength: 256
LEI:
$ref: '#/components/schemas/LEI'
SchemeName:
$ref: '#/components/schemas/OBInternalAccountIdentification4Code'
PostalAddress:
$ref: '#/components/schemas/OBPostalAddress7'
OBUltimateDebtor1:
description: Ultimate party that owes an amount of money to the (ultimate) creditor.
type: object
properties:
Name:
description: Name by which a party is known and which is usually used to identify that party.
type: string
minLength: 1
maxLength: 140
Identification:
description: Identification assigned by an institution.
type: string
minLength: 1
maxLength: 256
LEI:
$ref: '#/components/schemas/LEI'
SchemeName:
$ref: '#/components/schemas/OBInternalAccountIdentification4Code'
PostalAddress:
$ref: '#/components/schemas/OBPostalAddress7'
Identification_3:
description: Identification of the organisation issuing the invoice, when it is different from the creditor or ultimate creditor
type: string
example: '80200112344562'
minLength: 1
maxLength: 256
Department:
description: Identification of a division of a large organisation or building.
type: string
minLength: 1
maxLength: 70
Floor:
description: Number that identifies the level within a building
type: string
minLength: 1
maxLength: 70
Meta:
title: MetaData
type: object
additionalProperties: false
description: Meta Data relevant to the payload
properties:
TotalPages:
type: integer
format: int32
FirstAvailableDateTime:
$ref: '#/components/schemas/ISODateTime'
LastAvailableDateTime:
$ref: '#/components/schemas/ISODateTime'
ExternalProxyAccountType1Code:
description: Specifies the external proxy account type code, as published in the proxy account type external code set.<br /> For a full list of values see `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Inte
# --- truncated at 32 KB (93 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zopa/refs/heads/main/openapi/zopa-domestic-payments-api-openapi.yml