curl --request POST \
--url https://api.wizzgift.com/b2b/deposits \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"amount": 500,
"paymentMethodId": "<string>"
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({amount: 500, paymentMethodId: '<string>'})
};
fetch('https://api.wizzgift.com/b2b/deposits', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.wizzgift.com/b2b/deposits"
payload = {
"amount": 500,
"paymentMethodId": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wizzgift.com/b2b/deposits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => 500,
'paymentMethodId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"deposit": {
"depositId": "depb_a8Xk2mQ9pL1r",
"amount": 123,
"currency": "USD",
"paymentCurrency": "<string>",
"status": "pending",
"expiresAt": 1753142400000,
"createdAt": 1753142400000,
"userId": "<string>",
"email": "<string>",
"confirmedAt": 1753142400000,
"updatedAt": 1753142400000
},
"paymentAmount": 123,
"payment": {
"paymentMethodId": "<string>",
"status": "pending",
"paymentId": "<string>",
"appliedAmount": 123,
"appliedCurrency": "<string>",
"providerAmount": 123,
"providerCurrency": "<string>",
"providerPaymentId": "<string>",
"paymentUrl": "<string>",
"paymentAddress": "<string>",
"memo": "<string>",
"destinationTag": "<string>",
"amount": "<string>",
"currency": "<string>",
"network": "Bitcoin",
"exchangeRate": "<string>",
"expiresAt": 1753142400000,
"qr": {
"withAmount": "<string>",
"withoutAmount": "<string>"
},
"fee": {
"percentage": 123,
"fixed": 123,
"recommended": true,
"feeUnit": "sat/vB"
},
"errorMessage": "<string>"
},
"availablePaymentMethods": [
{
"id": "<string>",
"name": "Bitcoin",
"type": "<string>",
"status": "active",
"description": "<string>",
"instructions": "<string>",
"imageUrl": "<string>",
"ranking": 123,
"feeInfo": "<string>",
"minAmountUSD": 123,
"tag": "Recommended",
"tagColor": "<string>",
"tagTextColor": "<string>",
"network": "Bitcoin",
"identifier": "<string>",
"symbol": "BTC",
"coinImageUrl": "<string>",
"memoRequired": true,
"refundable": true,
"minRefundAmountUSD": 123,
"refundDescription": "<string>",
"refundNotes": "<string>"
}
]
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid input"
},
"requestId": "req_8f3k2"
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or expired API key"
},
"requestId": "req_8f3k2"
}{
"error": {
"code": "FORBIDDEN",
"message": "Retailer API access is disabled for this account"
},
"requestId": "req_8f3k2"
}{
"error": {
"code": "B2B_LIMIT_EXCEEDED",
"message": "Daily spend cap exceeded",
"details": {
"limit": "dailySpendCapUSD",
"limitValue": 5000,
"current": 4800,
"requested": 400,
"window": "day",
"tier": "starter"
}
},
"requestId": "req_8f3k2"
}{
"error": "Too many requests",
"message": "<string>"
}Create a balance top-up (optionally with payment invoice in one call)
amount is the USD value to credit to your balance. You pay in
paymentCurrency — the response’s paymentAmount is the converted
amount due. Include paymentMethodId to also create the provider
invoice in the same round trip; otherwise pick from the returned
availablePaymentMethods and pay via a follow-up (the deposit expires
after ~60 minutes unpaid). Each deposit is capped by your tier’s
maxDepositUSD. The balance payment method cannot be used here.
curl --request POST \
--url https://api.wizzgift.com/b2b/deposits \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"amount": 500,
"paymentMethodId": "<string>"
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({amount: 500, paymentMethodId: '<string>'})
};
fetch('https://api.wizzgift.com/b2b/deposits', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.wizzgift.com/b2b/deposits"
payload = {
"amount": 500,
"paymentMethodId": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wizzgift.com/b2b/deposits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => 500,
'paymentMethodId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"deposit": {
"depositId": "depb_a8Xk2mQ9pL1r",
"amount": 123,
"currency": "USD",
"paymentCurrency": "<string>",
"status": "pending",
"expiresAt": 1753142400000,
"createdAt": 1753142400000,
"userId": "<string>",
"email": "<string>",
"confirmedAt": 1753142400000,
"updatedAt": 1753142400000
},
"paymentAmount": 123,
"payment": {
"paymentMethodId": "<string>",
"status": "pending",
"paymentId": "<string>",
"appliedAmount": 123,
"appliedCurrency": "<string>",
"providerAmount": 123,
"providerCurrency": "<string>",
"providerPaymentId": "<string>",
"paymentUrl": "<string>",
"paymentAddress": "<string>",
"memo": "<string>",
"destinationTag": "<string>",
"amount": "<string>",
"currency": "<string>",
"network": "Bitcoin",
"exchangeRate": "<string>",
"expiresAt": 1753142400000,
"qr": {
"withAmount": "<string>",
"withoutAmount": "<string>"
},
"fee": {
"percentage": 123,
"fixed": 123,
"recommended": true,
"feeUnit": "sat/vB"
},
"errorMessage": "<string>"
},
"availablePaymentMethods": [
{
"id": "<string>",
"name": "Bitcoin",
"type": "<string>",
"status": "active",
"description": "<string>",
"instructions": "<string>",
"imageUrl": "<string>",
"ranking": 123,
"feeInfo": "<string>",
"minAmountUSD": 123,
"tag": "Recommended",
"tagColor": "<string>",
"tagTextColor": "<string>",
"network": "Bitcoin",
"identifier": "<string>",
"symbol": "BTC",
"coinImageUrl": "<string>",
"memoRequired": true,
"refundable": true,
"minRefundAmountUSD": 123,
"refundDescription": "<string>",
"refundNotes": "<string>"
}
]
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid input"
},
"requestId": "req_8f3k2"
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or expired API key"
},
"requestId": "req_8f3k2"
}{
"error": {
"code": "FORBIDDEN",
"message": "Retailer API access is disabled for this account"
},
"requestId": "req_8f3k2"
}{
"error": {
"code": "B2B_LIMIT_EXCEEDED",
"message": "Daily spend cap exceeded",
"details": {
"limit": "dailySpendCapUSD",
"limitValue": 5000,
"current": 4800,
"requested": 400,
"window": "day",
"tier": "starter"
}
},
"requestId": "req_8f3k2"
}{
"error": "Too many requests",
"message": "<string>"
}Authorizations
API key (wg_live_…) created in the dashboard (Account → API Keys).
Shown once at creation; only a hash is stored server-side.
Body
USD value to credit to your balance. Capped by tier maxDepositUSD.
x >= 0.1500
Currency you will pay in.
USD, EUR, GBP, AUD, CAD, INR, BTC, LTC, USDC, USDT, XRP, XLM Optional — also create the provider invoice in this call.
Response
Deposit created. With paymentMethodId: includes payment (invoice). Without: includes availablePaymentMethods.
Show child attributes
Show child attributes
Amount due in paymentCurrency (USD amount converted, rounded up to 2 dp).
Present when paymentMethodId was supplied.
Show child attributes
Show child attributes
Present when paymentMethodId was NOT supplied. Balance method excluded.
Show child attributes
Show child attributes