moist
Docs
moist
Docs
Introduction
AuthenticationBalance APISend Reward API
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 keys

Send 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

NameTypeRequiredDescription
x-api-keystringYesYour API key
Content-TypestringYesMust be application/json

Request Body

{
    "rewardCode": "gifq_eyJicmFuZCI6ImFtYXpvbiIsInByb2R1Y3RJbmRleCI6MH0",
    "amount": "50.00",
    "recipientEmail": "recipient@example.com",
    "quantity": 1,
    "currency": "USD",
    "country": "US"
}

Parameters

ParameterTypeRequiredDescription
rewardCodestringYesUnique identifier for the reward type
amountstringYesAmount for each reward
recipientEmailstringYesEmail address of the recipient
quantitynumberNoNumber of rewards to send (default: 1, maximum: 10)
currencystringNo3-letter reward currency code (e.g., USD, GBP). When provided, it must match the selected reward.
countrystringNo2-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

StatusCodeDescription
400invalid_requestInvalid request parameters
400insufficient_balanceOrganization has insufficient balance
401unauthorizedInvalid or missing API key
402subscription_requiredDeveloper subscription is required
404not_foundReward code not found
502reward_provider_unavailableReward provider is temporarily unavailable
500server_errorInternal server error

Order Status

After sending a reward, the order will go through the following statuses which you can check in your dashboard.

StatusDescription
pending_reviewOrder has been created and debited from USD balance
processingReward provider order is being processed
completedReward has been successfully delivered
failedOrder failed to process

When an order is completed, the recipient will receive an email with their reward details.

Balance API

Retrieve your organization's current USD balance.