openapi: 3.0.1
info:
title: Huuray Balance Order API
description: Huuray API for B2B customers (last updated april 2025)
contact:
name: Support
email: tech@huuray.com
version: v4
tags:
- name: Order
paths:
/v4/Order:
post:
tags:
- Order
summary: Used to order giftcards
description: The giftcards will be sent out as redeemable links. They will be sent out automatically via Email or SMS, or returned in a callback if you have set one up and enabled this feature
parameters:
- name: X-API-NONCE
in: header
description: A random value that can only be used once every 60 days. (max 50 characters)
(this prevents your message from being re-transmitted, and thereby also replay attacks)
required: true
- name: X-API-HASH
in: header
description: 'The SHA512 hash of a concatenated string containing the following: ( API-SECRET + NONCE ).
(this is used to authenticate you)'
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OrderRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OrderResponse'
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/OrderResponse'
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/OrderResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Response'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Response'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Response'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Response'
'422':
description: Unprocessable Content
content:
application/json:
schema:
$ref: '#/components/schemas/Response'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Response'
security:
- ApiToken: []
components:
schemas:
OrderProduct:
title: Product (Order)
required:
- Currency
- Quantity
- Token
- Value
type: object
properties:
Token:
minLength: 1
type: string
description: The token used to identify a specific product
Value:
type: integer
description: The value denomination that you want to order. Must be specified in minor units (i.e. $5.00 should be sent as 500)
format: int32
Currency:
minLength: 1
type: string
description: The currency of the product
Quantity:
type: integer
description: The amount of codes you are ordering
format: int32
Expires:
type: string
description: An optional time and date for the giftcards to expire. If omitted, the default expiration will be used, and the value cannot exceed the default expiration
format: date-time
nullable: true
additionalProperties: false
description: An object containing information about a product
OrderVoucher:
title: Voucher (Order)
type: object
properties:
ID:
type: integer
description: The unique identifier of the voucher (used by resend and cancel endpoints)
format: int32
nullable: true
Code:
type: string
description: The redeemable code of the voucher. (This will be blanked unless ReturnCode is enabled in your B2B Account)
nullable: true
CVV:
type: string
description: A value used to verify the authenticity of the voucher (if applicable). (This will be blanked unless ReturnCode is enabled in your B2B Account)
nullable: true
RedeemLink:
type: string
description: The URL to redeem the voucher. (This will be blanked unless ReturnCode is enabled in your B2B Account)
nullable: true
Expires:
type: string
description: The time and date for when the voucher expires
format: date-time
Recipient:
$ref: '#/components/schemas/OrderRecipient'
additionalProperties: false
description: An object containing information about a voucher
OrderRecipient:
title: Recipient (Order)
type: object
properties:
Name:
type: string
description: The name of the recipient
nullable: true
Email:
type: string
description: The email address of the recipient (required if DeliveryMethod is set to Email)
nullable: true
Phone:
type: string
description: The phone number of the recipient (required if DeliveryMethod is set to SMS)
nullable: true
RefID:
type: string
description: An optional ID that you can use to identify the individual recipient
nullable: true
additionalProperties: false
description: An object containing information about a single recipient
OrderRequest:
title: Order Request
required:
- Product
- Sync
type: object
properties:
Product:
$ref: '#/components/schemas/OrderProduct'
Sync:
type: boolean
description: Determines whether the Order is a sync order (If set to true, then quantity is limited to 25 and vouchers are returned in the response)
RefID:
type: string
description: An optional ID that you can use to identify the resulting order with
nullable: true
DeliveryTemplateId:
type: integer
description: The template used to deliver the codes (Email, SMS, or no delivery if null)
format: int32
nullable: true
DeliveryDatetime:
type: string
description: An optional future date for delivery to take place, if null delivery will happen as soon as possible
format: date-time
nullable: true
PersonalMessage:
type: string
description: An optional message to include in all the SMS/Emails (if applicable)
nullable: true
Recipients:
type: array
items:
$ref: '#/components/schemas/OrderRecipient'
description: A list of all the recipients. It is required unless DeliveryTemplateId is null. If specified, the count must be either 1 or match Product.Quantity
nullable: true
additionalProperties: false
description: An object containing all the necessary information for ordering giftcards
Response:
type: object
properties:
Status:
type: integer
description: HttpStatus code for the response
format: int32
Message:
type: string
description: Deprecated, use StatusMessage instead. Error message describing an error that occurred during the processing of the request
nullable: true
deprecated: true
StatusMessage:
type: string
description: Status message describing an error that occurred during the processing of the request
nullable: true
additionalProperties: false
description: The minimal possible response for any request
OrderResponse:
title: Order Response
type: object
properties:
OrderUID:
type: string
description: A unique ID which will be connected to the resulting order
nullable: true
RefID:
type: string
description: The optional ID that you specified in the order request
nullable: true
Vouchers:
type: array
items:
$ref: '#/components/schemas/OrderVoucher'
description: The resulting vouchers for the placed order (contain data only for Sync request)
nullable: true
Status:
type: integer
description: HttpStatus code for the response
format: int32
Message:
type: string
description: Deprecated, use StatusMessage instead. Error message describing an error that occurred during the processing of the request
nullable: true
deprecated: true
StatusMessage:
type: string
description: Status message describing an error that occurred during the processing of the request
nullable: true
additionalProperties: false
description: The response from the Order request
securitySchemes:
ApiToken:
type: apiKey
description: The API-Token provided to you by Huuray.
name: X-API-TOKEN
in: header