JCPay· Quickstart

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", ... } }
}