Payment Methods
OVO
OVO e-wallet — T+1 settlement, programmatic refunds
OVO accepts payment by redirecting the payer into the OVO mobile app (or web flow for non-app users). Refunds credit back to the payer's OVO balance within 1–3 business days.
| Field | Value |
|---|---|
allowed_channels value | ewallet_ovo |
| TTL | 15 min |
| Refund support | Programmatic via POST /v1/payments/intents/{id}/attempts/{attemptId}/refunds |
| Settlement | T+1 |
| Channel-typed response fields | redirect_url (deeplink to OVO app or web flow) |
Create intent
curl -X POST https://sandbox.505pay.link/v1/payments/intents \
-H "Authorization: Bearer $PAYOPS_SECRET_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $YOUR_KEY" \
-d '{
"merchant_id": "'"$PAYOPS_MERCHANT_ID"'",
"amount_idr": 85000,
"max_uses": 1,
"allowed_channels": ["ewallet_ovo"]
}'Redirect the payer to redirect_url (or checkout_url for the 505pay-hosted flow). On mobile this opens the OVO app; on desktop it shows the OVO web checkout.
Sandbox simulator
curl -X POST "https://sandbox.505pay.link/v1/payments/intents/$INTENT_ID/sandbox-complete" \
-H "Authorization: Bearer $PAYOPS_SECRET_KEY"Refunds
curl -X POST \
"https://sandbox.505pay.link/v1/payments/intents/$INTENT_ID/attempts/$ATTEMPT_ID/refunds" \
-H "Authorization: Bearer $PAYOPS_SECRET_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: refund-$INTENT_ID-1" \
-d '{"amount_idr": 85000, "reason": "customer_request"}'Webhook events
payment_intent.createdpayment.completedpayment_intent.expiredpayment.refunded
See Payment lifecycle.
Was this page helpful?