Skip to content
StraventaDocs
Payment Methods

Kredivo (PayLater)

BNPL — payer authorises an installment plan in the Kredivo app

Kredivo is a Buy Now Pay Later (BNPL / PayLater) channel. The payer authorises an installment plan inside the Kredivo app and 505pay receives a payment.completed webhook once the credit decision lands. There is no 3-D-Secure step.

FieldValue
allowed_channels valuekredivo
TTL30 days
Refund supportProgrammatic (within the standard 30-day window)
SettlementT+1
Channel-typed response fieldspayment_url, checkout_url

Create intent

See the canonical create-intent example — pass allowed_channels: ["kredivo"].

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": 500000,
    "max_uses": 1,
    "allowed_channels": ["kredivo"]
  }'

The response includes payment_url (the Kredivo-hosted authorisation page) and checkout_url (the 505pay-hosted checkout that wraps it). Redirect the payer to checkout_url to let 505pay handle the BNPL flow end-to-end.

Sandbox simulator

curl -X POST "https://sandbox.505pay.link/v1/payments/intents/$INTENT_ID/sandbox-complete" \
  -H "Authorization: Bearer $PAYOPS_SECRET_KEY"

Triggers payment.completed webhook + flips intent status to paid.

Webhook events

  • payment_intent.created — fired on POST intent.
  • payment.completed — fired when Kredivo approves the installment plan.
  • payment.failed — fired if the credit application is declined.
  • payment_intent.expired — fired if the payer never authorises within the 30-day TTL.

See Payment lifecycle.

Minimum amount

Kredivo enforces a per-transaction minimum (typically Rp 100,000). 505pay forwards the response code verbatim — check the merchant dashboard for the current floor.

Was this page helpful?

On this page