Direct Payments (Server SDK)
Direct payments are server-side payment submissions against an existing checkout/payment URN.
Use this flow when you can’t (or don’t want to) use Hosted Checkout — for example: kiosks, call centers, or a fully custom backend-driven UI.
If you’re building a standard web checkout, start with Hosted Checkout instead:
How it works
Create a checkout (get a payment URN)
Card (direct)
3D Secure (card)
If payment.three_ds?.iframe is present, render it and then poll for the final status:
See 3D Secure for browser fingerprint fields.
PSE (direct)
Cash (direct)
Webhook finality
Direct payment responses can be pending (especially PSE). Treat your webhook payment.status.updated handler as the source of truth.
See Webhooks Setup.
Cancel a subscription (recurring card)
If you created a recurring subscription via direct card payments (a payment with payment_type: 'subscription'), you can cancel future occurrences from your backend using the SDK helper:
bloque.payments.cancelSubscription(paymentUrn)
This endpoint is idempotent:
- calling twice returns
already_cancelled - if the graph already ended, it returns
graph_done - in-flight occurrences are not interrupted (they settle naturally)
SDK example
Request (curl)
Response
::::info
Prefer the SDK helper from your backend: bloque.payments.cancelSubscription(paymentUrn). The HTTP endpoint shown above is what the SDK calls under the hood.
::::