Skip to content
Developer guide

Host-to-Host overview

Server-to-server integration: your backend calls ours directly. The buyer completes the required consent step on Key2Pay before payment creation.

Context and key considerations

In a host-to-host integration your server talks to ours. You authenticate with a secret key. The default version 2026-05-01 preserves HTTP 200 with a real transactionId and provider instructions. The examples below explicitly opt in with Key2Pay-Version: 2026-10-12 and receive HTTP 201 with status: awaiting_consent,transactionId: null and a checkoutUrl. Redirect the buyer to that Key2Pay URL to review the payment and explicitly accept. Only then is the provider payment created. QR codes, bank instructions and provider URLs stay protected until acceptance. Read the consent integration contractbefore using the payment examples below; completed transactions are retrieved separately.

1 / 4

What host-to-host means here

Concretely: every call in this section is made from your backend, with a secret key that never reaches a browser. That single constraint is what makes the model work — it is why the API can trust the caller with money movement, buyer data and payouts.

Secret keys only. Every endpoint in this section requires an sk_live_ / sk_test_ key (or a bearer token minted from one). Publishable keys (pk_*) are safe to expose in a browser or mobile app precisely because they cannot create charges, issue refunds, read customer data or send payouts. A publishable key on any of these calls returns 403 key_kind_not_allowed.
Key2Pay Developer documentationAPI v1
Documentation
Dashboard