Quickstart
Accept your first test payment in five steps.
1
Create an account
Sign up at /signup. An admin reviews new accounts and sends an activation link.
2
Activate and copy your keys
Click your activation link. You'll see your pk_test_…, sk_test_…, pk_live_…, and sk_live_… keys — all four shown ONCE.
3
Create a payment (test mode)
curl -X POST https://jcpay.innoserver.cloud/v1/payments \
-H "Authorization: Bearer sk_test_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"amount": 500.00,
"currency": "PHP",
"method": "gcash_qr",
"description": "Order #1042",
"return_url": "https://yoursite.com/thanks"
}'Response contains checkout_url. Redirect your customer there.
4
Complete the sandbox checkout
The sandbox page has three buttons: Pay, Simulate failure, Let it expire. Each drives real webhook events — the merchant sees them exactly as they would in production.
5
Listen for webhooks
Register a webhook endpoint at POST /v1/webhooks/endpointsor from the dashboard. JCPay sends signed POSTs for payment.succeeded, payment.failed, payment.expired.
POST /your-webhook
X-NexusPay-Signature: t=1714010000,v1=a3f8...
Content-Type: application/json
{
"type": "payment.succeeded",
"data": { "object": { "id": "pay_...", "status": "succeeded", ... } }
}