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 } = dataGet 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 | expiredVerify 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()