Send a payment link
Collect a payment without writing an integration at all.
A payment link is a URL that collects money. No client, no callback handling — send it to somebody and they pay.
Create one
curl -X POST https://sandbox.inversepay.app/api/b/v1/payment-links \
-H "Authorization: Bearer $INVERSEPAY_TEST_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"title": "Invoice 1042",
"currency": "RWF",
"amount_minor": 2500000,
"usage": "single_use"
}'amount_minor is 25,000 RWF. Only title and currency are required — leave
the amount out and set "amount_type": "open" to let the payer choose, with
min_amount_minor and max_amount_minor to bound it.
| Field | |
|---|---|
usage | single_use or reusable |
amount_type | fixed or open |
expires_at | ISO 8601. After this the link stops accepting payments |
redirect_url | where the payer lands after paying |
What you get back
The response carries the link's URL and its id. Send the URL; keep the id.
Then what
A paid link produces a charge, the same object
a direct charge produces — so whatever you already do with
charges works here without a second code path. Watch for it with the
charge.succeeded webhook, or poll
GET /charges.
Disable a link without deleting it:
curl -X POST https://sandbox.inversepay.app/api/b/v1/payment-links/$LINK_ID/disable \
-H "Authorization: Bearer $INVERSEPAY_TEST_KEY"Creating and disabling links needs a dashboard session, not an API key: a
link publishes a request for payment under your brand, so it is held to the
seats accountable for that. An API key can read links with payments:read.
See Authentication.