Getting started
This guide summarizes the base ONVO integration flow.
Related API reference
1. Get your keys
Open the ONVO Dashboard and copy a test secret key and publishable key. Test keys do not interact with real banking networks.
export ONVO_SECRET_KEY="onvo_test_secret_key_..."
export ONVO_PUBLISHABLE_KEY="onvo_test_publishable_key_..."
PCI and card data
To reduce PCI scope in card integrations, create the payment method client-side with the publishable key and send only the paymentMethodId to your backend. Do not pass PAN, CVV, or full card data through your server. If you prefer to delegate card collection to ONVO, use Checkout or the web SDK.
2. Create a payment intent
A payment intent represents the charge lifecycle for an order.
curl https://api.onvopay.com/v1/payment-intents \
-X POST \
-H "Authorization: Bearer $ONVO_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 250000,
"currency": "CRC",
"description": "Order #1001"
}'
3. Confirm the payment
Confirm the intent with the buyer's payment method, or use Checkout if you want ONVO to host the payment experience.
4. Listen for webhooks
Register an endpoint to receive events like payment-intent.succeeded and reconcile your order internally.
5. Move to live mode
After the account is activated, switch to an onvo_live_ key and repeat end-to-end testing before opening the flow to buyers.