Payment Status

The Payment API uses two status codes that serve two different purposes:

  1. The HTTP Status Code reflects the outcome of the API call (the HTTP operation on the resource). For more information see RFC2616 Status Code Definitions.
  2. The Status field in the Payment API payloads reflect the status of the payments resources. This Status is limited to the ISO 20022 Payment Status Code code-list enumeration.

The Payment API possible HTTP Status Codes are described in the Payments API Documentation.

Payment Status Code

Payment status code indicates the status of a single payment transaction. The Payment API supports following codes:

  • ACTC Accepted Technical Validation
  • ACSP Accepted Settlement In Process
  • ACSC Accepted Settlement Completed
  • PDNG Pending
  • RJCT Rejected

Payment Status State Diagram

Payment initiation

You initiate payment with calling one of initiation methods e.g. POST /payments/ecomm/sba. After successful payment initiation with HTTP 201 Created response your payment can be in ACTC or RJCT state. Your payment can be rejected due to business validation rules fault e.g. AC01 - Creditor IBAN is not valid: CZ6575000000001234567891.

{
    "orderId": "EDE04525712C6C4B0FFC17D178BBB290",
    "status": "ACTC",
    "statusDateTime": "2017-11-07T10:16:29.198+01:00"
}

Payment order identifier

If you successfully initiate payment the bank server returns Order ID which is unique identifier for your payment. This identifier you should use as a parameter for checking payment status with GET /payments/{orderId}/status.

Payment submission

After successful payment initiation the payment is in ACTC state and you can submit the payment to your customer authorization by calling POST /payments/submission method. After your customer authorize the payment changes its status:

  1. ACSP in case of successfull payment authorization
  2. PDNG in case of requested execution date is in future
  3. RJCT in case of failing business validation rule

Transaction Reason Code

Specifies the reason for a transaction to be rejected, returned or reversed by an instructed agent or somebody acting on behalf of an instructed agent. This Reason is limited to the ISO 20022 Transaction Reason Code code-list enumeration.

{
    "status": "RJCT",
    "reasonCode": "AC01",
    "additionalInformation": "Creditor IBAN is not valid: CZ6575000000001234567891.",
    "statusDateTime": "2017-11-07T10:14:57.990+01:00"
}

The Payments API supports following codes:

  • AC01 Format of the account number specified is not correct.
  • AC04 Account number specified has been closed on the Receiver's books.
  • AG01 Transaction forbidden on this type of account.
  • AM03 Specified message amount is in a non processable currency outside of existing agreement.
  • AM04 Amount of funds available to cover specified message amount is insufficient.
  • AM05 This message appears to have been duplicated.
  • AM09 Amount received is not the amount agreed or expected.
  • AM10 Sum of instructed amounts does not equal the control sum.
  • DT01 Invalid date (e.g., wrong settlement date).
  • MS03 Reason has not been specified by agent.
  • RC01 Bank identifier code specified in the message has an incorrect format.
  • RR03 Missing creditor name or address (defined by SEPA Credit Transfer Scheme Rulebook).
  • TM01 Associated message was received after agreed processing cut-off time.