Skip to content

Find (International)

Get the current status of an international transaction.

Endpoint: POST /transaction/find

Request

bash
curl -X POST https://API-ENDPOINT/transaction/find \
  -H "Content-Type: application/json" \
  -d '{
    "auth": {
      "id": 123,
      "key": 1706360400002,
      "hash": "c3d4e5f6a1b2..."
    },
    "transaction_id": "69d-7c9-5f1-098-494"
  }'
php
<?php
$url = 'https://API-ENDPOINT/transaction/find';
$key = time() * 1000;

$data = [
    'auth' => [
        'id' => 123,
        'key' => $key,
        'hash' => md5(123 . $token . $key)
    ],
    'transaction_id' => '69d-7c9-5f1-098-494'
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
print_r($result);
javascript
const key = Date.now();
const hash = md5(`123${token}${key}`);

const response = await fetch('https://API-ENDPOINT/transaction/find', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    auth: { id: 123, key, hash },
    transaction_id: '69d-7c9-5f1-098-494'
  })
});

const data = await response.json();
console.log(data);
python
import requests
import hashlib
import time

url = 'https://API-ENDPOINT/transaction/find'
key = int(time.time() * 1000)
hash_value = hashlib.md5(f"123{token}{key}".encode()).hexdigest()

response = requests.post(url, json={
    'auth': {
        'id': 123,
        'key': key,
        'hash': hash_value
    },
    'transaction_id': '69d-7c9-5f1-098-494'
})

print(response.json())

Response

json
{
  "transaction": {
    "id": "69d-7c9-5f1-098-494",
    "state": 1,
    "error": "",
    "time": "2026-04-09 19:58:45",
    "service": {
      "id": "international-bridge",
      "name": "International Bridge"
    },
    "account": "911234567890",
    "amount": "100",
    "amount_currency": "INR",
    "price": "4.56",
    "price_currency": "AED",
    "country_id": "IND",
    "country_name": "India",
    "provider_id": "284",
    "provider_name": "MTNL"
  },
  "info": [],
  "receipt": {
    "header": "International Recharge",
    "subheader": "MTNL",
    "info": "Country: India\nProvider: MTNL\nAccount: +911234567890\nAmount excluding local taxes: INR 100.00",
    "instruction": "If you have any concern about the transaction please do inform us within 5 days.",
    "promo": "",
    "footer": "CUSTOMER SERVICE\nE-MAIL: [email protected]\n\nRECEIPT NUMBER: 69d-7c9-5f1-098-494\n\nThank you for using Paynet"
  }
}

Response Fields

FieldTypeDescription
transaction.stateintegerSee Transaction States
transaction.errorstringError message (empty on success)
transaction.accountstringRecipient phone number
transaction.amountstringAmount credited in local currency
transaction.amount_currencystringLocal currency code (e.g., INR)
transaction.pricestringAmount deducted from your wallet
transaction.price_currencystringYour wallet currency (e.g., AED)
transaction.country_idstringCountry ISO code
transaction.country_namestringCountry name
transaction.provider_idstringOperator ID
transaction.provider_namestringOperator name
receiptobjectReceipt data for printing/display
infoarray/objectEmpty array or PIN data (see below)

PIN-Based Products

For PIN-based products, the info field contains the PIN code instead of an empty array:

json
{
  "info": {
    "number": "1234-5678-9012",
    "serial": "SN-001234"
  }
}
FieldTypeDescription
info.numberstringPIN code (optional)
info.serialstringSerial number of the PIN (optional)

Polling Strategy

International transactions may take longer to complete. Use longer polling intervals (start at 30s, increase to 60s). See Transaction States for final vs non-final states.

Paynet API Documentation