Moist API Reference
Send Reward API
Send a digital reward to a recipient using organization balance.
Base URL: https://moist.gg/api/v1Auth: x-api-keyDeveloper plan required
Quick start
Create an API key from your organization settings after subscribing to Developer.
Manage API keysSend a digital reward to a recipient. Reward amounts use the reward's face-value currency. Your organization balance is always held in USD and non-USD rewards are debited from that USD balance using Moist's internal exchange rate (Check Balance page).
Endpoint: POST /rewards/send
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Your API key |
| Content-Type | string | Yes | Must be application/json |
Request Body
{
"rewardCode": "gifq_eyJicmFuZCI6ImFtYXpvbiIsInByb2R1Y3RJbmRleCI6MH0",
"amount": "50.00",
"recipientEmail": "recipient@example.com",
"quantity": 1,
"currency": "USD",
"country": "US"
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| rewardCode | string | Yes | Unique identifier for the reward type |
| amount | string | Yes | Amount for each reward |
| recipientEmail | string | Yes | Email address of the recipient |
| quantity | number | No | Number of rewards to send (default: 1, maximum: 10) |
| currency | string | No | 3-letter reward currency code (e.g., USD, GBP). When provided, it must match the selected reward. |
| country | string | No | 2-letter country code where the GIFQ gift card is redeemable. Defaults to the reward's first available country. |
Response
{
"success": true,
"orderId": "ord_123abc",
"amount": 50.0,
"currency": "USD"
}Example Request
curl -X POST 'https://moist.gg/api/v1/rewards/send' -H 'x-api-key: rpl_your_api_key' -H 'Content-Type: application/json' -d '{
"rewardCode": "gifq_eyJicmFuZCI6ImFtYXpvbiIsInByb2R1Y3RJbmRleCI6MH0",
"amount": "50.00",
"recipientEmail": "recipient@example.com",
"quantity": 1,
"currency": "USD",
"country": "US"
}'Error Codes
| Status | Code | Description |
|---|---|---|
| 400 | invalid_request | Invalid request parameters |
| 400 | insufficient_balance | Organization has insufficient balance |
| 401 | unauthorized | Invalid or missing API key |
| 402 | subscription_required | Developer subscription is required |
| 404 | not_found | Reward code not found |
| 502 | reward_provider_unavailable | Reward provider is temporarily unavailable |
| 500 | server_error | Internal server error |
Order Status
After sending a reward, the order will go through the following statuses which you can check in your dashboard.
| Status | Description |
|---|---|
| pending_review | Order has been created and debited from USD balance |
| processing | Reward provider order is being processed |
| completed | Reward has been successfully delivered |
| failed | Order failed to process |
When an order is completed, the recipient will receive an email with their reward details.