Domestic Payments v3.0

Version Control

VersionDateAuthorComments
3.0-draft118-Apr-2018OB R/W API Team

First draft of v3

3.0-draft2 OB R/W API Team

Changes to the Data Model section.

Reused classes for the payment setup request and response objects are documented once:

  • OBInitiation2
  • OBRisk1

Payloads for the payment setup request and response have been updated to reflect requirements for P5a and P10. 

Changes to the request payload for the payment setup object:

  • Permission requested (operation for v3.0 will be limited to "Create")
  • InstructedAmount changes from 1..1 to 0..1 (optional) - as a PISP may stage an EquivalentAmount (to setup an international payment)
  • RequestedExecutionDate - which is a 0..1 (optional) field - which indicates to the ASPSP the payment setup is for a future date
  • ExchangeRateInformation object - where a PISP may indicate requested exchange type and rates, which may have been pre-negotiated with the ASPSP. The ASPSP will reject the request if the requested rate cannot be fulfilled.
  • EquivalentAmount to indicate payment amount in a currency other than the currency of the DebtorAccount
  • CreditorAccount object modified to allow for international beneficiaries (aligned to the beneficiaries endpoint for v2.0)

Changes to the response payload for the payment setup object:

  • The same changes as the request payload
  • StatusUpdateDateTime (to align with v2.0)
  • ExpirationDateTime to indicate the cut-off times and validity of the payment setup (for the ASPSP)
  • Charge array which will be used by the ASPSP to indicate charges, and the ChargeBearer as relevant
  • ExchangeRateInformation (the ASPSP response) - this object will be used to communicate exchange rate information back to the PISP. It must be consistent with what is requested in the Initiation object from the PISP.

For international payments - have removed reference to:

  • "and the Servicer identification section (either DebtorAgent or CreditorAgent) should be populated with the "BICFI" as the SchemeName" in the case of an IBAN.

Payment-submission carried from draft2:

Changes to the Data Model section.

Changes to the request and response payloads for the payment-submission object:

  • InstructedAmount changes from 1..1 to 0..1 (optional) - as a PISP may stage an EquivalentAmount (to setup an international payment)
  • RequestedExecutionDate - which is a 0..1 (optional) field - which indicates to the ASPSP the payment setup is for a future date
  • ExchangeRateInformation object - where a PISP may indicate requested exchange rates, which have been pre-negotiated with the ASPSP. The ASPSP will reject the request if the requested rate cannot be fulfilled.
  • EquivalentAmount to indicate payment amount in a currency other than the currency of the DebtorAccount
  • CreditorAccount object modified to allow for international beneficiaries (aligned to the beneficiaries endpoint for v2.0)
  • Charge array which will be used by the ASPSP to indicate charges, and the ChargeBearer as relevant
  • ExchangeRateInformation (the ASPSP response) - this object will be used to communicate exchange rate information

The payment-submission (both request and response) payloads includes the ASPSP response for Charge and ExchangeRateInformation (that the PSU is consenting to).

Changes specific to the response payload for the payment-submission object:

  • StatusUpdateDateTime (to align with v2.0)
  • Initiation object is included in the response
3.0-draft3 OB R/W API Team

Modified title from Payments to Domestic Payments (and merged Payments and Payment Submissions pages)

Draft3 changes:

  • Reverted OBInitiation2 to OBInitiation1 in v3-draft1 (as this endpoint now only relates to domestic-payments) and renamed object to OBDomestic1 for Domestic Payments
  • Renamed /payments endpoint to /domestic-payment-consents
  • Renamed /payment-submissions endpoint to /domestic-payments
  • Updates to specification text to refer to new resource names
  • Updates Status flow to clarify flow, and allowable values
  • Moved OBRisk1 class from this page to the main Payment Initiation API page
  • CreditorAgent and DebtorAgent have been removed - as these are not required for domestic single immediate payments. DebtorAgent is also identifiable by the ASPSP after the PSU authenticates, so is not required.
  • Added State Model section, and updated domestic-payment-consent resource with consistent authorisation state flow.
  • Added new consent Status of Consumed to indicate action from requested authorisation is complete.
  • The Initiation object from the domestic-payment-consent is now replayed in the response object for the domestic-payment
  • Aligned GET operations Mandatory? flag with the equivalent resource POST.
3.0-draft4 OB R/W API Team

Draft4 changes:

OBDomestic1 object:

  • Added optional LocalInstrument to identify the requested payment scheme
  • Added optional CreditorPostalAddress for CHAPS payments that require the address details for the Creditor

Added re-used class description for:

  • OBCharge1

For the domestic-payment-consent response:

  • Added optional CutOffDateTime as some payment schemes have a cut-off time
  • Added optional Charges array as ASPSPs may require the ability to communicate fees and charges

For the domestic-payment response:

  • Added optional Charges array as ASPSPs may require the ability to communicate fees and charges

Clarified use of Idempotency Key in endpoint table.

3.0-draft5 OB R/W API Team

Draft5 changes:

  • Updated namespacing for LocalInstrument to align with pending decision in 144
  • SchemeName fields to be Max40Text - so Agent SchemeName values and Account SchemeName values will not be enforced via codelist (145)
  • DebtorAccount/Identification field extended to Max256Text to allow for email and other identification schemes
  • CreditorAccount/Identification field extended to Max256Text to allow for email and other identification schemes
  • Clarified that "All elements in the Initiation payload that are specified by the PISP must not be changed via the ASPSP."
  • Reworded section for clarity in POST /domestic-payments from "will" to "must" and "happen" to "be executed": "The domestic payment must be submitted immediately, however, there are some scenarios where the domestic payment may not be executed immediately"
  • Usage Examples and Alternate flows are moved back to the individual specification pages
  • Errata: removed reference of "International" from International Payment Initiation, in relation to OBCharge1 definition
3.0-draft6/rc1 OB R/W API Team

Draft6 changes:

  • Updated the OBDomestic1 object guidance from "the ASPSP must Reject the Initiation request" to "the ASPSP must reject the domestic-payment-consent"
  • Clarified the behavioural difference in when ASPSP rejects the payment-order consent request and when ASPSP sets the status of payment-order consent to Rejected
  • Added section for State Model / Payment Order / Multiple Authorisation
  • Updated definition of Name field in the CreditorAccount and DebtorAccount objects for clarity. Have specified usage that it is "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."
  • Added reused classes for:
    • OBAuthorisation1
    • OBMultiAuthorisation1
  • Updated Data Model section to reflect:
    • Authorisation object in the payment-order consent request and response
    • MultiAuthorisation object in the payment-order resource response
    • ExpectedExecutionDateTime and ExpectedSettlementDateTime in the payment-order consent response and payment-order resource response
  • Added Notes section to describe the content of the POST /domestic-payment-consent
  • Updated "PersonToPerson" to "PartyToParty" in Usage Examples
  • Updated Usage Examples to reflect namespacing for the SchemeName and LocalInstrument fields
3.0-draft7 OB R/W API Team

Draft7 Changes:

  • Changed the Grant Type for GET Requests to be Client Credentials Only.
  • Moved definitions of reused classes - OBCharge1, OBAuthorisation1 and OBMultiAuthorisation1 to Payment Initiation API Specification page
  • Additional guidance on the ExpectedExecutionDateTime and ExpectedSettlementDateTime
3.0-RC2 OB R/W API Team

RC2 Changes:

  • Updated notes on CutOffDateTime to refer to Payment Initiation API Specification, Section - Payment Restrictions -> CutOffDateTime API Behaviour
3.0-RC3 OB R/W API Team

RC3 Changes:

  • Usage example added for Balance Transfer
3.0 OB R/W API TeamThis is the baseline version. No change from RC3.

Endpoints

ResourceHTTP OperationEndpointMandatory ?ScopeGrant TypeMessage SigningIdempotency KeyRequest ObjectResponse Object
domestic-payment-consentsPOSTPOST /domestic-payment-consentsMandatorypaymentsClient Credentials

Signed Request

Signed Response

YesOBWriteDomesticConsent1OBWriteDomesticConsentResponse1
domestic-payment-consentsGETGET /domestic-payment-consents/{ConsentId}Mandatorypayments

Client Credentials

Signed ResponseNoNAOBWriteDomesticConsentResponse1
domestic-paymentsPOSTPOST /domestic-paymentsMandatorypaymentsAuthorization Code

Signed Request

Signed Response

YesOBWriteDomestic1OBWriteDomesticResponse1
domestic-paymentsGETGET /domestic-payments/{DomesticPaymentId}Mandatorypayments

Client Credentials

Signed ResponseNoNAOBWriteDomesticResponse1

POST /domestic-payment-consents 

POST /domestic-payment-consents

The API endpoint allows the PISP to ask an ASPSP to create a new domestic-payment-consent resource.

  • The POST action indicates to the ASPSP that a domestic payment consent has been staged. At this point, the PSU may not have been identified by the ASPSP, and the request payload may not contain any information of the account that should be debited.
  • The endpoint allows the PISP to send a copy of the consent (between PSU and PISP) to the ASPSP for the PSU to authorise.
  • The ASPSP creates the domestic-payment-consent resource and responds with a unique ConsentId to refer to the resource.

Status

The default Status is "AwaitingAuthorisation" immediately after the domestic-payment-consent has been created.

Status
AwaitingAuthorisation

GET /domestic-payment-consents/{ConsentId}

GET /domestic-payment-consents/{ConsentId}

A PISP can optionally retrieve a payment consent resource that they have created to check its status. 

Status

Once the PSU authorises the payment-consent resource - the Status of the payment-consent resource will be updated with "Authorised".

If the PSU rejects the consent or the domestic-payment-consent has failed some other ASPSP validation, the Status will be set to "Rejected".

Once a domestic-payment has been successfully created using the domestic-payment-consent, the Status of the domestic-payment-consent will be set to "Consumed".

The available Status codes for the domestic-payment-consent resource are:

Status
AwaitingAuthorisation
Rejected
Authorised
Consumed

POST /domestic-payments

POST /domestic-payments

Once the domestic-payment-consent has been authorised by the PSU, the PISP can proceed to submitting the domestic-payment for processing:

  • This is done by making a POST request to the domestic-payments endpoint.
  • This request is an instruction to the ASPSP to begin the domestic single immediate payment journey. The domestic payment must be submitted immediately, however, there are some scenarios where the domestic payment may not be executed immediately (e.g. busy periods at the ASPSP).
  • The PISP must ensure that the Initiation and Risk sections of the domestic-payment match the corresponding Initiation and Risk sections of the domestic-payment-consent resource. If the two do not match, the ASPSP must not process the request and must respond with a 400 (Bad Request).
  • Any operations on the domestic-payment resource will not result in a Status change for the domestic-payment resource.

Status

A domestic-payment can only be created if its corresponding domestic-payment-consent resource has the status of "Authorised". 

The domestic-payment resource that is created successfully must have one of the following PaymentStatusCode code-set enumerations:

Status
Pending
Rejected
AcceptedSettlementInProcess 

GET /domestic-payments/{DomesticPaymentId}

GET /domestic-payments/{DomesticPaymentId}

A PISP can retrieve the domestic-payment to check its status.

Status

The domestic-payment resource must have one of the following PaymentStatusCode code-set enumerations:

Status
Pending
Rejected
AcceptedSettlementInProcess 
AcceptedSettlementCompleted

State Model

Payment Order Consent

The state model for the domestic-payment-consent resource follows the generic consent state model. However, does not use the "Revoked" status, as the consent for a domestic-payment is not a long-lived consent.



The definitions for the Status:


StatusStatus Description
1AwaitingAuthorisationThe consent resource is awaiting PSU authorisation.
2RejectedThe consent resource has been rejected.
3Authorised The consent resource has been successfully authorised.
4ConsumedThe consented action has been successfully completed. This does not reflect the status of the consented action.

Payment Order

The state model for the domestic-payment resource follows the behaviour and definitions for the ISO 20022 PaymentStatusCode code-set.



The definitions for the Status:


StatusPayment Status Description
1PendingPayment initiation or individual transaction included in the payment initiation is pending.  Further checks and status update will be performed.
2RejectedPayment initiation or individual transaction included in the payment initiation has been rejected.
3AcceptedSettlementInProcess All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.
4AcceptedSettlementCompletedSettlement on the debtor's account has been completed. 

Multiple Authorisation

If the payment-order requires multiple authorisations - the Status of the multiple authorisations will be updated in the MultiAuthorisation object.


The definitions for the Status:


StatusStatus Description
1AwaitingFurtherAuthorisationThe payment-order resource is awaiting further authorisation.
2RejectedThe payment-order resource has been rejected by an authoriser.
3Authorised The payment-order resource has been successfully authorised by all required authorisers.

Data Model

The data dictionary section gives the detail on the payload content for the Domestic Payment API flows.

Reused Classes

OBDomestic1

This section describes the OBDomestic1 class - which is reused as the Initiation object in the domestic-payment-consent and domestic-payment resources.

UML Diagram

Notes

For the OBDomestic1 Initiation object:  

  • All elements in the Initiation payload that are specified by the PISP must not be changed via the ASPSP - as this is part of formal consent from the PSU.
  • If the ASPSP is able to establish a problem with payload or any contextual error during the API call, the ASPSP must reject the domestic-payment-consent request immediately

  • If the ASPSP establishes a problem with the domestic-payment-consent after the API call, the ASPSP must set the Status of the domestic-payment-consent resource to Rejected

  • DebtorAccount is optional - as the PISP may not know the account identification details for the PSU.
  • If the DebtorAccount is specified by the PISP and is invalid for the PSU - then the domestic-payment-consent will be set to Rejected after PSU authentication.
  • Account Identification field usage:
    • Where "SortCodeAccountNumber" is specified as the SchemeName in the Account identification section (either DebtorAccount or CreditorAccount), the Identification field must be populated with the 6 digit Sort Code and 8 digit Account Number (a 14 digit field).
    • Where the "IBAN" is specified as the SchemeName in the Account identification section (either DebtorAccount or CreditorAccount), the Identification field must be populated with the full IBAN.
  • The element Reference has been renamed from CreditorReferenceInformation - as this is the unique ISO 20022 element used in pain.001, rather than an ISO 20022 message component.
  • As a merchant may be initiating a payment via a PISP - two identifiers are included in the payload: 
    • InstructionIdentification is uniquely generated by the PISP - the expectation is that this is unique indefinitely across all time periods. The PISP can ensure this is indefinitely unique by including a date or date-time element to the field, or by inserting a unique Id. 
    • EndToEndIdentification is uniquely generated by the merchant.
  • Neither the InstructionIdentification nor EndToEndIdentification will be used as the domestic-payment-consent resource identifier (ConsentId) - as the ConsentId must be uniquely generated by the ASPSP.
  • LocalInstrument is the requested payment scheme for execution. This is a free-text field.
  • Design decisions for the Initiation section of the payload - and how this maps to the ISO 20022 messaging standard are articulated in the Mapping to Schemes and Standards section.

Data Dictionary

NameOccurrenceXPathEnhancedDefinitionClassCodesPattern
OBDomestic1
OBDomestic1The 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.OBDomestic1

InstructionIdentification1..1OBDomestic1/InstructionIdentificationUnique 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.
Max35Text

EndToEndIdentification1..1OBDomestic1/EndToEndIdentificationUnique 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.
Max35Text

LocalInstrument0..1OBDomestic1/LocalInstrumentUser community specific instrument.

Usage: This element is used to specify a local instrument, local clearing option and/or further qualify the service or service level.
Max35Text

InstructedAmount1..1OBDomestic1/InstructedAmountAmount 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.
OBActiveOrHistoricCurrencyAndAmount

Amount1..1OBDomestic1/InstructedAmount/AmountA number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.ActiveCurrencyAndAmount_SimpleType

Currency1..1OBDomestic1/InstructedAmount/CurrencyA code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds".ActiveOrHistoricCurrencyCode^[A-Z]{3,3}$
DebtorAccount0..1OBDomestic1/DebtorAccountUnambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.OBCashAccountDebtor3

SchemeName1..1OBDomestic1/DebtorAccount/SchemeNameName of the identification scheme, in a coded form as published in an external list.Max40Text

Identification1..1OBDomestic1/DebtorAccount/IdentificationIdentification assigned by an institution to identify an account. This identification is known by the account owner.Max256Text

Name0..1OBDomestic1/DebtorAccount/NameName 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.
Max70Text

SecondaryIdentification0..1OBDomestic1/DebtorAccount/SecondaryIdentificationThis is secondary identification of the account, as assigned by the account servicing institution.
This can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination).
Max34Text

CreditorAccount1..1OBDomestic1/CreditorAccountUnambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.OBCashAccountCreditor2

SchemeName1..1OBDomestic1/CreditorAccount/SchemeNameName of the identification scheme, in a coded form as published in an external list.Max40Text

Identification1..1OBDomestic1/CreditorAccount/IdentificationIdentification assigned by an institution to identify an account. This identification is known by the account owner.Max256Text

Name1..1OBDomestic1/CreditorAccount/NameName 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.
Max70Text

SecondaryIdentification0..1OBDomestic1/CreditorAccount/SecondaryIdentificationThis is secondary identification of the account, as assigned by the account servicing institution.
This can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination).
Max34Text

CreditorPostalAddress0..1OBDomestic1/CreditorPostalAddressInformation that locates and identifies a specific address, as defined by postal services.OBPostalAddress6

AddressType0..1OBDomestic1/CreditorPostalAddress/AddressTypeIdentifies the nature of the postal address.OBAddressTypeCodeBusiness
Correspondence
DeliveryTo
MailTo
POBox
Postal
Residential
Statement

Department0..1OBDomestic1/CreditorPostalAddress/DepartmentIdentification of a division of a large organisation or building.Max70Text

SubDepartment0..1OBDomestic1/CreditorPostalAddress/SubDepartmentIdentification of a sub-division of a large organisation or building.Max70Text

StreetName0..1OBDomestic1/CreditorPostalAddress/StreetNameName of a street or thoroughfare.Max70Text

BuildingNumber0..1OBDomestic1/CreditorPostalAddress/BuildingNumberNumber that identifies the position of a building on a street.Max16Text

PostCode0..1OBDomestic1/CreditorPostalAddress/PostCodeIdentifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.Max16Text

TownName0..1OBDomestic1/CreditorPostalAddress/TownNameName of a built-up area, with defined boundaries, and a local government.Max35Text

CountrySubDivision0..1OBDomestic1/CreditorPostalAddress/CountrySubDivisionIdentifies a subdivision of a country such as state, region, county.Max35Text

Country0..1OBDomestic1/CreditorPostalAddress/CountryNation with its own government.CountryCode^[A-Z]{2,2}$
AddressLine0..7OBDomestic1/CreditorPostalAddress/AddressLineInformation that locates and identifies a specific address, as defined by postal services, presented in free format text.Max70Text

RemittanceInformation0..1OBDomestic1/RemittanceInformationInformation supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' receivable system.OBRemittanceInformation1

Unstructured0..1OBDomestic1/RemittanceInformation/UnstructuredInformation supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system, in an unstructured form.Max140Text

Reference0..1OBDomestic1/RemittanceInformation/ReferenceUnique reference, as assigned by the creditor, to unambiguously refer to the payment transaction.

Usage: If available, the initiating party should provide this reference in the structured remittance information, to enable reconciliation by the creditor upon receipt of the amount of money.

If the business context requires the use of a creditor reference or a payment remit identification, and only one identifier can be passed through the end-to-end chain, the creditor's reference or payment remittance identification should be quoted in the end-to-end transaction identification.
OB: The Faster Payments Scheme can only accept 18 characters for the ReferenceInformation field - which is where this ISO field will be mapped.
Max35Text

Domestic Payment Consent - Request

The OBWriteDomesticConsent1 object will be used for the call to:

  • POST /domestic-payment-consents

UML Diagram

Notes

The domestic-payment-consent request contains these objects:

  • Initiation
  • Authorisation
  • Risk

Data Dictionary

NameOccurrenceXPathEnhancedDefinitionClassCodesPattern
OBWriteDomesticConsent1OBWriteDomesticConsent1

OBWriteDomesticConsent1

Data1..1OBWriteDomesticConsent1/Data
OBWriteDataDomesticConsent1

Initiation1..1OBWriteDomesticConsent1/Data/InitiationThe 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.OBDomestic1

Authorisation0..1OBWriteDomesticConsent1/Data/AuthorisationThe auhorisation type request from the TPP.OBAuthorisation1

Domestic Payment Consent - Response

The OBWriteDomesticConsentResponse1 object will be used for a response to a call to:

  • POST /domestic-payment-consents
  • GET /domestic-payment-consents/{ConsentId}

UML Diagram

Notes

The domestic-payment-consent response contains the full original payload from the domestic-payment-consent request - with these additional elements:

  • ConsentId
  • CreationDateTime the domestic-payment-consent resource was created
  • Status and StatusUpdateDateTime of the domestic-payment-consent resource
  • CutOffDateTime Behaviour is explained in Payment Initiation API Specification, Section - Payment Restrictions -> CutOffDateTime API Behaviour
  • ExpectedExecutionDateTime for the domestic-payment resource if created before CutOffDateTIme - the expected DateTime the payment is executed against the Debtor Account. If populated, the ASPSP must update the value with any changes (e.g., after PSU authorisation).
  • ExpectedSettlementDateTime for the domestic-payment resource if created before CutOffDateTIme - the expected DateTime the payment will be received at the Creditor Account. If populated, the ASPSP must update the value with any changes (e.g., after PSU authorisation).
  • Charges array - for the breakdown of applicable ASPSP charges

Data Dictionary

NameOccurrenceXPathEnhancedDefinitionClassCodesPattern
OBWriteDomesticConsentResponse1
OBWriteDomesticConsentResponse1
OBWriteDomesticConsentResponse1

Data1..1OBWriteDomesticConsentResponse1/Data
OBWriteDataDomesticConsentResponse1

ConsentId1..1OBWriteDomesticConsentResponse1/Data/ConsentIdOB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.Max128Text

CreationDateTime1..1OBWriteDomesticConsentResponse1/Data/CreationDateTimeDate and time at which the resource was created.ISODateTime

Status1..1OBWriteDomesticConsentResponse1/Data/StatusSpecifies the status of consent resource in code form.OBExternalConsentStatus1CodeAuthorised
AwaitingAuthorisation
Consumed
Rejected

StatusUpdateDateTime1..1OBWriteDomesticConsentResponse1/Data/StatusUpdateDateTimeDate and time at which the resource status was updated.ISODateTime

CutOffDateTime0..1OBWriteDomesticConsentResponse1/Data/CutOffDateTimeSpecified cut-off date and time for the payment consent.ISODateTime

ExpectedExecutionDateTime0..1OBWriteDomesticConsentResponse1/Data/ExpectedExecutionDateTimeExpected execution date and time for the payment resource.ISODateTime

ExpectedSettlementDateTime0..1OBWriteDomesticConsentResponse1/Data/ExpectedSettlementDateTimeExpected settlement date and time for the payment resource.ISODateTime

Charges0..nOBWriteDomesticConsentResponse1/Data/ChargesSet of elements used to provide details of a charge for the payment initiation.OBCharge1

Initiation1..1OBWriteDomesticConsentResponse1/Data/InitiationThe 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.OBDomestic1

Authorisation0..1OBWriteDomesticConsentResponse1/Data/AuthorisationThe authorisation type request from the TPP.OBAuthorisation1

Risk1..1OBWriteDomesticConsentResponse1/RiskThe Risk section is sent by the initiating party to the ASPSP. It is used to specify additional details for risk scoring for Payments.OBRisk1

Domestic Payment - Request

The OBWriteDomestic1 object will be used for a call to:

  • POST /domestic-payments

UML Diagram

Notes

The domestic-payment request object contains the: 

  • ConsentId
  • The full Initiation and Risk objects from the domestic-payment-consent request

The Initiation and Risk sections of the domestic-payment request must match the Initiation and Risk sections of the corresponding domestic-payment-consent request.

Data Dictionary

NameOccurrenceXPathEnhancedDefinitionClassCodesPattern
OBWriteDomestic1
OBWriteDomestic1
OBWriteDomestic1

Data1..1OBWriteDomestic1/Data
OBWriteDataDomestic1

ConsentId1..1OBWriteDomestic1/Data/ConsentIdOB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.Max128Text

Initiation1..1OBWriteDomestic1/Data/InitiationThe 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.OBDomestic1

Risk1..1OBWriteDomestic1/RiskThe Risk section is sent by the initiating party to the ASPSP. It is used to specify additional details for risk scoring for Payments.OBRisk1

Domestic Payment - Response

The OBWriteDomesticResponse1 object will be used for a response to a call to:

  • POST /domestic-payments
  • GET /domestic-payments/{DomesticPaymentId}

UML Diagram

Notes

The domestic-payment response object contains the: 

  • DomesticPaymentId
  • ConsentId
  • CreationDateTime the domestic-payment resource was created
  • Status and StatusUpdateDateTime of the domestic-payment resource
  • ExpectedExecutionDateTime for the domestic-payment resource
  • ExpectedSettlementDateTime for the domestic-payment resource
  • Charges array - for the breakdown of applicable ASPSP charges
  • The Initiation object from the domestic-payment-consent
  • The MultiAuthorisation object if the domestic-payment resource requires multiple authorisations

Data Dictionary

NameOccurrenceXPathEnhancedDefinitionClassCodesPattern
OBWriteDomesticResponse1
OBWriteDomesticResponse1
OBWriteDomesticResponse1

Data1..1OBWriteDomesticResponse1/Data
OBWriteDataDomesticResponse1

DomesticPaymentId1..1OBWriteDomesticResponse1/Data/DomesticPaymentIdOB: Unique identification as assigned by the ASPSP to uniquely identify the domestic payment resource.Max40Text

ConsentId1..1OBWriteDomesticResponse1/Data/ConsentIdOB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.Max128Text

CreationDateTime1..1OBWriteDomesticResponse1/Data/CreationDateTimeDate and time at which the message was created.ISODateTime

Status1..1OBWriteDomesticResponse1/Data/StatusSpecifies the status of the payment information group.OBTransactionIndividualStatus1CodeAcceptedSettlementCompleted
AcceptedSettlementInProcess
Pending
Rejected

StatusUpdateDateTime1..1OBWriteDomesticResponse1/Data/StatusUpdateDateTimeDate and time at which the resource status was updated.ISODateTime

ExpectedExecutionDateTime0..1OBWriteDomesticResponse1/Data/ExpectedExecutionDateTimeExpected execution date and time for the payment resource.ISODateTime

ExpectedSettlementDateTime0..1OBWriteDomesticResponse1/Data/ExpectedSettlementDateTimeExpected settlement date and time for the payment resource.ISODateTime

Charges0..nOBWriteDomesticResponse1/Data/ChargesSet of elements used to provide details of a charge for the payment initiation.OBCharge1

Initiation1..1OBWriteDomesticResponse1/Data/InitiationThe 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.OBDomestic1

MultiAuthorisation0..1OBWriteDomesticResponse1/Data/MultiAuthorisationThe multiple authorisation flow response from the ASPSP.OBMultiAuthorisation1

Usage Examples

Merchant Initiation via PISP

This example set of flows and payload examples are for a domestic payment initiated by a merchant via a PISP.

In this scenario:

  • The merchant has not specified the Debtor Account details for the PSU - the PSU will select their account during the authorisation of consent
  • The merchant's account is a building society account - with a roll number specified in the SecondaryIdentification field

Sequence Diagram


Usage Examples - Merchant
participant PSU
participant Merchant
participant PISP
participant ASPSP Authorisation Server
participant ASPSP Resource Server
  
note over PSU, ASPSP Resource Server
Step 1: Agree Domestic Payment-Order Initiation
end note
PSU -> Merchant: Check-out and pay
Merchant -> PISP: Send request to setup domestic payment consent

note over PSU, ASPSP Resource Server
Step 2: Setup Domestic Payment-Order Consent
end note
PISP <-> ASPSP Authorisation Server: Establish TLS 1.2 MA
PISP -> ASPSP Authorisation Server: Initiate Client Credentials Grant
ASPSP Authorisation Server -> PISP: access-token
PISP <-> ASPSP Resource Server: Establish TLS 1.2 MA
PISP -> ASPSP Resource Server: POST /domestic-payment-consents
ASPSP Resource Server -> PISP: HTTP 201 (Created), ConsentId
PISP -> Merchant: HTTP 302 (Found), Redirect (ConsentId)
Merchant -> PSU: HTTP 302 (Found), Redirect (ConsentId)

note over PSU, ASPSP Resource Server
Step 3: Authorize consent
end note
PSU -> ASPSP Authorisation Server: Follow redirect (ConsentId)
PSU <-> ASPSP Authorisation Server: authenticate
PSU <-> ASPSP Authorisation Server: SCA if required
PSU <-> ASPSP Authorisation Server: Select debtor account
ASPSP Authorisation Server -> PSU: HTTP 302 (Found), Redirect (authorization-code)
PSU -> PISP: Follow redirect (authorization-code)
PISP <-> ASPSP Authorisation Server: Establish TLS 1.2 MA
PISP -> ASPSP Authorisation Server: Exchange authorization-code for access token
ASPSP Authorisation Server -> PISP: access-token
PISP -> PSU: HTTP 302 (Found), Redirect back to merchant
PSU -> Merchant: Follow redirect

note over PSU, ASPSP Resource Server
Step 4: Create Domestic Payment-Order
end note
PISP <-> ASPSP Resource Server: Establish TLS 1.2 MA
PISP -> ASPSP Resource Server: POST /domestic-payments
ASPSP Resource Server -> PISP: HTTP 201 (Created), DomesticPaymentId

note over PSU, ASPSP Resource Server
Step 5: Get Domestic Payment-Order status
end note
opt 
Merchant -> PISP: Check payment status
PISP <-> ASPSP Resource Server: Establish TLS 1.2 MA
PISP -> ASPSP Resource Server: GET /domestic-payments/{DomesticPaymentId}
ASPSP Resource Server -> PISP: HTTP 200 (OK), domestic-payments resource
PISP -> Merchant: HTTP 200 (OK), Return domestic-payments Status
 
end opt

Illustrative Interactions

Notes:

  • As per the Security & Access Control section - examples are given where the call to GET must use a client credentials grant to obtain a token to make GET requests.

Create Domestic Payment Order Consent

POST /domestic-payment-consents request

Payment Order Consent Request Payload
POST /domestic-payment-consents HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-idempotency-key: FRESCO.21302.GFX.20
x-jws-signature: TGlmZSdzIGEgam91cm5leSBub3QgYSBkZXN0aW5hdGlvbiA=..T2ggZ29vZCBldmVuaW5nIG1yIHR5bGVyIGdvaW5nIGRvd24gPw==
x-fapi-financial-id: OB/2017/001
x-fapi-customer-last-logged-time: Sun, 10 Sep 2017 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
Accept: application/json

{
  "Data": {
    "Initiation": {
      "InstructionIdentification": "ACME412",
      "EndToEndIdentification": "FRESCO.21302.GFX.20",
      "InstructedAmount": {
        "Amount": "165.88",
        "Currency": "GBP"
      },
      "CreditorAccount": {
        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "ACME Inc",
        "SecondaryIdentification": "0002"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-101",
        "Unstructured": "Internal ops code 5120101"
      }
    }
  },
  "Risk": {
    "PaymentContextCode": "EcommerceGoods",
    "MerchantCategoryCode": "5967",
    "MerchantCustomerIdentification": "053598653254",
    "DeliveryAddress": {
      "AddressLine": [
        "Flat 7",
        "Acacia Lodge"
      ],
      "StreetName": "Acacia Avenue",
      "BuildingNumber": "27",
      "PostCode": "GU31 2ZZ",
      "TownName": "Sparsholt",
      "CountySubDivision": [
        "Wessex"
      ],
      "Country": "UK"
    }
  }
}




POST /domestic-payment-consents response

Payment Order Consent Response Payload
HTTP/1.1 201 Created
x-jws-signature: V2hhdCB3ZSBnb3QgaGVyZQ0K..aXMgZmFpbHVyZSB0byBjb21tdW5pY2F0ZQ0K
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json

{
  "Data": {
    "ConsentId": "58923",
    "Status": "AwaitingAuthorisation",
    "CreationDateTime": "2017-06-05T15:15:13+00:00",
    "StatusUpdateDateTime": "2017-06-05T15:15:13+00:00",
    "Initiation": {
      "InstructionIdentification": "ACME412",
      "EndToEndIdentification": "FRESCO.21302.GFX.20",
      "InstructedAmount": {
        "Amount": "165.88",
        "Currency": "GBP"
      },
      "CreditorAccount": {
        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "ACME Inc",
        "SecondaryIdentification": "0002"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-101",
        "Unstructured": "Internal ops code 5120101"
      }
    }
  },
  "Risk": {
    "PaymentContextCode": "EcommerceGoods",
    "MerchantCategoryCode": "5967",
    "MerchantCustomerIdentification": "053598653254",
    "DeliveryAddress": {
      "AddressLine": [
        "Flat 7",
        "Acacia Lodge"
      ],
      "StreetName": "Acacia Avenue",
      "BuildingNumber": "27",
      "PostCode": "GU31 2ZZ",
      "TownName": "Sparsholt",
      "CountySubDivision": [
        "Wessex"
      ],
      "Country": "UK"
    }
  },
  "Links": {
    "Self": "https://api.alphabank.com/open-banking/v3.0/domestic-payment-consents/58923"
  },
  "Meta": {}
}


Create Domestic Payment Order

POST /domestic-payments Request

Payment Order Request Payload
POST /domestic-payments HTTP/1.1
Authorization: Bearer Jhingapulaav
x-idempotency-key: FRESNO.1317.GFX.22
x-jws-signature: TGlmZSdzIGEgam91cm5leSBub3QgYSBkZXN0aW5hdGlvbiA=..T2ggZ29vZCBldmVuaW5nIG1yIHR5bGVyIGdvaW5nIGRvd24gPw==
x-fapi-financial-id: OB/2017/001
x-fapi-customer-last-logged-time: Sun, 10 Sep 2017 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
Accept: application/json

{
  "Data": {
    "ConsentId": "58923",
    "Initiation": {
      "InstructionIdentification": "ACME412",
      "EndToEndIdentification": "FRESCO.21302.GFX.20",
      "InstructedAmount": {
        "Amount": "165.88",
        "Currency": "GBP"
      },
      "CreditorAccount": {
        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "ACME Inc",
        "SecondaryIdentification": "0002"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-101",
        "Unstructured": "Internal ops code 5120101"
      }
    }
  },
  "Risk": {
    "PaymentContextCode": "EcommerceGoods",
    "MerchantCategoryCode": "5967",
    "MerchantCustomerIdentification": "053598653254",
    "DeliveryAddress": {
      "AddressLine": [
        "Flat 7",
        "Acacia Lodge"
      ],
      "StreetName": "Acacia Avenue",
      "BuildingNumber": "27",
      "PostCode": "GU31 2ZZ",
      "TownName": "Sparsholt",
      "CountySubDivision": [
        "Wessex"
      ],
      "Country": "UK"
    }
  }
}


POST /domestic-payments Response

Payment Order Response Payload
HTTP/1.1 201 Created
x-jws-signature: V2hhdCB3ZSBnb3QgaGVyZQ0K..aXMgZmFpbHVyZSB0byBjb21tdW5pY2F0ZQ0K
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json

{
  "Data": {
    "DomesticPaymentId": "58923-001",
    "ConsentId": "58923",
    "Status": "AcceptedSettlementInProcess",
    "CreationDateTime": "2017-06-05T15:15:22+00:00",
    "StatusUpdateDateTime": "2017-06-05T15:15:13+00:00",
    "Initiation": {
      "InstructionIdentification": "ACME412",
      "EndToEndIdentification": "FRESCO.21302.GFX.20",
      "InstructedAmount": {
        "Amount": "165.88",
        "Currency": "GBP"
      },
      "CreditorAccount": {
        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "ACME Inc",
        "SecondaryIdentification": "0002"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-101",
        "Unstructured": "Internal ops code 5120101"
      }
    }
  },
  "Links": {
    "Self": "https://api.alphabank.com/open-banking/v3.0/domestic-payments/58923-001"
  },
  "Meta": {}
}

Get Domestic Payment Order Consent

GET /domestic-payment-consents/{ConsentId} Request

Get Payment Order Consent Request
GET /domestic-payment-consents/58923 HTTP/1.1
Authorization: Bearer Jhingapulaav
x-fapi-financial-id: OB/2017/001
x-fapi-customer-last-logged-time: Sun, 10 Sep 2017 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Accept: application/json

GET /domestic-payment-consents/{ConsentId} Response

Get Payment Order Consent Response Payload
HTTP/1.1 200 OK
x-jws-signature: V2hhdCB3ZSBnb3QgaGVyZQ0K..aXMgZmFpbHVyZSB0byBjb21tdW5pY2F0ZQ0K
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json

{
  "Data": {
    "ConsentId": "58923",
    "Status": "Authorised",
    "CreationDateTime": "2017-06-05T15:15:13+00:00",
    "StatusUpdateDateTime": "2017-06-05T15:15:22+00:00",
    "Initiation": {
      "InstructionIdentification": "ACME412",
      "EndToEndIdentification": "FRESCO.21302.GFX.20",
      "InstructedAmount": {
        "Amount": "165.88",
        "Currency": "GBP"
      },
      "CreditorAccount": {
        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "ACME Inc",
        "SecondaryIdentification": "0002"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-101",
        "Unstructured": "Internal ops code 5120101"
      }
    }
  },
  "Risk": {
    "PaymentContextCode": "EcommerceGoods",
    "MerchantCategoryCode": "5967",
    "MerchantCustomerIdentification": "053598653254",
    "DeliveryAddress": {
      "AddressLine": [
        "Flat 7",
        "Acacia Lodge"
      ],
      "StreetName": "Acacia Avenue",
      "BuildingNumber": "27",
      "PostCode": "GU31 2ZZ",
      "TownName": "Sparsholt",
      "CountySubDivision": [
        "Wessex"
      ],
      "Country": "UK"
    }
  },
  "Links": {
    "Self": "https://api.alphabank.com/open-banking/v3.0/domestic-payment-consents/58923"
  },
  "Meta": {}
}


Get Domestic Payment Order

GET /domestic-payments/{DomesticPaymentId} Request

GET Payment Order Request
GET /domestic-payments/58923-001 HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-fapi-financial-id: OB/2017/001
x-fapi-customer-last-logged-time:  Sun, 10 Sep 2017 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Accept: application/json

GET /domestic-payments/{DomesticPaymentId} Response

Get Payment Order Response Payload
HTTP/1.1 200 OK
x-jws-signature: V2hhdCB3ZSBnb3QgaGVyZQ0K..aXMgZmFpbHVyZSB0byBjb21tdW5pY2F0ZQ0K
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json

{
  "Data": {
    "DomesticPaymentId": "58923-001",
    "ConsentId": "58923",
    "Status": "AcceptedSettlementInProcess",
    "CreationDateTime": "2017-06-05T15:15:22+00:00",
    "StatusUpdateDateTime": "2017-06-05T15:15:22+00:00",
    "Initiation": {
      "InstructionIdentification": "ACME412",
      "EndToEndIdentification": "FRESCO.21302.GFX.20",
      "InstructedAmount": {
        "Amount": "165.88",
        "Currency": "GBP"
      },
      "CreditorAccount": {
        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "ACME Inc",
        "SecondaryIdentification": "0002"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-101",
        "Unstructured": "Internal ops code 5120101"
      }
    }
  },
  "Links": {
    "Self": "https://api.alphabank.com/open-banking/v3.0/domestic-payments/58923-001"
  },
  "Meta": {}
}


Person To Person Initiation via PISP

This example set of flows and payload examples are for a domestic payment initiated by a person to another person via a PISP.

In this scenario:

  • The PSU has pre-specified the account from which funds will be transferred (i.e., the Debtor Account details)
  • No building society accounts are involved in this interaction - so only the sort code and account number are specified in the DebtorAccount and CreditorAccount sections

Sequence Diagram

Usage Examples - Person to Person
participant PSU
participant PISP
participant ASPSP Authorisation Server
participant ASPSP Resource Server
   
note over PSU, ASPSP Resource Server
Step 1: Agree Domestic Payment-Order initiation
end note
PSU <-> PISP: Initiate a funds transfer
PSU -> PISP: Select debtor and creditor accounts
 
note over PSU, ASPSP Resource Server
Step 2: Setup Domestic Payment-Order Consent
end note
PISP <-> ASPSP Authorisation Server: Establish TLS 1.2 MA
PISP -> ASPSP Authorisation Server: Initiate Client Credentials Grant
ASPSP Authorisation Server -> PISP: access-token
PISP <-> ASPSP Resource Server: Establish TLS 1.2 MA
PISP -> ASPSP Resource Server: POST /domestic-payment-consents
ASPSP Resource Server -> PISP: HTTP 201 (Created), ConsentId
PISP -> PSU: HTTP 302 (Found), Redirect (ConsentId)
 
note over PSU, ASPSP Resource Server
Step 3: Authorize consent
end note
PSU -> ASPSP Authorisation Server: Follow redirect (ConsentId)
PSU <-> ASPSP Authorisation Server: authenticate
PSU <-> ASPSP Authorisation Server: SCA if required
ASPSP Authorisation Server -> PSU: HTTP 302 (Found), Redirect (authorization-code)
PSU -> PISP: Follow redirect (authorization-code)
PISP <-> ASPSP Authorisation Server: Establish TLS 1.2 MA
PISP -> ASPSP Authorisation Server: Exchange authorization-code for access token
ASPSP Authorisation Server -> PISP: access-token
 
note over PSU, ASPSP Resource Server
Step 4: Create Domestic Payment-Order
end note
PISP <-> ASPSP Resource Server: Establish TLS 1.2 MA
PISP -> ASPSP Resource Server: POST /domestic-payments
ASPSP Resource Server -> PISP: HTTP 201 (Created), DomesticPaymentId
 
   
note over PSU, ASPSP Resource Server
Step 5: Get Domestic Payment-Order status
end note
opt
PISP <-> ASPSP Resource Server: Establish TLS 1.2 MA
PISP -> ASPSP Resource Server: GET /domestic-payments/{DomesticPaymentId}
ASPSP Resource Server -> PISP: HTTP 200 (OK), domestic-payments resource

end opt

Illustrative Interactions

Create Domestic Payment Order Consent

POST /domestic-payment-consents request

Payment Order Consent Request Payload
POST /domestic-payment-consents HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-idempotency-key: FRESCO.21302.GFX.20
x-jws-signature: TGlmZSdzIGEgam91cm5leSBub3QgYSBkZXN0aW5hdGlvbiA=..T2ggZ29vZCBldmVuaW5nIG1yIHR5bGVyIGdvaW5nIGRvd24gPw==
x-fapi-financial-id: OB/2017/001
x-fapi-customer-last-logged-time:  Sun, 10 Sep 2017 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
Accept: application/json

{
  "Data": {
    "Initiation": {
      "InstructionIdentification": "ANSM023",
      "EndToEndIdentification": "FRESCO.21302.GFX.37",
      "InstructedAmount": {
        "Amount": "20.00",
        "Currency": "GBP"
      },
      "DebtorAccount": {
        "SchemeName": "SortCodeAccountNumber",
        "Identification": "11280001234567",
        "Name": "Andrea Smith"
      },
      "CreditorAccount": {
        "SchemeName": "SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "Bob Clements"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-037",
        "Unstructured": "Internal ops code 5120103"
      }
    }
  },
  "Risk": {
    "PaymentContextCode": "PartyToParty"
  }
}


POST /domestic-payment-consents response

Payment Order Consent Response Payload
HTTP/1.1 201 Created
x-jws-signature: V2hhdCB3ZSBnb3QgaGVyZQ0K..aXMgZmFpbHVyZSB0byBjb21tdW5pY2F0ZQ0K
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json

{
  "Data": {
    "ConsentId": "7290",
    "Status": "AwaitingAuthorisation",
    "CreationDateTime": "2017-06-05T15:15:13+00:00",
    "StatusUpdateDateTime": "2017-06-05T15:15:13+00:00",
    "Initiation": {
      "InstructionIdentification": "ANSM023",
      "EndToEndIdentification": "FRESCO.21302.GFX.37",
      "InstructedAmount": {
        "Amount": "20.00",
        "Currency": "GBP"
      },
      "DebtorAccount": {
        "SchemeName": "SortCodeAccountNumber",
        "Identification": "11280001234567",
        "Name": "Andrea Smith"
      },
      "CreditorAccount": {
        "SchemeName": "SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "Bob Clements"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-037",
        "Unstructured": "Internal ops code 5120103"
      }
    }
  },
  "Risk": {
    "PaymentContextCode": "PartyToParty"
  },
  "Links": {
    "Self": "https://api.alphabank.com/open-banking/v3.0/domestic-payment-consents/7290"
  },
  "Meta": {}
}


Create Domestic Payment Order

POST /domestic-payments request

Payment Order Request Payload
POST /domestic-payments HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-idempotency-key: FRESNO.1317.GFX.22
x-jws-signature: TGlmZSdzIGEgam91cm5leSBub3QgYSBkZXN0aW5hdGlvbiA=..T2ggZ29vZCBldmVuaW5nIG1yIHR5bGVyIGdvaW5nIGRvd24gPw==
x-fapi-financial-id: OB/2017/001
x-fapi-customer-last-logged-time:  Sun, 10 Sep 2017 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
Accept: application/json

{
  "Data": {
    "ConsentId": "7290",
    "Initiation": {
      "InstructionIdentification": "ANSM023",
      "EndToEndIdentification": "FRESCO.21302.GFX.37",
      "InstructedAmount": {
        "Amount": "20.00",
        "Currency": "GBP"
      },
      "DebtorAccount": {
        "SchemeName": "SortCodeAccountNumber",
        "Identification": "11280001234567",
        "Name": "Andrea Smith"
      },
      "CreditorAccount": {
        "SchemeName": "SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "Bob Clements"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-037",
        "Unstructured": "Internal ops code 5120103"
      }
    }
  },
  "Risk": {
    "PaymentContextCode": "PartyToParty"
  }
}


POST /domestic-payments response

Payment Order Response Payload
HTTP/1.1 201 Created
x-jws-signature: V2hhdCB3ZSBnb3QgaGVyZQ0K..aXMgZmFpbHVyZSB0byBjb21tdW5pY2F0ZQ0K
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json

{
  "Data": {
    "DomesticPaymentId": "7290-003",
    "ConsentId": "7290",
    "Status": "AcceptedSettlementInProcess",
    "CreationDateTime": "2017-06-05T15:15:22+00:00",
    "StatusUpdateDateTime": "2017-06-05T15:15:22+00:00",
    "Initiation": {
      "InstructionIdentification": "ANSM023",
      "EndToEndIdentification": "FRESCO.21302.GFX.37",
      "InstructedAmount": {
        "Amount": "20.00",
        "Currency": "GBP"
      },
      "DebtorAccount": {
        "SchemeName": "SortCodeAccountNumber",
        "Identification": "11280001234567",
        "Name": "Andrea Smith"
      },
      "CreditorAccount": {
        "SchemeName": "SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "Bob Clements"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-037",
        "Unstructured": "Internal ops code 5120103"
      }
    }
  },
  "Links": {
    "Self": "https://api.alphabank.com/open-banking/v3.0/domestic-payments/7290-003"
  },
  "Meta": {}
}


Get Domestic Payment Order Consent

GET /domestic-payment-consents/{ConsentId} request

Get Payment Order Consent Request
GET /domestic-payment-consents/7290 HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-fapi-financial-id: OB/2017/001
x-fapi-customer-last-logged-time:  Sun, 10 Sep 2017 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Accept: application/json

GET /domestic-payment-consents/{ConsentId} response

Get Payment Order Consent Response Payload
HTTP/1.1 200 OK
x-jws-signature: V2hhdCB3ZSBnb3QgaGVyZQ0K..aXMgZmFpbHVyZSB0byBjb21tdW5pY2F0ZQ0K
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json

{
  "Data": {
    "ConsentId": "7290",
    "Status": "Consumed",
    "CreationDateTime": "2017-06-05T15:15:13+00:00",
    "StatusUpdateDateTime": "2017-06-05T15:15:13+00:00",
    "Initiation": {
      "InstructionIdentification": "ANSM023",
      "EndToEndIdentification": "FRESCO.21302.GFX.37",
      "InstructedAmount": {
        "Amount": "20.00",
        "Currency": "GBP"
      },
      "DebtorAccount": {
        "SchemeName": "SortCodeAccountNumber",
        "Identification": "11280001234567",
        "Name": "Andrea Smith"
      },
      "CreditorAccount": {
        "SchemeName": "SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "Bob Clements"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-037",
        "Unstructured": "Internal ops code 5120103"
      }
    }
  },
  "Risk": {
    "PaymentContextCode": "PartyToParty"
  },
  "Links": {
    "Self": "https://api.alphabank.com/open-banking/v3.0/domestic-payment-consents/7290"
  },
  "Meta": {}
}


Get Domestic Payment Order

GET /domestic-payments/{DomesticPaymentId} request

Get Payment Order Request
GET /domestic-payments/7290-003 HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-fapi-financial-id: OB/2017/001
x-fapi-customer-last-logged-time:  Sun, 10 Sep 2017 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Accept: application/json

GET /domestic-payments/{DomesticPaymentId} response

Get Payment Order Response Payload
HTTP/1.1 200 OK
x-jws-signature: V2hhdCB3ZSBnb3QgaGVyZQ0K..aXMgZmFpbHVyZSB0byBjb21tdW5pY2F0ZQ0K
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json

{
  "Data": {
    "DomesticPaymentId": "7290-003",
    "ConsentId": "7290",
    "Status": "AcceptedSettlementInProcess",
    "CreationDateTime": "2017-06-05T15:15:22+00:00",
    "StatusUpdateDateTime": "2017-06-05T15:15:22+00:00",
    "Initiation": {
      "InstructionIdentification": "ANSM023",
      "EndToEndIdentification": "FRESCO.21302.GFX.37",
      "InstructedAmount": {
        "Amount": "20.00",
        "Currency": "GBP"
      },
      "DebtorAccount": {
        "SchemeName": "SortCodeAccountNumber",
        "Identification": "11280001234567",
        "Name": "Andrea Smith"
      },
      "CreditorAccount": {
        "SchemeName": "SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "Bob Clements"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-037",
        "Unstructured": "Internal ops code 5120103"
      }
    }
  },
  "Links": {
    "Self": "https://api.alphabank.com/open-banking/v3.0/domestic-payments/7290-003"
  },
  "Meta": {}
}


BACS Payment Order Consent

Use of LocalInstrument and CutOffDateTime.

POST /domestic-payment-consents request

Payment Order Consent Request Payload
POST /domestic-payment-consents HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-idempotency-key: FRESCO.21302.GFX.20
x-jws-signature: TGlmZSdzIGEgam91cm5leSBub3QgYSBkZXN0aW5hdGlvbiA=..T2ggZ29vZCBldmVuaW5nIG1yIHR5bGVyIGdvaW5nIGRvd24gPw==
x-fapi-financial-id: OB/2017/001
x-fapi-customer-last-logged-time:  Sun, 10 Sep 2017 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
Accept: application/json

{
  "Data": {
    "Initiation": {
      "InstructionIdentification": "ANSM023",
      "EndToEndIdentification": "FRESCO.21302.GFX.37",
	  "LocalInstrument": "UK.OBIE.BACS",
      "InstructedAmount": {
        "Amount": "20.00",
        "Currency": "GBP"
      },
      "DebtorAccount": {
        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        "Identification": "11280001234567",
        "Name": "Andrea Smith"
      },
      "CreditorAccount": {
        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "Bob Clements"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-037",
        "Unstructured": "Internal ops code 5120103"
      }
    }
  },
  "Risk": {
    "PaymentContextCode": "PartyToParty"
  }
}


POST /domestic-payment-consents response

Payment Order Consent Response Payload
HTTP/1.1 201 Created
x-jws-signature: V2hhdCB3ZSBnb3QgaGVyZQ0K..aXMgZmFpbHVyZSB0byBjb21tdW5pY2F0ZQ0K
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json

{
  "Data": {
    "ConsentId": "7290",
    "Status": "AwaitingAuthorisation",
    "CreationDateTime": "2017-06-05T15:15:13+00:00",
    "StatusUpdateDateTime": "2017-06-05T15:15:13+00:00",
    "CutOffDateTime":"2017-06-05T17:30:00+00:00",
    "Initiation": {
      "InstructionIdentification": "ANSM023",
      "EndToEndIdentification": "FRESCO.21302.GFX.37",
	  "LocalInstrument": "UK.OBIE.BACS",
      "InstructedAmount": {
        "Amount": "20.00",
        "Currency": "GBP"
      },
      "DebtorAccount": {
        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        "Identification": "11280001234567",
        "Name": "Andrea Smith"
      },
      "CreditorAccount": {
        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "Bob Clements"
      },
      "RemittanceInformation": {
        "Reference": "FRESCO-037",
        "Unstructured": "Internal ops code 5120103"
      }
    }
  },
  "Risk": {
    "PaymentContextCode": "PartyToParty"
  },
  "Links": {
    "Self": "https://api.alphabank.com/open-banking/v3.0/domestic-payment-consents/7290"
  },
  "Meta": {}
}


CHAPS Payment Order Consent

Use of LocalInstrument, CreditorPostalAddress, CutOffDateTime and Charges.

POST /domestic-payment-consents request

Payment Order Consent Request Payload
POST /domestic-payment-consents HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-idempotency-key: FRESCO.21302.GFX.20
x-jws-signature: TGlmZSdzIGEgam91cm5leSBub3QgYSBkZXN0aW5hdGlvbiA=..T2ggZ29vZCBldmVuaW5nIG1yIHR5bGVyIGdvaW5nIGRvd24gPw==
x-fapi-financial-id: OB/2017/001
x-fapi-customer-last-logged-time:  Sun, 10 Sep 2017 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
Accept: application/json

{
  "Data": {
    "Initiation": {
      "InstructionIdentification": "ANSM023",
      "EndToEndIdentification": "FRESCO.21302.GFX.37",
	  "LocalInstrument": "UK.OBIE.CHAPS",
      "InstructedAmount": {
        "Amount": "20.00",
        "Currency": "GBP"
      },
      "DebtorAccount": {
        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        "Identification": "11280001234567",
        "Name": "Andrea Smith"
      },
      "CreditorAccount": {
        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        "Identification": "08080021325698",
        "Name": "Bob Clements"
      },
      "CreditorPostalAddress": {
	 	"AddressType": "Correspondence",
		"StreetName": "Liberty",
		"BuildingNumber":"1",
		"PostCode":"AB1 2CD",
		"TownName":"London",
		"Country":"UK"
	  },
      "RemittanceInformation": {
        "Reference": "FRESCO-037",
        "Unstructured": "Internal ops code 5120103"
      }
    }
  },
  "Risk": {
    "PaymentContextCode": "PartyToParty"
  }
}


POST /domestic-payment-consents response

Payment Order Consent Response Payload
HTTP/1.1 201 Created
x-jws-signature: V2hhdCB3ZSBnb3QgaGVyZQ0K..aXMgZmFpbHVyZSB0byBjb21tdW5pY2F0ZQ0K
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json

{
   "Data":{
      "ConsentId":"7290",
      "Status":"AwaitingAuthorisation",
      "CreationDateTime":"2017-06-05T15:15:13+00:00",
      "StatusUpdateDateTime":"2017-06-05T15:15:13+00:00",
      "CutOffDateTime":"2017-06-05T17:30:00+00:00",
      "Initiation":{
         "InstructionIdentification":"ANSM023",
         "EndToEndIdentification":"FRESCO.21302.GFX.37",
         "LocalInstrument":"UK.OBIE.CHAPS",
         "InstructedAmount":{
            "Amount":"20.00",
            "Currency":"GBP"
         },
         "DebtorAccount":{
            "SchemeName":"UK.OBIE.SortCodeAccountNumber",
            "Identification":"11280001234567",
            "Name":"Andrea Smith"
         },
         "CreditorAccount":{
            "SchemeName":"UK.OBIE.SortCodeAccountNumber",
            "Identification":"08080021325698",
            "Name":"Bob Clements"
         },
		"CreditorPostalAddress": {
	 		"AddressType": "Correspondence",
			"StreetName": "Liberty",
			"BuildingNumber":"1",
			"PostCode":"AB1 2CD",
			"TownName":"London",
			"Country":"UK"
	     },
         "RemittanceInformation":{
            "Reference":"FRESCO-037",
            "Unstructured":"Internal ops code 5120103"
         }
      },
      "Charges":[
         {
            "ChargeBearer":"BorneByDebtor",
            "Type":"UK.OBIE.ChapsOut",
            "Amount":{
               "Amount":"30.00",
               "Currency":"GBP"
            }
         }
      ]
   },
   "Risk":{
      "PaymentContextCode":"PartyToParty"
   },
   "Links":{
      "Self":"https://api.alphabank.com/open-banking/v3.0/domestic-payment-consents/7290"
   },
   "Meta":{}
}

Balance Transfer

An example illustrating a balance transfer offer available on a Card A.

To facilitate a Balance Transfer, a PISP can initiate a Payment from Card B to Card A with LocalInstrument as UK.OBIE.BalanceTransfer, Account SchemeName as UK.OBIE.PAN and if there is an Offer Code/Id provided by Issuer of the Card A, then it can be supplied in the field: RemittanceInformation.Reference. Example below:

POST /domestic-payment-consents request

Payment Order Consent Request Payload
POST /domestic-payment-consents HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-idempotency-key: FRESCO.21302.GFX.20
x-jws-signature: TGlmZSdzIGEgam91cm5leSBub3QgYSBkZXN0aW5hdGlvbiA=..T2ggZ29vZCBldmVuaW5nIG1yIHR5bGVyIGdvaW5nIGRvd24gPw==
x-fapi-financial-id: OB/2017/001
x-fapi-customer-last-logged-time:  Sun, 10 Sep 2017 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
Accept: application/json

{
	"Data": {
		"Initiation": {
			"InstructionIdentification": "ANSM023",
			"EndToEndIdentification": "FRESCO.21302.GFX.37",
			"LocalInstrument": "UK.OBIE.BalanceTransfer",
			"InstructedAmount": {
				"Amount": "3000.00",
				"Currency": "GBP"
			},
			"DebtorAccount": {
				"SchemeName": "UK.OBIE.PAN",
				"Identification": "5555555555554444",
				"Name": "Andrea Smith"
			},
			"CreditorAccount": {
				"SchemeName": "UK.OBIE.PAN",
				"Identification": "4444333322221111",
				"Name": "Andrea Smith"
			},
			"RemittanceInformation": {
				"Reference": "BT-OfferCode-12",
				"Unstructured": "Internal ops code 5120103"
			}
		}
	},
	"Risk": {
		"PaymentContextCode": "PartyToParty"
	}
}


POST /domestic-payment-consents response

Payment Order Consent Response Payload
HTTP/1.1 201 Created
x-jws-signature: V2hhdCB3ZSBnb3QgaGVyZQ0K..aXMgZmFpbHVyZSB0byBjb21tdW5pY2F0ZQ0K
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json

{
	"Data": {
		"ConsentId": "7290",
		"Status": "AwaitingAuthorisation",
		"CreationDateTime": "2017-06-05T15:15:13+00:00",
		"StatusUpdateDateTime": "2017-06-05T15:15:13+00:00",
		"CutOffDateTime": "2017-06-05T17:30:00+00:00",
		"Initiation": {
			"InstructionIdentification": "ANSM023",
			"EndToEndIdentification": "FRESCO.21302.GFX.37",
			"LocalInstrument": "UK.OBIE.BalanceTransfer",
			"InstructedAmount": {
				"Amount": "3000.00",
				"Currency": "GBP"
			},
			"DebtorAccount": {
				"SchemeName": "UK.OBIE.PAN",
				"Identification": "5555555555554444",
				"Name": "Andrea Smith"
			},
			"CreditorAccount": {
				"SchemeName": "UK.OBIE.PAN",
				"Identification": "4444333322221111",
				"Name": "Andrea Smith"
			},
			"RemittanceInformation": {
				"Reference": "BT-OfferCode-12",
				"Unstructured": "Internal ops code 5120103"
			}
		}
	},
	"Risk": {
		"PaymentContextCode": "PartyToParty"
	},
	"Links": {
		"Self": "https://api.alphabank.com/open-banking/v3.0/domestic-payment-consents/7290"
	},
	"Meta": {}
}

Money Transfer

An example illustrating Money transfer from a card account to a bank account. 

POST /domestic-payment-consents request

Payment Order Consent Request Payload
POST /domestic-payment-consents HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-idempotency-key: FRESCO.21302.GFX.20
x-jws-signature: TGlmZSdzIGEgam91cm5leSBub3QgYSBkZXN0aW5hdGlvbiA=..T2ggZ29vZCBldmVuaW5nIG1yIHR5bGVyIGdvaW5nIGRvd24gPw==
x-fapi-financial-id: OB/2017/001
x-fapi-customer-last-logged-time:  Sun, 10 Sep 2017 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
Accept: application/json

{
	"Data": {
		"Initiation": {
			"InstructionIdentification": "ANSM023",
			"EndToEndIdentification": "FRESCO.21302.GFX.37",
			"LocalInstrument": "UK.OBIE.MoneyTransfer",
			"InstructedAmount": {
				"Amount": "3000.00",
				"Currency": "GBP"
			},
			"DebtorAccount": {
				"SchemeName": "UK.OBIE.PAN",
				"Identification": "5555555555554444",
				"Name": "Andrea Smith"
			},
			"CreditorAccount": {
		        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        		"Identification": "11280001234567",
		        "Name": "Andrea Smith"
			},
			"RemittanceInformation": {
				"Reference": "MT-OfferCode-24",
				"Unstructured": "Internal ops code 5120103"
			}
		}
	},
	"Risk": {
		"PaymentContextCode": "PartyToParty"
	}
}


POST /domestic-payment-consents response

Payment Order Consent Response Payload
HTTP/1.1 201 Created
x-jws-signature: V2hhdCB3ZSBnb3QgaGVyZQ0K..aXMgZmFpbHVyZSB0byBjb21tdW5pY2F0ZQ0K
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json

{
	"Data": {
		"ConsentId": "7290",
		"Status": "AwaitingAuthorisation",
		"CreationDateTime": "2017-06-05T15:15:13+00:00",
		"StatusUpdateDateTime": "2017-06-05T15:15:13+00:00",
		"CutOffDateTime": "2017-06-05T17:30:00+00:00",
		"Initiation": {
			"InstructionIdentification": "ANSM023",
			"EndToEndIdentification": "FRESCO.21302.GFX.37",
			"LocalInstrument": "UK.OBIE.MoneyTransfer",
			"InstructedAmount": {
				"Amount": "3000.00",
				"Currency": "GBP"
			},
			"DebtorAccount": {
				"SchemeName": "UK.OBIE.PAN",
				"Identification": "5555555555554444",
				"Name": "Andrea Smith"
			},
			"CreditorAccount": {
		        "SchemeName": "UK.OBIE.SortCodeAccountNumber",
        		"Identification": "11280001234567",
		        "Name": "Andrea Smith"
			},
			"RemittanceInformation": {
				"Reference": "MT-OfferCode-24",
				"Unstructured": "Internal ops code 5120103"
			}
		}
	},
	"Risk": {
		"PaymentContextCode": "PartyToParty"
	},
	"Links": {
		"Self": "https://api.alphabank.com/open-banking/v3.0/domestic-payment-consents/7290"
	},
	"Meta": {}
}