For developers
Build on ezPayments.
A REST API for payment links, transactions and webhooks. Test keys and live keys, idempotent writes, and signed events.
Create a link
curl -X POST https://app.ezpayments.co/api/v3/payment-links/ \
-H "Authorization: Bearer sk_test_…" \
-H "Idempotency-Key: 8c1e2f…" \
-H "Content-Type: application/json" \
-d '{
"amount": "250.00",
"description": "Logo design, final invoice",
"customer_email": "client@example.com",
"send_email": true
}'Response
{
"data": {
"id": "62f1ac1b-fde0-4351-b004-00c2e89606a4",
"url": "https://app.ezpayments.co/pay/62f1ac1b-…/",
"amount": "250.00",
"status": "active"
},
"meta": { "request_id": "req_a0261129fc684ca6", "mode": "test" }
}Webhook
POST /your/webhook
X-EzPayments-Event: payment_link.paid
X-EzPayments-Delivery: 9b2f5a10-…
X-EzPayments-Signature: t=…,v1=…
{ "id": "62f1ac1b-…", "status": "paid", "amount": "250.00", … }Documentation
API reference
Authentication, errors, pagination, idempotency and every endpoint.
X-EzPayments-SignatureWebhooks
Events, delivery, signature checks in Node and Python, retries.
WooCommerce · ShopifyPlugins
Take payments in your store with no code.
Copy · pasteBuild with AI agents
One prompt that tells your coding assistant how to integrate end to end.
Four resources
Payment links
Create, update, cancel and list links. Each returns its URL and fee breakdown.
Transactions
Read payments with status, fee and settlement date.
Webhook endpoints
Register URLs and choose the events each one receives.
API keys
Create, list and revoke test and live keys.
Signed webhooks
Every event is POSTed to your endpoint with an HMAC-SHA256 signature over the timestamp and the payload, so you can verify it came from ezPayments.
- payment_link.created
- payment_link.paid
- payment_link.expired
- payment_link.cancelled
X-EzPayments-Signature: t=1793134247,v1=5d41…
X-EzPayments-Event: payment_link.paid
X-EzPayments-Delivery: 9b2f…
signature = HMAC_SHA256(secret,
"{timestamp}.{raw_body}")Safe to retry. Safe to ship.
Test and live keys
Build against sk_test_, switch to sk_live_ when you go live.
Idempotency keys
Send an Idempotency-Key on POST and a retry never creates a second link.
IP allowlists
Ask us to lock a key to the addresses your servers call from.
Rate limits
60 requests per minute per key, with a Retry-After header on 429.