Integrations & API
Automate gift sending with our open API.
Send HuurayPay gift cards from your HR system, CRM or backend. Open REST API, free sandbox and quick help from our engineering team.
Use cases
What you can automate.
From a single trigger in your HRIS to thousands of gifts a month from your product backend — HuurayPay fits the stack you already run.
Trigger gifts from your HRIS
Birthdays, anniversaries, onboarding and offboarding — send HuurayPay straight from the system your people team already uses.
Reward without leaving your CRM
Pay out on closed deals, NPS responses, referrals and survey completions. Every gift is tracked back to the record that triggered it.
Embed gifting in your own product
Drop HuurayPay into onboarding flows, loyalty programs and customer journeys with a clean REST API your team will actually enjoy.
Example
Send a gift card in a single request.
Grab your API key from the HuurayPay dashboard. The sandbox is free — every endpoint behaves exactly like production.
- REST + JSON over HTTPS
- Language-agnostic — use the stack you already have
- Clear documentation with copy-paste examples
- Webhooks for delivery, redemption and reconciliation
const response = await fetch(
"https://api.huuray.com/v1/orders",
{
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.HUURAY_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
recipient: { email: "maria@firma.dk" },
amount: 500,
currency: "DKK",
message: "Tillykke med fødselsdagen!"
})
}
);
// => { status: 201, id: "order_abc123" }Embedding
Embed the order flow in your own portal.
Drop the full HuurayPay purchase flow into your employee portal, intranet or customer area as a single iframe. Pre-fill recipient details with query parameters — or pass in an entire recipients array.
- Pre-fill recipient name, email and phone
- Pre-fill company, amount and scheduled send time
- Pass in an entire recipients list in one go
- Inherits your brand colours and logo automatically
Recipient
Amount
Get started
Test free in the sandbox.
Create a HuurayPay account, grab your API key and send test orders to the sandbox — no commitment, no card required.
- 01
Create a free account
Takes under two minutes. No card details required to start exploring the platform.
- 02
Grab your API key
Available straight from the HuurayPay dashboard the moment you sign in.
- 03
Build and test
The sandbox uses the exact same endpoints as production. Switch to a prod key when you are ready to ship.
TLS-only endpoints, scoped API keys and full audit logs on every order.
From a handful of birthdays to bulk campaigns across 170+ countries.
React to delivery, redemption and refund events in your own systems.
Talk to a real engineer when you are scoping or debugging an integration.
Webhooks
React the moment a gift moves.
HuurayPay pushes signed JSON events to your endpoint whenever an order is created, delivered, redeemed or refunded — so your HRIS, CRM or data warehouse stays in sync without polling.
order.createdFired the moment a gift order is accepted by the API. Use it to log the order in your own system.
order.deliveredFired when the recipient receives the gift on the chosen channel — email, SMS or link.
order.redeemedFired when the recipient picks a gift card. Perfect for reconciliation and reporting.
order.refundedFired when an unredeemed gift is refunded back to your balance.
POST /your-endpoint
Huuray-Signature: t=1716998400,
v1=9f8c2b1e4a…
Content-Type: application/json
{
"id": "evt_01HXYZ…",
"type": "order.delivered",
"created": 1716998400,
"data": {
"order_id": "order_abc123",
"recipient": {
"email": "maria@firma.dk",
"name": "Maria Olsen"
},
"amount": 500,
"currency": "DKK",
"delivered_at": "2026-05-27T09:20:00Z",
"channel": "email"
}
}import { createHmac, timingSafeEqual } from "crypto";
export function verifyHuurayWebhook(
rawBody: string,
header: string,
secret: string
) {
// Header: "t=<timestamp>,v1=<signature>"
const parts = Object.fromEntries(
header.split(",").map((p) => p.split("="))
);
const signed = `${parts.t}.${rawBody}`;
const expected = createHmac("sha256", secret)
.update(signed)
.digest("hex");
const ok = timingSafeEqual(
Buffer.from(parts.v1, "hex"),
Buffer.from(expected, "hex")
);
// Reject anything older than 5 minutes
const fresh =
Math.abs(Date.now() / 1000 - Number(parts.t)) < 300;
return ok && fresh;
}Compute the HMAC-SHA256 over `${timestamp}.${rawBody}` with your webhook secret and compare in constant time.
Drop events older than 5 minutes to prevent replay attacks, even if the signature is valid.
Acknowledge within a few seconds and queue heavy work — HuurayPay retries with exponential backoff on non-2xx responses.
Questions?
Common questions about integration.
Does the API cost extra?+
No. API access and the sandbox are included with every HuurayPay business account — you only pay for the gift cards you actually send.
Where do I find my API key?+
Sign in to the HuurayPay dashboard and open the developer settings. Sandbox and production keys are listed there separately.
Which programming languages are supported?+
Any language that can speak HTTPS — Node, Python, .NET, Go, PHP, Ruby and more. The API is plain REST + JSON, so it fits any stack.
Can I test the integration without using real money?+
Yes. The sandbox uses the exact same endpoints as production and accepts test orders for free. Switch to a production key when you are ready.
Can I embed the order flow on my own site?+
Yes — the full HuurayPay purchase flow can be embedded as an iframe with pre-filled recipient details, amounts and branding.
Can you help us with the integration?+
Absolutely. Reach out and our engineering team will help scope the integration, review your design and unblock you along the way.
Need technical help or a custom integration? Get in touch.
Your next reward is three clicks away
No setup fee. No monthly cost. Just a 3% service fee on what you send — and a gift experience your recipients will remember. Join 10,000+ companies already using Huuray.
