This API will provide the current status of a specific payment.

Introduction

The UddoktaPay Verify Payment API allows you to retrieve the current status of a specific payment. After initiating a payment through the Create Charge API, UddoktaPay sends the invoice_id as a query parameter to the success URL. You can use this invoice_id to call the Verify Payment API at any time to check the payment status.

Request URL

To create a payment request, use the following API endpoint:

{base_URL}/api/verify-payment

Where {base_URL} is the location of your UddoktaPay installation, such as https://pay.your-domain.com.

Request Headers

Include the following request headers:

Header NameValue
Content-Type"application/json"
Accept"application/json"
RT-UDDOKTAPAY-API-KEYCollect API KEY From Dashboard

Request Parameters

The API expects the following parameter in the request:

PropertyPresenceTypeDescription
invoice_idMandatorystringThe invoice_id is received as a query parameter from the success URL provided during payment creation.

Success Response Parameters

Upon a successful API request, the response will contain the following parameters:

PropertyTypeDescription
full_namestringFull Name value which was passed along with the payment request.
emailstringEmail value which was passed along with the payment request.
amountstringAmount value which was passed along with the payment request.
feestringFee of the payment transaction.
charged_amountstringAmount of the payment transaction.
invoice_idstringUddoktaPay generated invoice_id for this payment creation request.
metadataJSON objectAny related JSON object that was passed along with the payment request.
payment_methodstringPayment Method of the payment transaction. (bKash/Rocket/Nagad/Upay or Bank)
sender_numberstringSender Number of the payment transaction.
transaction_idstringTransaction ID of the payment transaction.
datestringDate of the payment transaction.
statusstringCOMPLETED or PENDING or ERROR

Status of the payment.

Error Response Parameters

In case of an error, the response will contain the following parameters:

PropertyTypeDescription
statusstringERROR
messagestringMessage associated with the status, explaining the status.

Sample Request

<?php

$baseURL = 'https://sandbox.uddoktapay.com/';
$apiKEY = '982d381360a69d419689740d9f2e26ce36fb7a50';

$fields = [
    'invoice_id'     => 'Erm9wzjM0FBwjSYT0QVb'
];


$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => $baseURL . "api/verify-payment",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode($fields),
  CURLOPT_HTTPHEADER => [
    "RT-UDDOKTAPAY-API-KEY: " . $apiKEY,
    "accept: application/json",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
curl --request POST \
     --url https://sandbox.uddoktapay.com/api/verify-payment \
     --header 'RT-UDDOKTAPAY-API-KEY: 982d381360a69d419689740d9f2e26ce36fb7a50' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
     "invoice_id": "Erm9wzjM0FBwjSYT0QVb"
}
'
const axios = require('axios');

const options = {
  method: 'POST',
  url: 'https://sandbox.uddoktapay.com/api/verify-payment',
  headers: {
    accept: 'application/json',
    'RT-UDDOKTAPAY-API-KEY': '982d381360a69d419689740d9f2e26ce36fb7a50',
    'content-type': 'application/json'
  },
  data: {invoice_id: 'Erm9wzjM0FBwjSYT0QVb'}
};

axios
  .request(options)
  .then(function (response) {
    console.log(response.data);
  })
  .catch(function (error) {
    console.error(error);
  });
import requests

url = "https://sandbox.uddoktapay.com/api/verify-payment"

payload = {"invoice_id": "Erm9wzjM0FBwjSYT0QVb"}
headers = {
    "accept": "application/json",
    "RT-UDDOKTAPAY-API-KEY": "982d381360a69d419689740d9f2e26ce36fb7a50",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Sample Response

{
  "full_name": "John Doe",
  "email": "[email protected]",
  "amount": "100.00",
  "fee": "0.00",
  "charged_amount": "100.00",
  "invoice_id": "Erm9wzjM0FBwjSYT0QVb",
  "metadata": {
    "user_id": "10",
    "order_id": "50"
  },
  "payment_method": "bkash",
  "sender_number": "01311111111",
  "transaction_id": "TESTTRANS1",
  "date": "2023-01-07 14:00:50",
  "status": "COMPLETED"
}