API reference
Base URL: https://<deployment>.convex.site/v1 (or your custom api.rollopayments.com/v1 proxy). Authenticate with a bearer API key on every request.
Sandbox vs live
Test and live keys expose the same endpoints and payloads. The key selects the data plane: rk_test_ only reads and writes sandbox data; rk_live_ only touches live. Sandbox customers, payments, and subscriptions never appear when you use a live key (and the reverse).
Authentication
Authorization: Bearer rk_test_... Authorization: Bearer rk_live_...
Resource identifiers
| Prefix | Resource |
|---|---|
| rk_test_ / rk_live_ | API keys |
| cs_ | Checkout sessions |
| plink_ | Payment links |
| pay_ | Payments |
| prod_ | Products |
| price_ | Prices |
| sub_ | Subscriptions |
| cus_ | Customers |
| po_ | Payouts |
| disc_ | Discount codes |
| we_ | Webhook endpoints |
| evt_ | Events |
| acct_ | Accounts |
Endpoints
POST /checkout_sessions— create a hosted checkout (payment or subscription)GET /checkout_sessions/:id— retrieve a sessionPOST /payment_links— create a payment linkDELETE /payment_links/:id— deactivate a payment linkPOST /discount_codes— create a discount codeDELETE /discount_codes/:id— delete a discount codeGET /payouts— list payouts (scoped to key mode)GET /payout_methods— list connected payout destinationsGET /payments/:id— retrieve a paymentGET /customers— list customers (scoped to key mode)GET /customers/:id— retrieve a customerPOST /products— create a product and priceGET /subscriptions/:id— retrieve a subscription
Errors
{
"error": {
"type": "invalid_request",
"message": "Amount must be greater than zero",
"code": "amount_invalid"
}
}