Skip to content
ZytePedevelopersDashboard
DocsAPI reference
API reference

External Transaction Status

Fetches a single ledger transaction owned by the merchant backend.

GET/api/v1/transactions/external/status/{transaction_id}Merchant HMAC
Use your enabled merchant account. Examples run on your server, never in this documentation.

Authentication

Use merchant HMAC headers and sign the exact path, query and raw body.

See authentication.

Workflow notes

  • This is the HMAC endpoint merchants should use for server-to-server recovery polling.
  • For payout-only flows, /api/v1/payouts/external/status/{transaction_id} returns the same ledger state with payout wording.

Before you send

Check the field labels and use your enabled merchant account. Examples illustrate the API contract; confirm deployment-specific limits and error handling before launch. This page never sends a request.

Request example

Choose Node.js, Python, PHP, Ruby, Java or cURL. Run signed requests on your backend. PHP, Ruby and Java include signing directly. Java requires JDK 17 or newer.

import { signedHeaders } from './signing.mjs';
const transaction_id = process.env.ZYTEPE_TRANSACTION_ID;
if (!transaction_id) throw new Error('Set ZYTEPE_TRANSACTION_ID to the returned identifier');
const path = `/api/v1/transactions/external/status/${encodeURIComponent(transaction_id)}`;
const query = '';
const body = ''; // GET requests have no body
const headers = signedHeaders({
  method: 'GET', path, query, body,
  keyId: process.env.ZYTEPE_API_KEY_ID,
  secret: process.env.ZYTEPE_API_SECRET,
});
const url = 'https://api.zytepe.com' + path + (query ? '?' + query : '');
const response = await fetch(url, { method: 'GET', headers });
if (!response.ok) throw new Error('Request failed: HTTP ' + response.status);
const result = await response.json();
// Store the returned identifiers securely. Do not log customer data.

Path, query and headers

transaction_idRequiredpath

Use the identifier returned by the corresponding creation operation.

Request body

No request body for GET.

Example response

JSON · response
{
  "success": true,
  "message": "Transaction status retrieved from ZytePe ledger.",
  "data": {
    "id": "ca9a58aa-d578-4fc2-a9f4-fb8d090d4b5f",
    "internal_ref": "ZY-INT-2042-AX19",
    "external_ref": "PAYOUT-2026-00041",
    "gateway_ref": "BANKREF98344210",
    "amount_gross": "1500.0000",
    "amount_fees": "15.0000",
    "amount_net": "1485.0000",
    "currency": "INR",
    "category": "DISBURSEMENT",
    "method": "IMPS",
    "status": "COMPLETED",
    "payee_id": "d965aa45-1952-4749-aa52-2bed21470ffd",
    "payee_name": "Aditi Traders",
    "failure_reason": null,
    "created_at": "2026-05-03T10:42:10.110Z",
    "updated_at": "2026-05-03T10:43:18.240Z"
  }
}