Card payments in your product, this afternoon.
Create an order with one API call, send your customer to Inkress's payment page, and get a webhook when it's paid. Card details never touch your server.
Free test modeVisa and MastercardJMD and USD
NodecURLPHPcheckout.ts
const { result } = await inkress.orders.create({ reference_id: "order_1042", kind: "online", total: 2500, currency_code: "JMD", customer: { email: "tanya@example.com" }, }); redirect(result.payment_urls.payment_url);
orders.paid deliveredorder_1042 · 200 · 182 ms
Three steps to a paid order
Create an order
Send the total, the currency and your own reference to POST /api/v1/orders, or call inkress.orders.create.
Send them to pay
Redirect to payment_urls.payment_url, or share the short link or QR code that comes with every order.
Hear when it's paid
orders.paid arrives at your webhook, signed. Check the signature, then ship, book or unlock.
A payment page you don't have to build
- Visa and Mastercard, with 3-D SecureThe bank check happens on Inkress's page. You only see the result.
- JMD or USDSet
currency_codeper order. - Back to your siteSet
meta_data.return_urland the customer lands on your thank-you page after paying. - Discount codes priced on the serverPass a
discount_code; Inkress checks it and re-prices the order, so a tampered total never goes through.
KK
Kingston KlosetOrder order_1042
You are paying
J$2,500.00
4012 0000 0002 0071
12 / 28
•••
Pay J$2,500.00
PaidBack to kloset.shop
Secured by Inkress
Trust the webhook, not the redirect
- Signed with your secretEvery delivery carries an
X-Inkress-Webhook-Signatureheader. The SDK checks it in one call. - Retried on its ownIf your server is down, the delivery tries again later. You can replay any delivery from the portal.
- Same in test modePay with test card
4012 0000 0002 0071and the webhook arrives exactly as it will in live.
Verify a webhookserver.ts
app.post("/hooks/inkress", raw, async (req, res) => { await inkress.webhookUrls.verify( req.body.toString(), req.get("X-Inkress-Webhook-Signature"), process.env.INKRESS_WEBHOOK_SECRET, ); const event = JSON.parse(req.body); if (event.event === "orders.paid") await fulfil(event.order); res.sendStatus(200); });
Building card payments yourself
- Card numbers on your servers, and the security audits that come with them
- A processor contract and merchant account to arrange
- 3-D Secure screens and failure cases to build
- Your own retries and matching when a payment notice goes missing
With Inkress
- Card details go into Inkress's payment page, never your server
- One Inkress account, with Visa and Mastercard
- 3-D Secure handled on the page
- Signed webhooks, retried and replayable, with a log of every delivery
Your customers pay the way they already do.
A card page that works on any phone, with the business's name at the top.
Take your first test payment today
Create an organisation, copy your test key and run the quick start. Live keys come once your business details are checked.