API Reference
POST /checkout
Create a hosted checkout session and get a payment process URL.
POST /checkout
POST
/checkoutCreate a payment session and receive a payment_process_url to redirect your
customer to iPint's hosted checkout page.
Headers
| Header | Required | Description |
|---|---|---|
apikey | Yes | Your API key |
Content-Type | Yes | application/json |
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
client_email_id | string | Yes | Customer's email address |
client_preferred_fiat_currency | string | Yes | Customer's fiat currency code (e.g. USD, INR) |
amount | string | No | Payment amount in fiat. If omitted, customer enters it on the checkout page |
merchant_id | string | Conditional | Required for B2B / aggregator flows |
merchant_website | string | Yes | URL to redirect to after payment completes |
invoice_callback_url | string | Yes | Your webhook URL for payment status updates |
curl example
curl --location --request POST 'https://api.ipint.io:8003/checkout' \
--header 'apikey: your-api-key' \
--header 'Content-Type: application/json' \
--data-raw '{
"client_email_id": "user@email.id",
"client_preferred_fiat_currency": "INR",
"amount": "4999.65",
"merchant_website": "https://merchant.redirect",
"invoice_callback_url": "https://merchant.web/callback"
}'JavaScript example
const response = await fetch(
"https://api.ipint.io:8003/checkout",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"apikey": "your-api-key"
},
body: JSON.stringify({
client_email_id: "customer@email.com",
client_preferred_fiat_currency: "USD",
amount: "25.00",
merchant_website: "https://yoursite.com/thank-you",
invoice_callback_url: "https://yoursite.com/webhook"
}),
}
);
const { payment_process_url, session_id } = await response.json();
// Redirect customer → payment_process_urlSuccess response (200)
Mainnet:
{
"session_id": "voZ3pYmiE16FLaSfFmytouwFfcjR4Zom8",
"payment_process_url": "https://ipint.io/checkout?id=voZ3pYmiE16FLaSfFmytouwFfcjR4Zom8"
}Testnet:
{
"session_id": "voZ3pYmiE16FLaSfFmytouwFfcjR4Zom8",
"payment_process_url": "https://ipint.io/test-checkout?id=voZ3pYmiE16FLaSfFmytouwFfcjR4Zom8"
}| Field | Type | Description |
|---|---|---|
session_id | string | Unique session ID (same as invoice_id in callbacks and /invoice queries) |
payment_process_url | string | URL to redirect the customer to |
Use the session_id to check payment status later via
GET /invoice.
Error response (400)
{ "error": true, "message": "error-message" }Integration options
The payment_process_url can be used in three ways:
1. Redirect (default)
Redirect the customer to the URL:
window.location.href = payment_process_url;2. Pop-in iFrame
Embed the checkout in your page:
<iframe
width="1270"
height="740"
src="payment_process_url-from-checkout-endpoint"
></iframe>Example:
<iframe
width="1270"
height="740"
src="https://ipint.io/checkout?id=voZ3pYmiE16FLaSfFmytouwFfcjR4Zom8"
></iframe>3. Custom APIs
For fully custom integration, use the POST /invoice endpoint instead to generate QR codes and build your own UI.
Try it live
Open in Swagger UI →Next steps
- Hosted Checkout guide — full flow walkthrough
- GET /invoice — check payment status
- Webhooks — callback payload reference