Checkout
The Checkout API has two halves: public endpoints that a customer’s browser uses to pay a payment link (no auth), and authenticated endpoints you use to create and manage those links.
Public checkout
Identified by a payment reference, these endpoints require no authentication and are rate-limited per IP.
A business can select one or more checkout virtual account providers in Sales settings. Selected providers are shown at checkout, and Cloove randomly chooses one when generating a new virtual account. Existing active payment sessions keep their current provider. If the business has no eligible selection, checkout uses the workspace default for compatibility.
Payment links
Creating and managing payment links is done from your dashboard session (JWT + RBAC), under
the /api/payment-links prefix.
Building an integration with an API key instead of a dashboard session? Use
/v1/payment-links - the same feature, scoped by
payment_links:read / payment_links:write.
Create a payment link
POST /api/payment-links{
"targetType": "SALE",
"targetId": "60dd38ab-85f1-4e7c-9f63-7c6072199918",
"description": "Invoice INV-2026-001",
"expiresAt": "2026-08-01T00:00:00.000Z",
"redirectUrl": "https://merchant.example/orders/INV-2026-001"
}redirectUrl is optional and must be an absolute HTTP or HTTPS URL. After a terminal outcome,
the hosted checkout adds payment_status (paid, cancelled, or expired) and
payment_reference before redirecting the payer. Existing query parameters are preserved.
Listen for payment.received webhooks to know the moment a checkout is paid,
instead of polling check-payment.