Developers
Create payment links programmatically. Webhooks and SDKs are designed into the architecture and land in later phases.
Create a payment link
POST /api/payments
{
"recipient": "0x...", // required — EVM address
"amount": "25.00", // required — USDC amount (6 dp max)
"description": "Website Development",
"recipientName": "MJF Endin",
"type": "request", // request | invoice | checkout | donation | tip | payme
"customerName": "Acme Co",
"reference": "INV-001",
"expiresAt": 1789700000000, // optional epoch ms
"tipEnabled": true,
"presetAmounts": ["1", "5", "10"]
}Response:
{
"id": "abc123",
"url": "https://arc-payments.vercel.app/pay/abc123",
"status": "pending",
...
}Webhooks
Planned events: payment.created, payment.pending, payment.completed, payment.expired.
The server-side webhook dispatcher already exists; merchant URL registration ships with auth in a later phase.
Payment Link types
- request — fixed amount
- invoice — amount + customer + due date
- checkout — product/service + amount
- donation — preset amounts + custom
- tip — small predefined amounts
- payme — personal profile, custom amount