Payment Status API

After the payment is done, the status of the payment can be verified using the Payment Status API. This can be called in the following way:

Request

where validation key, is the validation key provided within the init-iframe API call at the very first request.

The response returned is of the following format:

{
  "payload": [
    {
      "status": "SUCCESSFUL",
      "paymentResponse": {
        "sourceMoney": {
          "amount": 150,
          "currency": "EUR",
          "presentationAmount": "EUR150.00"
        },
        "destinationMoney": {
          "amount": 150,
          "currency": "EUR",
          "presentationAmount": "EUR150.00"
        },
        "totalFees": {
          "amount": 0,
          "currency": "EUR",
          "presentationAmount": "EUR0.00"
        },
        "traceId": "traceIdASRQLThiunztFWhckw6t2",
        "money": {
          "amount": 150,
          "currency": "EUR",
          "presentationAmount": "EUR150.00"
        },
        "description": "Test",
        "clientReference": "Sherlock Holmes",
        "validationKey": "Gxx4o3r8OR2E372hHxtpW7mOjGvOa81EXGhz~luUXKsUbwGGd5oaiP5IHCEUxblV1XLGNKXbhYCQgAPhTHgLAcWEWpz1JiIRbeFP5YNlA3FVW~XYrhZsnq5uo4Zw",
        "responseCode": "FnUVNoes9jwyI7V7gdQvovRMbM966WR1a2QAh3pj3LY=",
        "transactionReference": "79da2eee-bc4d-4712-a6fa-6dc8c8088b1a",
        "paymentType": "EWALLET",
        "customerAccountNumber": "5001000001213949",
        "customerDob": "1993-10-31",
        "customerFirstName": "anish",
        "customerLastName": "shah",
        "senderEmailAddress": "[email protected]",
        "paymentMethod": "giropay",
        "accountNumber": "500100XXXXXX3949",
        "customerCountryCode": "DE",
        "requestedMoney": {
          "amount": 150,
          "currency": "EUR",
          "presentationAmount": "EUR150.00"
        }
      }
    }
  ]
}
{
  "payload": [
    {
      "status": "PENDING"
    }
  ]
}
{
  "payload": [
    {
      "status": "NOT_COMPLETED",
      "detailedStatus": "ABANDONED_BY_USER"
    }
  ]
}
{
  "payload": [
    {
      "status": "FAILED",
      "errorMessage": "Deposit attempt abandoned",
      "detailedStatus": "ABANDONED_BY_USER"
    }
  ]
}

๐Ÿ“˜

Once you receive notification on either the returnUrl or errorUrl, you are expected to call the above payment-status API to retrieve the status. You should move funds to the user only upon receiving a response with HTTP status 200 along with the status field as SUCCESSFUL within the response. Subsequently, you should mark the transaction as failed on your end when receiving a response with HTTP status 200 along with the status field as 'FAILED'.

๐Ÿ“˜

Please note that "detailedStatus" is an optional field and is only to provide more information as to why the transaction was unsuccessful.

StatusFinalStatus Description
SUCCESSFULYesThe payment was successful
PENDINGNoThe payment has been submitted to the processor but its status is yet to be determined
NOT_COMPLETEDNoThe payment requires input from the user.
FailedYesThe payment has failed
{
  "errors": [
    {
      "type": "FATAL",
      "errorCode": "TRANSACTION_FAILED",
      "message": "Transaction Declined: Incorrect validation key. No records were found",
      "field": "Incorrect validation key. No records were found"
    }
  ]
} 

Whatโ€™s Next