Amounts are integer minor units on every Payment API endpoint (Redirect, Embedded, and Hosted Checkout):
1000 = £10.00, 2550 = €25.50. See Amounts & Currencies.Before you start: sign up and grab your
client_id and client_secret from the Quidkey Console. You’ll exchange them for an access token on your first call.Base URL
All Payment API requests go tohttps://core.quidkey.com. There’s no separate sandbox host: set test_transaction: true to route a request to the sandbox (see Testing).
Three Ways to Accept a Payment
Every path uses the same OAuth credentials, integer minor-unit amounts, and webhooks. They differ only in where the buyer completes the payment and how much frontend code you write.| Redirect (Pay by Bank) | Embedded (with Stripe) | Hosted Checkout | |
|---|---|---|---|
| Best for | Fast launch, full control of your own UI | E-commerce checkouts already using Stripe | Invoicing, ad-hoc and no-code payments |
| Frontend effort | Redirect the buyer to a URL | Embed an iframe + Stripe mutual exclusion | None: share a link |
| Buyer details | Collected by you, sent at create time | Collected by you, sent at create time | Collected on the Quidkey checkout page |
| Buyer completes on | Quidkey-hosted bank page | Inline on your site, then their bank | Quidkey-hosted checkout page |
| Amount format | Integer minor units | Integer minor units | Integer minor units |
The Create → Redirect/Embed → Webhook Model
Every Payment API integration follows the same three-beat rhythm, no matter which path you pick:Create
Call the create endpoint for your chosen path with an authenticated request. You get back a
redirect_url, a payment_token, or a payment_link_url.Redirect or embed
Send the buyer to the bank page (Redirect / Hosted Checkout) or render the inline iframe (Embedded). The buyer approves the payment in their own bank.
Webhook
Quidkey sends a webhook to your backend with the final result. The webhook is the source of truth, not the browser redirect. Fulfil orders only when you receive
quidkey.payment_request.succeeded. Webhook delivery is a single attempt with no automatic retry, so the merchant status endpoint is your reconcile backstop for any event you never received.Start Here
Quickstart
Your first payment in about 10 minutes, end to end
Authentication
Exchange your client credentials for an access token
Accept a Payment
Redirect (Pay by Bank)
Create a payment and redirect the buyer to a Quidkey-hosted bank page
Embedded (with Stripe)
Add Quidkey alongside your existing Stripe Payment Element
Hosted Checkout
Generate a shareable checkout URL in one API call
Core Concepts
Authentication
Obtain, use, and refresh OAuth 2.0 access tokens
Idempotency
Send an
Idempotency-Key so retries never create duplicate paymentsWebhooks
Receive payment status updates and verify signatures
Errors
The error envelope, status codes, and how to handle failures
Amounts & Currencies
Integer minor units and ISO 4217 currencies across the Payment API
API Reference
Explore every endpoint with an interactive playground