Skip to main content
GET
Retrieve a payment link
This operation requires no key. Anyone who knows the reference can check the state of the link and, once a payment has been completed, the payer information it contains. Always generate this reference randomly and with high entropy (see Create a hosted payment link), and never log it or display it in a context accessible to a third party not involved in this payment.
  • Response shape. It depends on the actual state of the link: a payment carried through to completion, a link still waiting for a first payment attempt, or a link that expired without a completed payment. A refund made afterwards does not change this shape: this operation is not a reliable indicator for detecting a refund.
  • Expired link. After thirty minutes without a completed payment, the lookup still responds 200, with has_expire set to true and status set to cancelled. Treat this shape as a permanently unusable link, not as a transient error to retry.
  • Unknown reference. A reference that does not match any link returns 404. Since the operation is public, brute-force enumeration is possible if the reference is not random enough: this is the reason for the warning above.
Common error messages: Errors.

Path Parameters

reference
string
required

High-entropy private reference, not published on the client side.

Minimum string length: 32

Response

State of the link or of the associated payment

Shape returned when a payment has been carried through to completion for this link. status can then only be succeeded or failed: on this operation, never initiated, pending or refunded. Edge case: a payment refunded afterwards is no longer attached to the link, and the operation then returns the shape of a link still waiting (status: initiated) instead of exposing the refund — do not use this operation as a reliable refund indicator.

reference
string
amount
integer
country
string
currency
string
transaction_id
string
msisdn
string
customer_name
string
status
enum<string>
Available options:
succeeded,
failed
created_at
string<date-time>