Payment Status API

Verify the outcome of a payment by calling the Payment Status API after receiving a callback notification.

Verify the outcome of a payment by calling this endpoint after receiving a callback on your returnUrl or errorUrl.

Endpoint

🔗

GET https://demo.mifinity.com/api/gateway/payment-status/{validationKey}

Replace {validationKey} with the validation key you generated and passed in your init-iframe API request. This key uniquely identifies the payment session.


Response Handling

After receiving a callback notification, follow these steps:

  1. Call the Payment Status API using the validationKey from the original request.
  2. Check the HTTP status code — only process responses with HTTP 200.
  3. Read the status field in the response payload:
    • SUCCESSFULMove funds to the user.
    • FAILEDMark the transaction as failed on your end.
    • PENDING or NOT_COMPLETEDWait — the payment is still being processed.
StatusFinal?Description
SUCCESSFULYesThe payment completed successfully.
PENDINGNoThe payment has been submitted to the processor but is not yet determined.
NOT_COMPLETEDNoThe payment requires further input from the user.
FAILEDYesThe payment has failed.
📘

The detailedStatus field is optional and provides additional context on why a transaction was unsuccessful (e.g., ABANDONED_BY_USER). Not all responses include it.


Response Examples

Returned when the payment completes successfully. Contains full transaction details including amounts, fees, and customer information.

{
  "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"
        }
      }
    }
  ]
}

What’s Next