Developers

Create payment links from your own system.

One endpoint. Create an invoice, get a link, send it to your customer. Poll the invoice to see when it is paid.

Authentication

Create an API key in your dashboard (Developer API → Create API key). Send it as a bearer token.

Create an invoice

POST https://vestapayments.com/api/invoices
Authorization: Bearer vk_test_...
Content-Type: application/json

{ "amount": "250", "currency": "USDC", "description": "Order #1234", "order_id": "1234", "expires_in_minutes": 60 }

→ 201
{ "invoice_id": "inv_…", "payment_url": "https://vestapayments.com/pay/inv_…", "amount": "250", "currency": "USDC", "status": "PENDING", "expires_at": "…" }

order_id must be unique per merchant — sending the same one twice returns 409, so retries are safe.

Check status

GET https://vestapayments.com/api/invoices/inv_…

→ { "id": "inv_…", "status": "CONFIRMED", "amount": "250", "fee": "7.50", "merchant_amount": "242.50", "tx": { "hash": "0x…", "confirmations": 12 } }

Statuses: PENDING (awaiting payment), DETECTED (seen on-chain, confirming), CONFIRMED (final), EXPIRED, MISMATCH (a payment was made that does not match the invoice — review manually).

List your invoices

GET https://vestapayments.com/api/invoices
Authorization: Bearer vk_test_...

Limits during the test phase