The PIS API implements the Payment Initiation Service parts of the PSD2 specification, and provides the following services to authorized TPPs:
- Initiation and update of a payment request
- Status information of a payment
- Singing baskets - authorising several transactions with one SCA operation
Access to the Payment Initiation Service API is controlled through the general onboarding/enrollment flow. I.e. the API is only accessible to valid TPPs, who have completed the enrollment in order to upload and verify their qualified certificates. By accessing the API, you confirm that you already have status as an authorized TPP - or (for sandbox access only) that your application has been submitted to a local NCA and is pending approval. Only TPPs who can document their authorization status are elegible for support.
The PIS API is part of the general PSD2 XS2A implementation and works in the same security context. In addition to the information contained below, all communication, headers and additional steps adhere to the general security model and flows. Refer to this link for up to date information on required security headers.
The API is implemented against Berlin Group XS2A version 1.3. Note about this version This version of the PIS API now also supports testing of security and SCA flows in sandbox with full security context.
- The sandbox API works on (stateless) mocked data. The mock API simulates creation of a payment request, but no simulation of actual payment is done. And nor will creation of a payment request cause any mutation of state with respect to subsequent calls to inquery the payment request details or status.
- The security model for TPP enrollment and PSU authentication/authorization is implemented and enforced for both production and sandbox API
Access to API Endpoints
Production and sandbox access: Prior to calling the API the TPP must complete the (one-time) process for Onboarding on a per-bank basis. Separate API URL/host endpoints are required for each bank under the BEC Umbrella. Consult the Environments section for information on URL schemas in production and sandbox environments. See list of included ASPSPs and their corresponding urls by following this link. The X-IBM-Client-Id attribute is not required in this version.
Paths
/payments/{paymentProduct}
This endpoint initializes payment for specific payment product
paymentProduct
{
"enum": [
"domestic-credit-transfers",
"instant-domestic-credit-transfers",
"intraday-domestic-credit-transfers",
"sepa-credit-transfers",
"cross-border-credit-transfers",
"internal-currency-transfers"
]
}
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
URI to which the PSU is redirected after SCA.
URI to which the PSU is redirected in case of a negative result of the SCA.
Payment initiation payload. See the Payment Initiation model for Details
Created
Incorrect request input
Unauthorized
Forbidden
Not Found
/payments/payment-slips/{slipType}
This endpoint initializes payment slip for specific FI or Giro card.
GIRO or FI card type
{
"enum": [
"slip-01",
"slip-04",
"slip-15",
"slip-71",
"slip-73",
"slip-75"
]
}
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
URI to which the PSU is redirected after SCA.
URI to which the PSU is redirected in case of a negative result of the SCA.
Payment Slip initiation payload. See the Payment Slip Initiation model for Details
Created
Incorrect request input
Unauthorized
Forbidden
Not Found
/periodic-payments/{paymentProduct}
This endpoint initializes periodic payment for specific payment product
Only domestic transfers are currently supported
{
"enum": [
"domestic-credit-transfers"
]
}
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
URI to which the PSU is redirected after SCA.
URI to which the PSU is redirected in case of a negative result of the SCA.
Payment initiation payload. See the Payment Initiation model for Details
Created
Incorrect request input
Unauthorized
Forbidden
Not Found
/{paymentService}/{paymentProduct}/{paymentId}/authorisations
This endpoint creates an authorisation sub-resource and start the authorisation process.
Type of a payment service used
{
"enum": [
"payments",
"periodic-payments"
]
}
paymentProduct Note: for periodic-payments service currently on domestic-credit-transfers are supported
{
"enum": [
"domestic-credit-transfers",
"instant-domestic-credit-transfers",
"intraday-domestic-credit-transfers",
"sepa-credit-transfers",
"cross-border-credit-transfers",
"internal-currency-transfers"
]
}
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
paymentId received from payment creation endpoint
Created
Incorrect request input
Unauthorized
Forbidden
Not Found
This endpoint extracts authorisation sub-resource(s)
Type of a payment service used
{
"enum": [
"payments",
"periodic-payments"
]
}
paymentProduct Note: for periodic-payments service currently on domestic-credit-transfers are supported
{
"enum": [
"domestic-credit-transfers",
"instant-domestic-credit-transfers",
"intraday-domestic-credit-transfers",
"sepa-credit-transfers",
"cross-border-credit-transfers",
"internal-currency-transfers"
]
}
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
paymentId received from payment creation endpoint
Incorrect request input
Unauthorized
Forbidden
Not Found
/{paymentService}/{paymentProduct}/{paymentId}
This endpoint gets detailed information of specific payment
Type of a payment service used
{
"enum": [
"payments",
"periodic-payments"
]
}
paymentProduct Note: for periodic-payments service currently on domestic-credit-transfers are supported
{
"enum": [
"domestic-credit-transfers",
"instant-domestic-credit-transfers",
"intraday-domestic-credit-transfers",
"sepa-credit-transfers",
"cross-border-credit-transfers",
"internal-currency-transfers"
]
}
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
paymentId received from payment creation endpoint
Bad request. In cases like like for example the incorrect product, is used for a given id.
Unauthorized
Forbidden
Not Found
This endpoint cancels payment initiation previously created
Type of a payment service used
{
"enum": [
"payments",
"periodic-payments"
]
}
paymentProduct
{
"enum": [
"domestic-credit-transfers",
"instant-domestic-credit-transfers (only for payments service)",
"intraday-domestic-credit-transfers (only for payments service)",
"sepa-credit-transfers (only for payments service)",
"cross-border-credit-transfers (only for payments service)",
"internal-currency-transfers (only for payments service)"
]
}
paymentId received from payment creation endpoint
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
URI to which the PSU is redirected after SCA.
URI to which the PSU is redirected in case of a negative result of the SCA.
Authorization needed.
No content. Inititation deleted, no further actions needed.
Bad request. In cases like like for example the incorrect product, is used for a given id.
Forbidden
Not Found
/{paymentService}/{paymentProduct}/{paymentId}/status
This endpoint gets status for specific payment
Type of a payment service used
{
"enum": [
"payments",
"periodic-payments"
]
}
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
paymentProduct Note: for periodic-payments service currently on domestic-credit-transfers are supported
{
"enum": [
"domestic-credit-transfers",
"instant-domestic-credit-transfers",
"intraday-domestic-credit-transfers",
"sepa-credit-transfers",
"cross-border-credit-transfers",
"internal-currency-transfers"
]
}
paymentId received from payment creation endpoint
Bad request. In cases like like for example the incorrect product, is used for a given id.
Unauthorized
Forbidden
Not Found
/{paymentService}/{paymentProduct}/{paymentId}/authorisations/{authorisationId}
This endpoint retrieves detailed information for a specific payment
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
paymentProduct Note: for periodic-payments service currently on domestic-credit-transfers are supported
{
"enum": [
"domestic-credit-transfers",
"instant-domestic-credit-transfers",
"intraday-domestic-credit-transfers",
"sepa-credit-transfers",
"cross-border-credit-transfers",
"internal-currency-transfers"
]
}
paymentId received from payment creation endpoint
Type of a payment service used
{
"enum": [
"payments",
"periodic-payments"
]
}
authorisationId received from payment creation endpoint
Bad request. In cases like like for example the incorrect product, is used for a given id.
Unauthorized
Forbidden
Not Found
/signing-baskets
Create a signing basket resource
Create a signing basket resource for authorising several transactions with one SCA method. The resource identifications of these transactions are contained in the payload of this access method. Please not that:
- paymentIds and consentIds parameteres ARE mutually exclusive
- consentIds parameter IS NOT SUPPORTED
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
Payload for establishing signing basket.
Incorrect request input
Unauthorized
Forbidden
Not Found
/signing-baskets/{basketId}
Returns the content of an signing basket object
Returns the content of a signing basket object.
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
Signing basket identifier as received from create signing basket resource.
Incorrect request input
Unauthorized
Forbidden
Not Found
Delete the signing basket
Delete the signing basket structure as long as no (partial) authorisation has yet been applied. The undlerying transactions are not affected by this deletion.
Remark: The signing basket as such is not deletable after a first (partial) authorisation has been applied. Nevertheless, single transactions might be cancelled on an individual basis on the XS2A interface.
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
Signing basket identifier as received from create signing basket resource.
No content. Inititation deleted, no further actions needed.
Incorrect request input
Forbidden
Not Found
/signing-baskets/{basketId}/status
Read the status of the signing basket
Returns the status of a signing basket object.
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
Signing basket identifier as received from create signing basket resource.
/signing-baskets/{basketId}/authorisations
Start the authorisation process for a signing basket
Create an authorisation sub-resource and start the authorisation process of a signing basket. The message might in addition transmit authentication and authorisation related data.
This method is iterated n times for a n times SCA authorisation in a corporate context, each creating an own authorisation sub-endpoint for the corresponding PSU authorising the signing-baskets.
The ASPSP might make the usage of this access method unnecessary in case of only one SCA process needed, since the related authorisation resource might be automatically created by the ASPSP after the submission of the payment data with the first POST signing basket call.
The start authorisation process is a process which is needed for creating a new authorisation or cancellation sub-resource.
This applies in the following scenarios:
- The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding payment
initiation response that an explicit start of the authorisation process is needed by the TPP.
The 'startAuthorisation' hyperlink can transport more information about data which needs to be
uploaded by using the extended forms:
- 'startAuthorisationWithPsuIdentfication',
- 'startAuthorisationWithPsuAuthentication'
- 'startAuthorisationWithEncryptedPsuAuthentication'
- 'startAuthorisationWithAuthentciationMethodSelection'
- The related payment initiation cannot yet be executed since a multilevel SCA is mandated.
- The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding payment cancellation response that an explicit start of the authorisation process is needed by the TPP. The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded by using the extended forms as indicated above.
- The related payment cancellation request cannot be applied yet since a multilevel SCA is mandate for executing the cancellation.
- The signing basket needs to be authorised yet.
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
URI to which the PSU is redirected after SCA.
URI to which the PSU is redirected in case of a negative result of the SCA.
Signing basket identifier as received from create signing basket resource.
Created
Incorrect request input
Unauthorized
Forbidden
Not Found
/signing-baskets/{basketId}/authorisations/{authorisationId}
Read the SCA status of the signing basket authorisation
This method returns the SCA status of a signing basket's authorisation sub-resource.
ID of the request (in UUID format), unique to the call (generated by the initiating party, who must ensure uniqueness).
Signing basket identifier as received from create signing basket resource.
Authorisation identifier as received from creating a new authorisation
Definitions
Account representation. Either iban or bban MUST be filled out
{
"type": "object",
"properties": {
"bban": {
"type": "string",
"example": 1234567890123,
"description": "BBAN (Basic Bank Account Number) up to 14 digits forming the account number used to identify an account intranationally \n Pattern: [0-9]{1,14}",
"maxLength": 14
},
"iban": {
"type": "string",
"example": "DK9520000123456789",
"description": "IBAN (International Bank Account Number) up to 34 alphanumeric characters consisting of a two letter country code, a two digit checksum, and a BBAN \n Pattern: [A-Z]{2}[0-9]{2}[A-Z0-9]{1-30}",
"maxLength": 34
}
},
"title": "Account"
}
Monetary Amount, including currency code and value
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number",
"example": 5864.85,
"description": "The amount given with fractional digits, where fractions must be compliant to the currency definition.\nUp to 14 significant figures. Negative amounts are signed by minus.\nThe decimal separator is a dot.: -?[0-9]{1,14}(\\.[0-9]{1,3})?"
},
"currency": {
"type": "string",
"example": "DKK",
"description": "The Currency code. This MUST be a valid ISO 4217 currency code. See the ASPSPs' documentation for details of supported currencies.",
"minLength": 3,
"maxLength": 3
}
},
"title": "Amount"
}
{
"type": "object",
"properties": {
"scaStatus": {
"type": "string",
"enum": [
"CREATED",
"PENDING",
"APPROVED"
]
}
},
"title": "Authorisation"
}
Link to a resource
{
"type": "object",
"properties": {
"href": {
"type": "string",
"example": "\/v1\/link\/to\/some\/resource",
"description": "URL pointing to a resource"
}
},
"title": "Link"
}
Collection of links
{
"type": "object",
"properties": {
"scaStatus": {
"$ref": "#\/definitions\/Link"
},
"self": {
"$ref": "#\/definitions\/Link"
},
"status": {
"$ref": "#\/definitions\/Link"
}
},
"title": "Links"
}
SCA redirect link provided with authorisation object
{
"type": "object",
"properties": {
"scaRedirect": {
"$ref": "#\/definitions\/Link"
}
},
"title": "SCA redirect authorisation link"
}
Authorisation object (with id and SCA redirect link provided) created response
{
"allOf": [
{
"$ref": "#\/definitions\/Authorisation"
},
{
"properties": {
"authorisationId": {
"type": "string",
"example": "e73c4feb-801a-4e6d-a836-ec7bfe78aa18"
},
"_links": {
"$ref": "#\/definitions\/AuthorisationResponseLinks"
}
}
}
],
"title": "Authorisation response"
}
Authorisation object(s) (list of ids provided) response
{
"type": "object",
"properties": {
"authorisationIds": {
"type": "array",
"items": {
"type": "string",
"example": "e73c4feb-801a-4e6d-a836-ec7bfe78aa18"
}
}
},
"title": "Authorisations sub-resource response"
}
Payment Initiation model is shared by all the types of payments supported. However, please note that not every field is in every context. Moreover the validations does differ from product to product.
- For
sepa-credit-transfers
bothdebtorAccount
, andcreditorAccount
numbers must be provided in IBAN format. - For
cross-border-credit-transfers
paymentscreditorAccount
must be given as a valid BICFI value, anddebtorAccount
number needs to be IBAN. - In
instant-domestic-credit-transfers
therequestedExecutionDate
must not be used. chargeBearer
field is valid only forcross-border-credit-transfers
.- Please NOTE! that
requestedExecutionDate
field is mandatory fordomestic-credit-transfers
, and NOT SUPPORTED forinstant-domestic-credit-transfers
.
{
"type": "object",
"properties": {
"chargeBearer": {
"type": "string",
"example": "DEBT",
"description": "Supported only by cross-border-credit-transfers<\/code> and internal-currency-transfers<\/code>. ChargeBearerType1Code from ISO20022 defines who should be charged for the transaction.\nNOTE! that for internal-currency-transfers<\/code> ONLY DEBT or CRED is SUPPORTED. \n* DEBT: All transaction charges are to be borne by the debtor.\n* CRED: All transaction charges are to be borne by the creditor.\n* SHAR: In a credit transfer context, means that transaction charges on the sender side are to be borne by the debtor, transaction charges on the\nreceiver side are to be borne by the creditor. In a direct debit context,means that transaction charges on the sender side are to be borne by the creditor, transaction charges on the receiver side are to be borne by the debtor. \n* SLEV: Charges are to be applied following the rules agreed in the service level and\/or scheme.",
"enum": [
"DEBT",
"CRED",
"SHAR",
"SLEV"
]
},
"creditorAccount": {
"$ref": "#\/definitions\/Account"
},
"creditorAgent": {
"type": "string",
"example": "DSLRLQEAFB8",
"description": "BICFI Identifier \nPattern: [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"
},
"creditorName": {
"type": "string",
"example": "Scrooge McDuck",
"description": "Name of the payment recipient",
"maxLength": 70
},
"debtorAccount": {
"$ref": "#\/definitions\/Account"
},
"endToEndIdentification": {
"type": "string",
"description": "Unique end to end identity",
"maxLength": 35
},
"instructedAmount": {
"$ref": "#\/definitions\/Amount"
},
"purposeCode": {
"type": "string",
"example": "SALA",
"description": "ISO 20022 ExternalPurpose1Code explaining the purpose of the transaction",
"minLength": 4,
"maxLength": 4
},
"remittanceInformationStructured": {
"type": "string",
"example": "AH-64E",
"description": "Reference as contained in the structured remittance reference structure (without the surrounding XML structure).",
"maxLength": 140
},
"remittanceInformationUnstructured": {
"type": "string",
"example": "Very important payment for services rendered",
"description": "Remittance information used to identify the payment",
"maxLength": 140
},
"remittanceInformationUnstructuredArray": {
"type": "array",
"example": [
"Very important payment for services rendered"
],
"description": "Remittance information used to identify the payment in form of lines array",
"items": {
"type": "string"
}
},
"requestedExecutionDate": {
"type": "string",
"example": "2019-10-01",
"description": "Date the payment is requested to be executed on. \n* Please NOTE! that requestedExecutionDate<\/code> field is mandatory for domestic-credit-transfers<\/code>, and NOT SUPPORTED for instant-domestic-credit-transfers<\/code>."
},
"ultimateCreditor": {
"type": "string",
"example": "Scrooge McDuck",
"description": "Name of the ultimate recipient"
},
"currencyAccount": {
"type": "string",
"example": "DEBT",
"description": "Supported only by internal-currency-transfers<\/code>. Transaction currency has to be currency of one of used accounts. ChargeBearerType1Code from ISO20022 defines currency of which of accounts should be used.\n NOTE! that chargeBearer<\/code> field is mandatory for internal-currency-transfers<\/code> and ONLY SUPPORTS DEBT or CRED in this scenario.",
"enum": [
"DEBT",
"CRED"
]
},
"additionalDetails": {
"type": "string",
"example": "Optional additional details",
"description": "Supported only by internal-currency-transfers<\/code>. Additional details line.",
"maxLength": 70
},
"messageToBank": {
"type": "string",
"example": "Optional message to bank",
"description": "Supported only by internal-currency-transfers<\/code>. Message to bank.",
"maxLength": 70
}
},
"title": "PaymentInitiation"
}
Payment Initiation model is shared by all the types of payments supported. However, please note that not every field is in every context. Moreover the validations does differ from product to product.
- For
sepa-credit-transfers
bothdebtorAccount
, andcreditorAccount
numbers must be provided in IBAN format. - For
cross-border-credit-transfers
paymentscreditorAccount
must be given as a valid BICFI value, anddebtorAccount
number needs to be IBAN. - In
instant-domestic-credit-transfers
therequestedExecutionDate
must not be used. chargeBearer
field is valid only forcross-border-credit-transfers
.- Please NOTE! that
requestedExecutionDate
field is mandatory fordomestic-credit-transfers
, and NOT SUPPORTED forinstant-domestic-credit-transfers
.
{
"type": "object",
"properties": {
"creditorAccount": {
"$ref": "#\/definitions\/Account"
},
"creditorAgent": {
"type": "string",
"example": "DSLRLQEAFB8",
"description": "BICFI Identifier \nPattern: [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"
},
"creditorName": {
"type": "string",
"example": "Scrooge McDuck",
"description": "Name of the payment recipient",
"maxLength": 70
},
"debtorAccount": {
"$ref": "#\/definitions\/Account"
},
"endToEndIdentification": {
"type": "string",
"description": "Unique end to end identity",
"maxLength": 35
},
"instructedAmount": {
"$ref": "#\/definitions\/Amount"
},
"purposeCode": {
"type": "string",
"example": "SALA",
"description": "ISO 20022 ExternalPurpose1Code explaining the purpose of the transaction",
"minLength": 4,
"maxLength": 4
},
"remittanceInformationStructured": {
"type": "string",
"example": "AH-64E",
"description": "Reference as contained in the structured remittance reference structure (without the surrounding XML structure).",
"maxLength": 140
},
"remittanceInformationUnstructured": {
"type": "string",
"example": "Very important payment for services rendered",
"description": "Remittance information used to identify the payment",
"maxLength": 140
},
"remittanceInformationUnstructuredArray": {
"type": "array",
"example": [
"Very important payment for services rendered"
],
"description": "Remittance information used to identify the payment in form of lines array",
"items": {
"type": "string"
}
},
"requestedExecutionDate": {
"type": "string",
"example": "2019-10-01",
"description": "NOT SUPPORTED! use startDate with dayOfExecution for periodics"
},
"ultimateCreditor": {
"type": "string",
"example": "Scrooge McDuck",
"description": "Name of the ultimate recipient",
"maxLength": 70
},
"startDate": {
"type": "string",
"example": "2021-10-01",
"description": "Date the payment period starts"
},
"endDate": {
"type": "string",
"example": "2021-10-01",
"description": "Date the payment period ends"
},
"dayOfExecution": {
"type": "string",
"example": 14,
"description": "Day of a month the transfer should be normally executed. Value from range [0,31]",
"maxLength": 2
},
"frequency": {
"type": "string",
"example": "Monthly",
"description": "Execution period, values Daily and EveryTwoMonths are currently not supported.",
"enum": [
"Daily",
"Weekly",
"EveryTwoWeeks",
"Monthly",
"EveryTwoMonths",
"Quarterly",
"SemiAnnual",
"Annual"
]
},
"executionRule": {
"type": "string",
"example": "following",
"description": "Rule for execution when payment date falls on a weekend, or bank holiday. Currently not supported, as BEC comes with a custom way of handling that date.",
"enum": [
"following",
"preceding"
]
}
},
"title": "PeriodicPaymentInitiation"
}
Payment Initiation Information Response
{
"type": "object",
"properties": {
"chargeBearer": {
"type": "string",
"example": "DEBT",
"description": "Supported only by cross-border-credit-transfers<\/code>. ChargeBearerType1Code from ISO20022 defines who should be charged for the transaction\n* DEBT: All transaction charges are to be borne by the debtor.\n* CRED: All transaction charges are to be borne by the creditor.\n* SHAR: In a credit transfer context, means that transaction charges on the sender side are to be borne by the debtor, transaction charges on the\nreceiver side are to be borne by the creditor. In a direct debit context,means that transaction charges on the sender side are to be borne by the creditor, transaction charges on the receiver side are to be borne by the debtor. \n* SLEV: Charges are to be applied following the rules agreed in the service level and\/or scheme.",
"enum": [
"DEBT",
"CRED",
"SHAR",
"SLEV"
]
},
"creditorAccount": {
"$ref": "#\/definitions\/Account"
},
"creditorAgent": {
"type": "string",
"example": "DSLRLQEAFB8",
"description": "BICFI Identifier \nPattern: [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"
},
"creditorName": {
"type": "string",
"example": "Scrooge McDuck",
"description": "Name of the payment recipient",
"maxLength": 70
},
"debtorAccount": {
"$ref": "#\/definitions\/Account"
},
"endToEndIdentification": {
"type": "string",
"description": "Unique end to end identity",
"maxLength": 35
},
"instructedAmount": {
"$ref": "#\/definitions\/Amount"
},
"purposeCode": {
"type": "string",
"example": "SALA",
"description": "ISO 20022 ExternalPurpose1Code explaining the purpose of the transaction",
"minLength": 4,
"maxLength": 4
},
"remittanceInformationStructured": {
"type": "string",
"example": "MH-370",
"description": "Reference as contained in the structured remittance reference structure (without the surrounding XML structure).",
"maxLength": 140
},
"remittanceInformationUnstructured": {
"type": "string",
"example": "Very important payment for services rendered",
"description": "Remittance information used to identify the payment",
"maxLength": 140
},
"remittanceInformationUnstructuredArray": {
"type": "array",
"example": "Very important payment for services rendered",
"description": "Remittance information used to identify the payment in form of lines array.",
"items": {
"type": "string"
}
},
"requestedExecutionDate": {
"type": "string",
"example": "2019-10-01",
"description": "Date the payment is to be executed on"
},
"transactionStatus": {
"type": "string",
"example": "ACSC",
"description": "Status of the transaction\n* ACCP: AcceptedCustomerProfile\n* ACSC: AcceptedSettlementCompleted\n* ACSP: AcceptedSettlementInProcess\n* ACTC: AcceptedTechnicalValidation\n* ACWC: AcceptedWithChange\n* ACWP: AcceptedWithoutPosting\n* RCVD: Received\n* PDNG: Pending\n* RJCT: Rejected\n* CANC: Cancelled",
"enum": [
"ACCP",
"ACSC",
"ACSP",
"ACTC",
"ACWC",
"ACWP",
"RCVD",
"PDNG",
"RJCT",
"CANC"
]
},
"ultimateCreditor": {
"type": "string",
"example": "Scrooge McDuck",
"description": "Name of the ultimate recipient",
"maxLength": 70
},
"startDate": {
"type": "string",
"example": "2021-10-01",
"description": "Available for periodic payments only! Date the payment period starts"
},
"endDate": {
"type": "string",
"example": "2021-10-01",
"description": "Available for periodic payments only! Date the payment period ends"
},
"dayOfExecution": {
"type": "string",
"example": 14,
"description": "Available for periodic payments only! Day of a month the transfer should be normally executed. Value from range [0,31]",
"maxLength": 2
},
"frequency": {
"type": "string",
"example": "Monthly",
"description": "Available for periodic payments only! Execution period, values Daily and EveryTwoMonths are currently not supported.",
"enum": [
"Daily",
"Weekly",
"EveryTwoWeeks",
"Monthly",
"EveryTwoMonths",
"Quarterly",
"SemiAnnual",
"Annual"
]
},
"executionRule": {
"type": "string",
"example": "following",
"description": "Available for periodic payments only! Rule for execution when payment date falls on a weekend, or bank holiday. Currently not supported, as BEC comes with a custom way of handling that date.",
"enum": [
"following",
"preceding"
]
},
"additionalDetails": {
"type": "string",
"example": "Optional additional details",
"description": "Supported only by internal-currency-transfers<\/code>. Additional details line.",
"maxLength": 70
},
"messageToBank": {
"type": "string",
"example": "Optional message to bank",
"description": "Supported only by internal-currency-transfers<\/code>. Message to bank.",
"maxLength": 70
}
},
"title": "PaymentInitiationInfoResponse"
}
Response to a payment initiation request
{
"type": "object",
"properties": {
"_links": {
"$ref": "#\/definitions\/Links"
},
"paymentId": {
"type": "string",
"example": "48659f7a-2ded-11e9-b210-d663bd873d93",
"description": "paymentId from a call to payment initiation request"
},
"transactionStatus": {
"type": "string",
"example": "RCVD",
"description": "Status of the transaction\n* ACCP: AcceptedCustomerProfile\n* ACSC: AcceptedSettlementCompleted\n* ACSP: AcceptedSettlementInProcess\n* ACTC: AcceptedTechnicalValidation\n* ACWC: AcceptedWithChange\n* ACWP: AcceptedWithoutPosting\n* RCVD: Received\n* PDNG: Pending\n* RJCT: Rejected\n* CANC: Cancelled",
"enum": [
"ACCP",
"ACSC",
"ACSP",
"ACTC",
"ACWC",
"ACWP",
"RCVD",
"PDNG",
"RJCT",
"CANC"
]
}
},
"title": "PaymentInitiationResponse"
}
Response to a payment cancelation request
{
"type": "object",
"properties": {
"_links": {
"$ref": "#\/definitions\/Links"
},
"transactionStatus": {
"type": "string",
"example": "RCVD",
"description": "Status of the transaction\n* ACCP: AcceptedCustomerProfile\n* ACSC: AcceptedSettlementCompleted\n* ACSP: AcceptedSettlementInProcess\n* ACTC: AcceptedTechnicalValidation\n* ACWC: AcceptedWithChange\n* ACWP: AcceptedWithoutPosting\n* RCVD: Received\n* PDNG: Pending\n* RJCT: Rejected\n* CANC: Cancelled",
"enum": [
"ACCP",
"ACSC",
"ACSP",
"ACTC",
"ACWC",
"ACWP",
"RCVD",
"PDNG",
"RJCT",
"CANC"
]
}
},
"title": "PaymentInitiationCancelResponse"
}
Response to a payment initiation status request
{
"type": "object",
"properties": {
"transactionStatus": {
"type": "string",
"example": "RJCT",
"description": "Status of the transaction\n* ACCP: AcceptedCustomerProfile\n* ACSC: AcceptedSettlementCompleted\n* ACSP: AcceptedSettlementInProcess\n* ACTC: AcceptedTechnicalValidation\n* ACWC: AcceptedWithChange\n* ACWP: AcceptedWithoutPosting\n* RCVD: Received\n* PDNG: Pending\n* RJCT: Rejected\n* CANC: Cancelled",
"enum": [
"ACCP",
"ACSC",
"ACSP",
"ACTC",
"ACWC",
"ACWP",
"RCVD",
"PDNG",
"RJCT",
"CANC"
]
}
},
"title": "PaymentInitiationStatusResponse"
}
Payment Slip Initiation model is shared by both GIRO and FIK payments. However, please note that not every field is valid in every context. Moreover the validations does differ from product to product.
{
"type": "object",
"properties": {
"instructedAmount": {
"$ref": "#\/definitions\/Amount"
},
"debtorAccount": {
"$ref": "#\/definitions\/Account"
},
"requestedExecutionDate": {
"type": "string",
"example": "2019-10-01",
"description": "Date the payment is requested to be executed on. \n* If none - as soon as possible."
},
"endToEndIdentification": {
"type": "string",
"description": "Unique end to end identity",
"maxLength": 20
},
"debtorId": {
"type": "string",
"example": 123456789123456780,
"description": "Debtor identifier",
"maxLength": 19,
"minLength": 9
},
"creditorId": {
"type": "string",
"example": 12345678,
"description": "GIRO or FI-creditor number",
"maxLength": 8
},
"paymentInformation": {
"type": "string",
"example": "You got your money!",
"description": "Announcement regarding payment. Mandatory for slips 01, 73. Supported for 75. Not supported for 04, 15, 71.",
"maxLength": 140
},
"remittanceInformationUnstructured": {
"type": "string",
"example": "John Poulsen Grimvej 5 9010 Horsens",
"description": "Creditor name and address. Optional. Supported only for slips 01, 75.",
"maxLength": 140
}
},
"title": "PaymentInitiationSlip"
}
{
"type": "object",
"properties": {
"paymentIds": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"example": "48659f7a-2ded-11e9-b210-d663bd873d93",
"description": "Payment identifiers from a calls to payment initiation request"
}
},
"consentIds": {
"type": "array",
"minItems": 0,
"items": {
"type": "string",
"example": "15b708e5-531f-36f2-bea5-647c5dddec8e",
"description": "Identifiers of the corresponding consent objects as returned by an account information consent request."
}
}
},
"example": {
"paymentIds": [
"316cc3e6-4abe-3151-a384-a60ef90cc0d8",
"e9ac7162-2051-3de9-adda-beed1e6b6e36"
]
}
}
{
"type": "object",
"properties": {
"basketId": {
"type": "string",
"example": "f5b23695-980a-4aa8-a093-b3a63c072679"
},
"transactionStatus": {
"type": "string",
"example": "RCVD",
"description": "Status of the transaction\n* ACCP: AcceptedCustomerProfile\n* ACSC: AcceptedSettlementCompleted\n* ACSP: AcceptedSettlementInProcess\n* ACTC: AcceptedTechnicalValidation\n* ACWC: AcceptedWithChange\n* ACWP: AcceptedWithoutPosting\n* RCVD: Received\n* PDNG: Pending\n* RJCT: Rejected\n* CANC: Cancelled",
"enum": [
"ACCP",
"ACSC",
"ACSP",
"ACTC",
"ACWC",
"ACWP",
"RCVD",
"PDNG",
"RJCT",
"CANC"
]
},
"_links": {
"type": "object",
"properties": {
"self": {
"$ref": "#\/definitions\/Link"
},
"status": {
"$ref": "#\/definitions\/Link"
},
"startAuthorisation": {
"$ref": "#\/definitions\/Link"
}
}
}
}
}
{
"type": "object",
"properties": {
"basketId": {
"type": "string",
"example": "f5b23695-980a-4aa8-a093-b3a63c072679"
},
"transactionStatus": {
"type": "string",
"example": "RCVD",
"description": "Status of the transaction\n* ACCP: AcceptedCustomerProfile\n* ACSC: AcceptedSettlementCompleted\n* ACSP: AcceptedSettlementInProcess\n* ACTC: AcceptedTechnicalValidation\n* ACWC: AcceptedWithChange\n* ACWP: AcceptedWithoutPosting\n* RCVD: Received\n* PDNG: Pending\n* RJCT: Rejected\n* CANC: Cancelled",
"enum": [
"ACCP",
"ACSC",
"ACSP",
"ACTC",
"ACWC",
"ACWP",
"RCVD",
"PDNG",
"RJCT",
"CANC"
]
},
"payments": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"example": "48659f7a-2ded-11e9-b210-d663bd873d93",
"description": "paymentId from a call to payment initiation request"
}
},
"_links": {
"type": "object",
"properties": {
"self": {
"$ref": "#\/definitions\/Link"
},
"status": {
"$ref": "#\/definitions\/Link"
},
"startAuthorisation": {
"$ref": "#\/definitions\/Link"
}
}
}
}
}
Response to a signing basket status request
{
"type": "object",
"properties": {
"transactionStatus": {
"type": "string",
"example": "RJCT",
"description": "Status of the transaction\n* ACCP: AcceptedCustomerProfile\n* ACSC: AcceptedSettlementCompleted\n* ACSP: AcceptedSettlementInProcess\n* ACTC: AcceptedTechnicalValidation\n* ACWC: AcceptedWithChange\n* ACWP: AcceptedWithoutPosting\n* RCVD: Received\n* PDNG: Pending\n* RJCT: Rejected\n* CANC: Cancelled",
"enum": [
"ACCP",
"ACSC",
"ACSP",
"ACTC",
"ACWC",
"ACWP",
"RCVD",
"PDNG",
"RJCT",
"CANC"
]
}
},
"title": "SigningBasketStatusResponse"
}