Skip to Content
SDKsNode.js

Node.js examples

All examples use the Inzi REST API directly. No SDK package required.


Create checkout (fetch)

const res = await fetch('https://api.inzilink.com/api/v1/checkouts', { method: 'POST', headers: { 'Authorization': `Bearer ${process.env.INZI_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ amount: '25.00', currency: 'USD', metadata: { order_id: 'ORD-123' }, redirect_url: 'https://yoursite.com/success', webhook_url: 'https://yoursite.com/webhooks/inzi', }), }) const { checkout_url, id } = await res.json()

Create checkout (axios)

import axios from 'axios' const { data } = await axios.post( 'https://api.inzilink.com/api/v1/checkouts', { amount: '25.00', currency: 'USD', metadata: { order_id: 'ORD-123' }, redirect_url: 'https://yoursite.com/success', }, { headers: { Authorization: `Bearer ${process.env.INZI_API_KEY}` }, }, ) const { checkout_url } = data

Get checkout status

const res = await fetch( `https://api.inzilink.com/api/v1/checkouts/${checkoutId}`, { headers: { Authorization: `Bearer ${process.env.INZI_API_KEY}` } }, ) const checkout = await res.json() console.log(checkout.status) // pending | completed | expired

Verify webhook signature

import crypto from 'crypto' function verifyInziWebhook(rawBody, headers, secret) { const timestamp = headers['x-inzi-timestamp'] const signature = headers['x-inzi-signature'].replace('sha256=', '') const expected = crypto .createHmac('sha256', secret) .update(`${timestamp}.${rawBody}`) .digest('hex') return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature)) }

List checkouts with pagination

const params = new URLSearchParams({ status: 'completed', limit: '20', offset: '0', }) const res = await fetch( `https://api.inzilink.com/api/v1/checkouts?${params}`, { headers: { Authorization: `Bearer ${process.env.INZI_API_KEY}` } }, ) const { data, total } = await res.json()