Skip to content

Transaction verification

Transaction verification is a way to call a script on one of your own web servers whenever a transaction is being processing. Verification is used in order to accept or decline a transaction.


Set up the verification

To receive a verification request from the Overpay system, pass verification_url in transaction request parameters.

{
    ....

    "verification_url":"https://your-domain.com/verification",

    ....
}

A verification request uses HTTP Basic authentication with Shop ID and Secret Key.

A verification request has the following structure:

Example of verification request
{
  "uid": "0f12aeaa-cb11-4549-9c94-40b705000fe1",
  "status": "incomplete",
  "amount": 501,
  "currency": "USD",
  "description": "Test transaction",
  "type": "payment",
  "payment_method_type": "credit_card",
  "tracking_id": "tracking_id_0012",
  "message": "Unknown transaction status. Contact technical support.",
  "test": true,
  "created_at": "2026-10-22T12:06:54.861Z",
  "updated_at": "2026-10-22T12:06:54.876Z",
  "paid_at": null,
  "expired_at": null,
  "recurring_type": "initial",
  "closed_at": null,
  "settled_at": null,
  "manually_corrected_at": null,
  "language": "ru",
  "credit_card": {
    "holder": "[FILTERED]",
    "stamp": "b3839d334ba40e89168d60cd9f9d1390aee3fe67dd4d5c41adbf3998043eaef8",
    "brand": "visa",
    "last_4": "0000",
    "first_1": "4",
    "bin": "420000",
    "bin_8": "42000000",
    "hash_bin9": null,
    "issuer_country": "US",
    "issuer_name": "VISA Demo Bank",
    "product": "F",
    "exp_month": 9,
    "exp_year": 2027,
    "token_provider": null,
    "stamp_expdate": "0f1e430bf7b9484ad9cac27d36155ef0bb11a61f71892cfa3904c3df937833a4",
    "token": "0219b641-760c-4afb-860c-1a28e86a51e1"
  },
  "receipt_url": "https://backoffice.overpay.io/customer/transactions/0f12aeaa-cb11-4549-9c94-40b705000fe1/c12635d3e5783d05308f57f39a242e9bece440dbbbab1c48a8029ca9f9ffa165?language=ru",
  "status_code": 10,
  "gateway": {
    "iframe": true
  },
  "mute_notifications": null,
  "version": 1,
  "psp_settled_at": null,
  "registry_id": null,
  "three_ds_expired_at": null,
  "id": "0f12aeaa-cb11-4549-9c94-40b705000fe1",
  "additional_data": {
    "contract": [
      "recurring"
    ]
  },
  "redirect_url": "https://gateway.overpay.io/process/0f12aeaa-cb11-4549-9c94-40b705000fe1",
  "code": "P.9999",
  "friendly_message": "Unknown transaction status. Contact the merchant for details.",
  "smart_routing_verification": {
    "status": "successful"
  },
  "transaction_verification": {
    "message": null,
    "status": "incomplete"
  },
  "payment": {
    "auth_code": null,
    "bank_code": null,
    "rrn": null,
    "ref_id": null,
    "message": null,
    "amount": 501,
    "currency": "USD",
    "billing_descriptor": null,
    "gateway_id": 4318,
    "status": "incomplete"
  },
  "avs_cvc_verification": {
    "avs_verification": {
      "result_code": null
    },
    "cvc_verification": {
      "result_code": null
    }
  },
  "customer": {
    "ip": null,
    "email": null,
    "device_id": null,
    "birth_date": null,
    "external_id": null
  },
  "billing_address": {
    "first_name": "John",
    "last_name": "Doe",
    "middle_name": null,
    "address": "Baker street 221b",
    "country": "GB",
    "city": "London",
    "zip": null,
    "state": null,
    "phone": null
  }
}

Accept or decline a transaction

Your web server should return the 200 HTTP status code and POST parameters in order to accept or decline a transaction.

Parameter Type Description
code * required
integer Set to 0 to accept the transaction. Set to any other code to decline the transaction.
uid * required
string Submit the UID copied from the request.
amount * required
integer Submit the amount copied from the request.
message string A message why the transaction is declined, if the value of code is other than 0.
friendly_message string A message to the customer to explain a reason for decline.
created_at string A response time in the ISO-8601 format.
Example of the response to accept a transaction
{
  "code":0,
  "uid": "35153123-9367e7e770",
  "amount": 100,
  "created_at": "2020-08-04T06:16:17.052Z"
}
Example of the response to decline a transaction
{
  "code":1,
  "uid": "36279632-7127y612a6",
  "amount": 100,
  "message":"IP validation failed",
  "friendly_message": "Your transaction is declined. For details please contact our customer service",
  "created_at": "2020-08-04T06:16:22.141Z"
}