Skip to content
Guarantee Pay Docs

API · scope verify_payment

Verify payment

Returns the current state of a payment. Call it when the customer returns, when a webhook arrives, or as a backup if a webhook was missed.

POST https://payment.yamin.bd/api/verify-payment
Content-Type: application/json
MHS-GUARANTEEPAY-API-KEY: YOUR_API_KEY

{ "pp_id": "k3J9x…" }

pp_id is the only field. Payment IDs from another brand return INVALID_PP_ID.

Response HTTP 200

{
  "pp_id": "k3J9x…",
  "full_name": "Rahim Uddin",
  "email_address": "rahim@example.com",
  "mobile_number": "01700000000",
  "gateway": "bKash",
  "amount": "500.00",
  "fee": "0.00",
  "discount_amount": "0.00",
  "total": "500.00",
  "local_net_amount": "500.00",
  "currency": "BDT",
  "local_currency": "BDT",
  "metadata": { "order_id": "ORD-1001" },
  "sender": "01711111111",
  "transaction_id": "BK7A2C9XQ1",
  "status": "completed",
  "date": "Oct 01, 2026 10:24 AM"
}
FieldMeaning
statusLowercase status. See statuses.
amountAmount you requested, in currency.
fee / discount_amountGateway fee added and discount removed at checkout.
totalamount + fee − discount_amount.
local_net_amount / local_currencyWhat the customer actually paid in the gateway's currency.
transaction_idGateway / MFS transaction ID (TrxID).
senderPayer account or number, when known.
metadataExactly what you sent at create time.

Before you fulfil, check that:

  1. status is exactly completed.
  2. metadata.order_id matches the order you are about to fulfil. This stops someone reusing another paid pp_id.
  3. amount and currency match what the order costs.
  4. You have not already fulfilled this order. Store the pp_id and make your handler idempotent.