API Reference
Complete REST API reference for the RevKeen billing and payments platform
The RevKeen API is organized around REST. It accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
Make your first request · Authentication
130 operations and 57 webhook events.
Core Payments
9 operations
Payment Intents, Refunds
Checkout
29 operations
Payment Links, Checkout Sessions, Cart Sessions, Cart API Keys, Storefront
Billing & Subscriptions
21 operations
Invoices, Credit Notes, Subscriptions, Billing
Usage Billing
9 operations
Meters, Usage Events, Usage
Products & Pricing
9 operations
Products, Prices
Customers & Vault
10 operations
Customers, Entitlements
Money Movement
2 operations
Transactions
Webhooks & Events
9 operations
Events, Webhook Endpoints
Analytics & Finance
2 operations
Analytics
Invoice Line Items
1 operations
Invoice Line Items
Accounting Integrations
2 operations
Accounting Integrations
Webhook Deliveries
3 operations
Webhook Deliveries
Customer Portal
12 operations
Customer Portal
Customer Meters
2 operations
Customer Meters
Direct Debit
3 operations
Direct Debit
Mandates
7 operations
Mandates
Webhooks
Make your first staging request
Set your staging API key in your server environment, then list customers. A matching key returns 200 OK with a list payload.
export REVKEEN_API_KEY=rk_sandbox_your_api_key
curl https://staging-api.revkeen.com/v2/customers \
-H "x-api-key: $REVKEEN_API_KEY" \
-H "Accept: application/json"Follow the complete quickstart · Authentication and key setup
Base URL
https://api.revkeen.com/v2Use https://staging-api.revkeen.com/v2 for test mode. No real charges are created in test mode.
Authentication
All API requests require authentication. Send your merchant API key in the x-api-key header, or as Authorization: Bearer <key> — both are accepted:
curl https://api.revkeen.com/v2/invoices \
-H "x-api-key: rk_live_..."| Environment | Key prefix | Description |
|---|---|---|
| Test mode | rk_sandbox_ | No real charges. Safe for development. |
| Live mode | rk_live_ | Real transactions. Use in production. |
Create and manage API keys in Dashboard → Settings → Developer. See Authentication for scopes, IP allowlists, rolling, and OAuth 2.1.
Rate limits
| Environment | Requests / min | Burst |
|---|---|---|
| Test mode | 100 | 200 |
| Production | 1,000 | 2,000 |
| Enterprise | Custom | Custom |
Rate-limited responses return 429 Too Many Requests with type: rate_limit_error, code: rate_limit_exceeded, and a Retry-After header in whole seconds. Where the limiter publishes them, X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset (a UNIX timestamp in seconds) accompany the response. See Errors.
Idempotency
All POST endpoints accept an Idempotency-Key header (UUID v4 recommended). Keys are valid for 24 hours. Duplicate requests within the TTL return the original response. See Idempotency.
Versioning
The API is versioned by date. Pin a version via the RevKeen-Version header:
RevKeen-Version: 2026-05-01Browse by category
Core Payments
Payment Intents
Create a payment intentPOST
/payment-intentsList payment intentsGET
/payment-intentsRetrieve a payment intentGET
/payment-intents/{id}Confirm a payment intentPOST
/payment-intents/{id}/confirmCapture a payment intentPOST
/payment-intents/{id}/captureCancel a payment intentPOST
/payment-intents/{id}/cancelCheckout
Payment Links
Create a new payment linkPOST
/payment-linksList payment linksGET
/payment-linksGet payment link by IDGET
/payment-links/{id}Expire a payment link (deprecated)POST
/payment-links/{id}/expireUpdate payment link statusPATCH
/payment-links/{id}/statusDeactivate a payment link (deprecated)POST
/payment-links/{id}/deactivateActivate a payment link (deprecated)POST
/payment-links/{id}/activateArchive a payment link (deprecated)POST
/payment-links/{id}/archiveCheckout Sessions
Cart Sessions
Create a cart sessionPOST
/cart-sessionsRetrieve a cart sessionGET
/cart-sessions/{id}Add a line item to a cart sessionPOST
/cart-sessions/{id}/line-itemsUpdate a line item's quantityPATCH
/cart-sessions/{id}/line-items/{lineId}Remove a line item from a cart sessionDELETE
/cart-sessions/{id}/line-items/{lineId}Toggle an add-on on a cart sessionPOST
/cart-sessions/{id}/add-onsSet or clear a cart discount codePOST
/cart-sessions/{id}/discount-codeCapture customer email + consent on a cartPOST
/cart-sessions/{id}/contactConvert a cart session into a checkout sessionPOST
/cart-sessions/{id}/convertCart API Keys
Storefront
List storefront productsGET
/storefront/productsGet a storefront productGET
/storefront/products/{productId}List storefront originsGET
/storefront/originsRegister a storefront originPOST
/storefront/originsRemove a storefront originDELETE
/storefront/origins/{originId}Get storefront integration statusGET
/storefront/statusBilling & Subscriptions
Invoices
Explain invoice usage chargesGET
/invoices/{id}/usage-explainList invoicesGET
/invoicesCreate invoicePOST
/invoicesGet invoiceGET
/invoices/{id}Update invoicePATCH
/invoices/{id}Estimate invoice net by payment railPOST
/invoices/{id}/margin-estimateFinalize an invoicePOST
/invoices/{id}/finalizeVoid an invoicePOST
/invoices/{id}/voidSend an invoicePOST
/invoices/{id}/sendCredit Notes
Subscriptions
Usage Billing
Meters
Usage Events
Products & Pricing
Products
Customers & Vault
Customers
Get customer billing stateGET
/customers/{id}/stateCreate a new customerPOST
/customersList customersGET
/customersGet customer by IDGET
/customers/{id}Update customer detailsPATCH
/customers/{id}Get customer payment rail availabilityGET
/customers/{id}/payment-railsGet preferred payment railsGET
/customers/{id}/preferred-railsGet customer payment methodsGET
/customers/{id}/payment-methodsMoney Movement
Webhooks & Events
Events
Webhook Endpoints
Analytics & Finance
Invoice Line Items
Accounting Integrations
Webhook Deliveries
Customer Portal
Customer Portal
Create a customer-portal sessionPOST
/customer-portal/sessionsRetrieve the authenticated customerGET
/customer-portal/customerList the authenticated customer's subscriptionsGET
/customer-portal/subscriptionsRetrieve a subscriptionGET
/customer-portal/subscriptions/{id}Cancel a subscriptionPOST
/customer-portal/subscriptions/{id}/cancelList the authenticated customer's invoicesGET
/customer-portal/invoicesRetrieve an invoiceGET
/customer-portal/invoices/{id}List the authenticated customer's Direct Debit mandatesGET
/customer-portal/mandatesRe-authorise a Direct Debit mandate with new bank detailsPOST
/customer-portal/mandates/{id}/re-authorizeCancel a Direct Debit mandatePOST
/customer-portal/mandates/{id}/cancelSend a step-up OTP for a Direct Debit bank-detail changePOST
/customer-portal/mandates/{id}/re-authorize/send-otpVerify a step-up OTP and receive a change-of-bank tokenPOST
/customer-portal/mandates/{id}/re-authorize/verify-otpCustomer Meters
Direct Debit
Mandates
Mandates
Create a Direct Debit mandatePOST
/mandatesList Direct Debit mandatesGET
/mandatesRetrieve a Direct Debit mandateGET
/mandates/{id}Cancel a Direct Debit mandatePOST
/mandates/{id}/cancelSuspend a Direct Debit mandatePOST
/mandates/{id}/suspendReinstate a suspended Direct Debit mandatePOST
/mandates/{id}/reinstateSchedule a one-off Direct Debit collectionPOST
/mandates/{id}/collectionsWebhook events
Requests sent by RevKeen to your endpoint. Set up signature verification and delivery handling.
Payment succeededWebhook
payment.succeededPayment failedWebhook
payment.failedInvoice createdWebhook
invoice.createdInvoice paidWebhook
invoice.paidInvoice overdueWebhook
invoice.overdueSubscription createdWebhook
subscription.createdSubscription activatedWebhook
subscription.activatedSubscription canceledWebhook
subscription.canceledSubscription renewedWebhook
subscription.renewedCustomer createdWebhook
customer.createdCustomer updatedWebhook
customer.updatedRefund createdWebhook
refund.createdRefund succeededWebhook
refund.succeededVoid createdWebhook
void.createdVoid succeededWebhook
void.succeededVoid failedWebhook
void.failedCredit note createdWebhook
credit_note.createdCredit note issuedWebhook
credit_note.issuedCredit note voidedWebhook
credit_note.voidedCheckout session completedWebhook
checkout.session.completedCheckout session expiredWebhook
checkout.session.expiredOrder createdWebhook
order.createdOrder paidWebhook
order.paidTerminal payment requestedWebhook
terminal_payment.requestedTerminal payment succeededWebhook
terminal_payment.succeededTerminal payment declinedWebhook
terminal_payment.declinedTerminal payment cancelledWebhook
terminal_payment.cancelledTerminal payment errorWebhook
terminal_payment.errorTerminal refund succeededWebhook
terminal_refund.succeededTerminal void succeededWebhook
terminal_void.succeededOrder fulfilledWebhook
order.fulfilledUsage threshold reachedWebhook
usage.threshold.reachedUsage period finalizedWebhook
usage.period_finalizedUsage invoice createdWebhook
usage.invoice.createdUsage event ingestedWebhook
usage.event.ingestedUsage event rejectedWebhook
usage.event.rejectedUsage event excludedWebhook
usage.event.excludedUsage event quarantinedWebhook
usage.event.quarantinedUsage cap exceededWebhook
usage.cap.exceededMeter createdWebhook
meter.createdMeter updatedWebhook
meter.updatedMeter archivedWebhook
meter.archivedMeter price createdWebhook
meter_price.createdMeter price updatedWebhook
meter_price.updatedMeter price deactivatedWebhook
meter_price.deactivatedMandate signedWebhook
mandate.signedMandate createdWebhook
mandate.createdMandate activatedWebhook
mandate.activatedMandate rejected (AUDDIS)Webhook
mandate.auddis_rejectedMandate suspendedWebhook
mandate.suspendedMandate cancelledWebhook
mandate.cancelledCollection scheduledWebhook
collection.scheduledAdvance notice sentWebhook
collection.notice_sentCollection succeededWebhook
collection.succeededCollection failedWebhook
collection.failedIndemnity claimedWebhook
collection.indemnity_claimedSettlement createdWebhook
settlement.created