Long approval process
Wait days or weeks before you can launch.
Built for solo builders and indie startups. Get a payment gateway account approved quickly and start accepting payments today.
const payment = await createPayment({
amount: 50000,
customer: "Customer"
});Wait days or weeks before you can launch.
Built for corporations, not solo founders.
Your app is done, but customers still can't pay.
SeaPay removes the enterprise friction from payment onboarding so Indonesian builders can charge customers while momentum is still fresh.
Simple onboarding designed for builders.
QRIS, Virtual Account, Bank Transfer, E-Wallet, Credit Card.
Simple APIs and developer-friendly documentation.
Every successful SeaPay transaction costs 1%. You can absorb the fee yourself or pass it to the buyer at checkout, so your business receives the full payment amount.
Only charged on successful payments.
Show the fee clearly during checkout and let customers cover payment costs.
SeaPay API access requires an authorization token before you can request payment links or receive webhook events. To get your token, contact support through the button below.
Send the amount, buyer details, and callback URL. SeaPay returns a checkout link that you can redirect the buyer to or share directly.
curl -X POST https://api.seapay.sbs/api/payment-links \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"external_id": "INV-1024",
"amount": 100000,
"customer_name": "Customer",
"customer_email": "customer@example.com",
"payment_methods": ["QRIS", "VA", "EWALLET"],
"fee_paid_by": "buyer",
"success_url": "https://yourapp.com/thank-you",
"webhook_url": "https://yourapp.com/webhooks/seapay"
}'{
"id": "plink_9x2mK7",
"external_id": "INV-1024",
"status": "pending",
"amount": 100000,
"fee": 1000,
"fee_paid_by": "buyer",
"buyer_payable_amount": 101000,
"merchant_receives": 100000,
"payment_url": "https://pay.seapay.sbs/plink_9x2mK7",
"expires_at": "2026-06-05T17:00:00+07:00"
}When the buyer completes payment, SeaPay calls your webhook so you can activate access, mark invoices as paid, or start a subscription.
POST https://yourapp.com/webhooks/seapay
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
"event": "transaction.finished",
"transaction_id": "trx_72KpQ1",
"payment_link_id": "plink_9x2mK7",
"external_id": "INV-1024",
"status": "paid",
"amount": 100000,
"paid_amount": 101000,
"fee": 1000,
"fee_paid_by": "buyer",
"merchant_receives": 100000,
"payment_method": "QRIS",
"paid_at": "2026-06-05T14:38:12+07:00"
}{
"received": true,
"transaction_id": "trx_72KpQ1",
"message": "Invoice marked as paid"
}Submit your information.
Fast verification process.
Copy, paste, and connect.
Accept payments immediately.
Keep your checkout lean, your webhooks predictable, and your test environment ready before your first production payment.
const payment = await createPayment({
amount: 50000,
customer: "Customer"
});
await listen("payment.succeeded", async (event) => {
await activateSubscription(event.customer);
});"We shipped our AI writing tool on Friday morning and accepted our first QRIS payment before lunch. No back-and-forth procurement drama."
"The API felt familiar immediately. I wired checkout, webhook handling, and subscription renewal in one focused afternoon."
"SeaPay matched how indie teams actually work: quick approval, sandbox first, then live payments without a corporate packet."
Your next customer shouldn't wait for your payment gateway approval.
Get Approved Today