Payment Initiation API Specification - v3.1.1
- 1 Version Control
- 2 Overview
- 2.1 Document Overview
- 2.2 Design Principles
- 2.2.1 Scheme Agnostic
- 2.2.2 Status Codes
- 3 Basics
- 3.1 Overview
- 3.2 Steps
- 3.3 Sequence Diagram
- 3.4 Payment Restrictions
- 3.4.1 CutOffDateTime Behaviour
- 3.4.1.1 Reject the Payment-Order
- 3.4.1.2 Accept the Payment-Order
- 3.4.1 CutOffDateTime Behaviour
- 3.5 Release Management
- 3.5.1 Payment-Order Consent
- 3.5.2 Payment-Order Consent (Confirm Funds)
- 3.5.2.1 GET
- 3.5.3 Payment-Order Resource
- 4 Endpoints
- 5 Security & Access Control
- 5.1 API Scopes
- 5.1.1 Scopes
- 5.2 Grants Types
- 5.3 Consent Authorisation
- 5.3.1 Multiple Authorisation
- 5.3.2 Error Condition
- 5.3.3 Consent Revocation
- 5.3.4 Changes to Selected Account
- 5.3.5 Consent Re-authentication
- 5.4 Risk Scoring Information
- 5.1 API Scopes
- 6 Swagger Specification
- 7 Data Model
- 7.1 Reused Classes
- 7.1.1 OBRisk1
- 7.1.1.1 UML Diagram
- 7.1.1.2 Data Dictionary
- 7.1.2 OBCharge2
- 7.1.2.1 UML Diagram
- 7.1.2.2 Data Dictionary
- 7.1.3 OBAuthorisation1
- 7.1.3.1 UML Diagram
- 7.1.3.2 Data Dictionary
- 7.1.4 OBMultiAuthorisation1
- 7.1.4.1 UML Diagram
- 7.1.4.2 Data Dictionary
- 7.1.1 OBRisk1
- 7.2 Identifier Fields
- 7.2.1 Merchant Flow
- 7.2.2 Party to Party Flow
- 7.3 Payment Order Types
- 7.4 Enumerations
- 7.4.1 Static Enumerations
- 7.4.2 ISO Enumerations
- 7.4.3 Namespaced Enumerations
- 7.1 Reused Classes
- 8 Alternative and Error Flows
Version Control
Version | Date | Author | Comments |
|---|---|---|---|
3.0 | Sep 7, 2018 | OB R/W API Team | This is the baseline version. No change from RC3. Swagger URLs have been updated to point to the latest stable version. |
3.1-draft1 | Sep 11, 2018 | OB R/W API Team | This is the initial draft version for 3.1. Errata
|
3.1-draft2 | Oct 1, 2018 | OB R/W API Team | Draft2 Changes:
|
3.1-draft3 | Oct 11, 2018 | OB R/W API Team | Draft3 Changes:
Errata
|
3.1-draft4 | Nov 6, 2018 | OB R/W API Team | Draft4 Changes:
|
3.1-rc1 | Nov 12, 2018 | OB R/W API Team | RC1 Changes:
|
3.1 | Nov 30, 2018 | OB R/W API Team | Version 3.1 final release. No changes from Version 3.1 RC1. Dec 12, 2018 Updated swagger links to latest release candidate. |
3.1.1-draft1 | Jan 31, 2019 | OB R/W API Team | v3.1.1 RC1 changes:
|
Overview
This Payment Initiation API Specification describes the flows and payloads for initiating a general payment-order.
The API endpoints described here allow a PISP to:
Register an intent to stage a payment-order consent.
Optionally confirm available funds for a payment-order
Domestic immediate, international immediate and international scheduled (immediate debit) payments only.
Subsequently submit the payment-order for processing.
Optionally retrieve the status of a payment-order consent or payment-order resource.
This specification should be read in conjunction with Read/Write Data API Specification which provides a description of the elements that are common across all the Read/Write Data APIs.
Document Overview
This document consists of the following parts:
Overview: Provides an overview of the API and the key decisions and principles that contributed to the specification.
Basics: The section begins with an introduction to how the API is to be used to initiate a payment order, using the example of a single immediate payment. It goes on to identify the resources and operations that are permitted on those resources and various special cases.
Security & Access Control: Specifies the means for PISPs and PSUs to authenticate themselves and provide consent.
Swagger Specifications: Provides links to the swagger specifications for the APIs.
Data Model: Describes the data model for the API payloads.
Usage Examples: Provides examples for normal flows, and alternate flows.
Design Principles
Scheme Agnostic
The API has been be designed so that it is agnostic to the underlying payment scheme that is responsible for carrying out the payment.
In doing so, this means we will not design field lengths and payloads to only match the Faster Payments message, and will instead rely on the field lengths and definitions in ISO 20022. Due diligence has been carried out to ensure that the API has the necessary fields to function with Bacs payments as per the agreed scope.
Further mapping guidance has been provided to ensure that differences are understood between the Open Banking Payment API standard, and other message formats in the Domestic Payment Message Formats sub-page.
Status Codes
The API uses two status codes that serve two different purposes:
The HTTP Status Code reflects the outcome of the API call (the HTTP operation on the resource).
The Status field for the payment-order consent reflects the status of the PSU consent authorisation.
The Status field for the payment-order resource reflects the status of the payment-order initiation or execution.
Basics
Overview
The figure below provides a general outline of a payment flow for all payment-order types using the Payment APIs. The payment-order types covered in this specification include:
Domestic payments.
Domestic scheduled payments.
Domestic standing orders.
International payments.
International scheduled payments.
The payment-order consent and payment-order resource in the following flow generalises for the different payment-order types. e.g. for a domestic payment, the payment-order consent resource is domestic-payment-consents; and the payment-order resource is domestic-payments.