curl -X POST "https://api.chariow.com/v1/checkout" \
-H "Authorization: Bearer sk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"product_id": "prd_abc123xyz",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe",
"phone": {
"number": "1234567890",
"country_code": "US"
},
"discount_code": "SAVE20",
"redirect_url": "https://yoursite.com/thank-you",
"customer_ip": "203.0.113.42",
"custom_metadata": {
"order_ref": "ORD-123",
"source": "landing_page"
}
}'
const response = await fetch('https://api.chariow.com/v1/checkout', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_live_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
product_id: 'prd_abc123xyz',
email: 'customer@example.com',
first_name: 'John',
last_name: 'Doe',
phone: {
number: '1234567890',
country_code: 'US'
},
discount_code: 'SAVE20',
redirect_url: 'https://yoursite.com/thank-you',
customer_ip: '203.0.113.42',
custom_metadata: {
order_ref: 'ORD-123',
source: 'landing_page'
}
})
});
const result = await response.json();
if (result.data.step === 'payment') {
// Redirect to payment URL
window.location.href = result.data.payment.checkout_url;
} else if (result.data.step === 'completed') {
// Free product - sale completed
console.log('Purchase completed:', result.data.purchase.id);
}
$ch = curl_init('https://api.chariow.com/v1/checkout');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer sk_live_your_api_key',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'product_id' => 'prd_abc123xyz',
'email' => 'customer@example.com',
'first_name' => 'John',
'last_name' => 'Doe',
'phone' => [
'number' => '1234567890',
'country_code' => 'US'
],
'discount_code' => 'SAVE20',
'redirect_url' => 'https://yoursite.com/thank-you',
'customer_ip' => '203.0.113.42',
'custom_metadata' => [
'order_ref' => 'ORD-123',
'source' => 'landing_page'
]
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
if ($data['data']['step'] === 'payment') {
// Redirect to payment URL
header('Location: ' . $data['data']['payment']['checkout_url']);
} elseif ($data['data']['step'] === 'completed') {
// Free product - sale completed
echo 'Purchase completed: ' . $data['data']['purchase']['id'];
}
import requests
response = requests.post(
'https://api.chariow.com/v1/checkout',
headers={
'Authorization': 'Bearer sk_live_your_api_key',
'Content-Type': 'application/json'
},
json={
'product_id': 'prd_abc123xyz',
'email': 'customer@example.com',
'first_name': 'John',
'last_name': 'Doe',
'phone': {
'number': '1234567890',
'country_code': 'US'
},
'discount_code': 'SAVE20',
'redirect_url': 'https://yoursite.com/thank-you',
'customer_ip': '203.0.113.42',
'custom_metadata': {
'order_ref': 'ORD-123',
'source': 'landing_page'
}
}
)
data = response.json()
if data['data']['step'] == 'payment':
# Redirect to payment URL
checkout_url = data['data']['payment']['checkout_url']
print(f'Redirect to: {checkout_url}')
elif data['data']['step'] == 'completed':
# Free product - sale completed
print(f"Purchase completed: {data['data']['purchase']['id']}")
{
"data": {
"step": "payment",
"message": null,
"purchase": {
"id": "sal_abc123xyz",
"status": "awaiting_payment",
"original_amount": {
"value": 99,
"formatted": "$99.00",
"short": "99",
"currency": "USD"
},
"amount": {
"value": 79.20,
"formatted": "$79.20",
"short": "79",
"currency": "USD"
},
"discount_amount": {
"value": 19.80,
"formatted": "$19.80",
"short": "20",
"currency": "USD"
},
"payment": {
"amount": {
"value": 79.20,
"formatted": "$79.20",
"short": "79",
"currency": "USD"
},
"status": "awaiting_payment",
"exchange_rate": {
"value": 1,
"formatted": "$1.00",
"short": "1",
"currency": "USD"
}
},
"store": {
"id": "str_xyz789",
"name": "My Store"
},
"product": {
"id": "prd_abc123xyz",
"name": "Premium Course",
"slug": "premium-course"
},
"customer": {
"id": "cus_def456",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe"
},
"discount": {
"id": "dis_ghi789",
"code": "SAVE20",
"type": "percentage",
"value": 20
},
"post_purchase": {
"files": [],
"licenses": [],
"courses": []
}
},
"payment": {
"checkout_url": "https://payment.example.com/checkout?token=abc123",
"transaction_id": "txn_xyz789abc"
}
}
}
{
"data": {
"step": "completed",
"message": null,
"purchase": {
"id": "sal_abc123xyz",
"status": "completed",
"original_amount": {
"value": 0,
"formatted": "$0.00",
"short": "0",
"currency": "USD"
},
"amount": {
"value": 0,
"formatted": "$0.00",
"short": "0",
"currency": "USD"
},
"discount_amount": {
"value": 0,
"formatted": "$0.00",
"short": "0",
"currency": "USD"
},
"payment": {
"amount": null,
"status": "completed",
"exchange_rate": {
"value": 1,
"formatted": "$1.00",
"short": "1",
"currency": "USD"
}
},
"store": {
"id": "str_xyz789",
"name": "My Store"
},
"product": {
"id": "prd_abc123xyz",
"name": "Free eBook",
"slug": "free-ebook"
},
"customer": {
"id": "cus_def456",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe"
},
"discount": null,
"post_purchase": {
"files": [
{
"id": "fil_jkl012",
"name": "ebook.pdf",
"download_url": "https://files.chariow.com/download/..."
}
],
"licenses": [],
"courses": []
}
},
"payment": {
"checkout_url": null,
"transaction_id": null
}
}
}
{
"message": "Product not found",
"data": [],
"errors": []
}
{
"message": "Pay-what-you-want products are not supported via the Public API. Please redirect customers to your Chariow store or use the Snap Widget embed on your website.",
"data": [],
"errors": []
}
{
"message": "Service and Coaching products are not supported via the Public API. Please redirect customers to your Chariow store or use the Snap Widget embed on your website.",
"data": [],
"errors": []
}
{
"message": "The email field must be a valid email address.",
"data": [],
"errors": {
"email": [
"The email field must be a valid email address."
],
"phone.number": [
"The phone.number field is required."
]
}
}
{
"message": "The discount code is invalid or has expired.",
"data": [],
"errors": {
"discount_code": [
"The discount code is invalid or has expired."
]
}
}
{
"message": "Please enter your address for shipping. (and 4 more errors)",
"data": [],
"errors": {
"address": [
"Please enter your address for shipping."
],
"city": [
"Please enter your city for shipping."
],
"state": [
"Please enter your state/region for shipping."
],
"country": [
"Please enter your country for shipping."
],
"zip": [
"Please enter your postal code for shipping."
]
}
}
Checkout
Initiate Checkout
Create a new checkout session for a product purchase
curl -X POST "https://api.chariow.com/v1/checkout" \
-H "Authorization: Bearer sk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"product_id": "prd_abc123xyz",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe",
"phone": {
"number": "1234567890",
"country_code": "US"
},
"discount_code": "SAVE20",
"redirect_url": "https://yoursite.com/thank-you",
"customer_ip": "203.0.113.42",
"custom_metadata": {
"order_ref": "ORD-123",
"source": "landing_page"
}
}'
const response = await fetch('https://api.chariow.com/v1/checkout', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_live_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
product_id: 'prd_abc123xyz',
email: 'customer@example.com',
first_name: 'John',
last_name: 'Doe',
phone: {
number: '1234567890',
country_code: 'US'
},
discount_code: 'SAVE20',
redirect_url: 'https://yoursite.com/thank-you',
customer_ip: '203.0.113.42',
custom_metadata: {
order_ref: 'ORD-123',
source: 'landing_page'
}
})
});
const result = await response.json();
if (result.data.step === 'payment') {
// Redirect to payment URL
window.location.href = result.data.payment.checkout_url;
} else if (result.data.step === 'completed') {
// Free product - sale completed
console.log('Purchase completed:', result.data.purchase.id);
}
$ch = curl_init('https://api.chariow.com/v1/checkout');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer sk_live_your_api_key',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'product_id' => 'prd_abc123xyz',
'email' => 'customer@example.com',
'first_name' => 'John',
'last_name' => 'Doe',
'phone' => [
'number' => '1234567890',
'country_code' => 'US'
],
'discount_code' => 'SAVE20',
'redirect_url' => 'https://yoursite.com/thank-you',
'customer_ip' => '203.0.113.42',
'custom_metadata' => [
'order_ref' => 'ORD-123',
'source' => 'landing_page'
]
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
if ($data['data']['step'] === 'payment') {
// Redirect to payment URL
header('Location: ' . $data['data']['payment']['checkout_url']);
} elseif ($data['data']['step'] === 'completed') {
// Free product - sale completed
echo 'Purchase completed: ' . $data['data']['purchase']['id'];
}
import requests
response = requests.post(
'https://api.chariow.com/v1/checkout',
headers={
'Authorization': 'Bearer sk_live_your_api_key',
'Content-Type': 'application/json'
},
json={
'product_id': 'prd_abc123xyz',
'email': 'customer@example.com',
'first_name': 'John',
'last_name': 'Doe',
'phone': {
'number': '1234567890',
'country_code': 'US'
},
'discount_code': 'SAVE20',
'redirect_url': 'https://yoursite.com/thank-you',
'customer_ip': '203.0.113.42',
'custom_metadata': {
'order_ref': 'ORD-123',
'source': 'landing_page'
}
}
)
data = response.json()
if data['data']['step'] == 'payment':
# Redirect to payment URL
checkout_url = data['data']['payment']['checkout_url']
print(f'Redirect to: {checkout_url}')
elif data['data']['step'] == 'completed':
# Free product - sale completed
print(f"Purchase completed: {data['data']['purchase']['id']}")
{
"data": {
"step": "payment",
"message": null,
"purchase": {
"id": "sal_abc123xyz",
"status": "awaiting_payment",
"original_amount": {
"value": 99,
"formatted": "$99.00",
"short": "99",
"currency": "USD"
},
"amount": {
"value": 79.20,
"formatted": "$79.20",
"short": "79",
"currency": "USD"
},
"discount_amount": {
"value": 19.80,
"formatted": "$19.80",
"short": "20",
"currency": "USD"
},
"payment": {
"amount": {
"value": 79.20,
"formatted": "$79.20",
"short": "79",
"currency": "USD"
},
"status": "awaiting_payment",
"exchange_rate": {
"value": 1,
"formatted": "$1.00",
"short": "1",
"currency": "USD"
}
},
"store": {
"id": "str_xyz789",
"name": "My Store"
},
"product": {
"id": "prd_abc123xyz",
"name": "Premium Course",
"slug": "premium-course"
},
"customer": {
"id": "cus_def456",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe"
},
"discount": {
"id": "dis_ghi789",
"code": "SAVE20",
"type": "percentage",
"value": 20
},
"post_purchase": {
"files": [],
"licenses": [],
"courses": []
}
},
"payment": {
"checkout_url": "https://payment.example.com/checkout?token=abc123",
"transaction_id": "txn_xyz789abc"
}
}
}
{
"data": {
"step": "completed",
"message": null,
"purchase": {
"id": "sal_abc123xyz",
"status": "completed",
"original_amount": {
"value": 0,
"formatted": "$0.00",
"short": "0",
"currency": "USD"
},
"amount": {
"value": 0,
"formatted": "$0.00",
"short": "0",
"currency": "USD"
},
"discount_amount": {
"value": 0,
"formatted": "$0.00",
"short": "0",
"currency": "USD"
},
"payment": {
"amount": null,
"status": "completed",
"exchange_rate": {
"value": 1,
"formatted": "$1.00",
"short": "1",
"currency": "USD"
}
},
"store": {
"id": "str_xyz789",
"name": "My Store"
},
"product": {
"id": "prd_abc123xyz",
"name": "Free eBook",
"slug": "free-ebook"
},
"customer": {
"id": "cus_def456",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe"
},
"discount": null,
"post_purchase": {
"files": [
{
"id": "fil_jkl012",
"name": "ebook.pdf",
"download_url": "https://files.chariow.com/download/..."
}
],
"licenses": [],
"courses": []
}
},
"payment": {
"checkout_url": null,
"transaction_id": null
}
}
}
{
"message": "Product not found",
"data": [],
"errors": []
}
{
"message": "Pay-what-you-want products are not supported via the Public API. Please redirect customers to your Chariow store or use the Snap Widget embed on your website.",
"data": [],
"errors": []
}
{
"message": "Service and Coaching products are not supported via the Public API. Please redirect customers to your Chariow store or use the Snap Widget embed on your website.",
"data": [],
"errors": []
}
{
"message": "The email field must be a valid email address.",
"data": [],
"errors": {
"email": [
"The email field must be a valid email address."
],
"phone.number": [
"The phone.number field is required."
]
}
}
{
"message": "The discount code is invalid or has expired.",
"data": [],
"errors": {
"discount_code": [
"The discount code is invalid or has expired."
]
}
}
{
"message": "Please enter your address for shipping. (and 4 more errors)",
"data": [],
"errors": {
"address": [
"Please enter your address for shipping."
],
"city": [
"Please enter your city for shipping."
],
"state": [
"Please enter your state/region for shipping."
],
"country": [
"Please enter your country for shipping."
],
"zip": [
"Please enter your postal code for shipping."
]
}
}
Initiates a new checkout session for purchasing a product. Creates a sale record and either returns a payment checkout URL for paid products or completes the sale immediately for free products.
Unsupported product types — The following cannot be used to initiate a checkout through the API:
- Service products
- Coaching products
- Products with pay-what-you-want pricing
All sales initiated via this API endpoint will have their Channel set to “API” on your store dashboard. This helps you identify and track sales originating from your API integrations separately from other channels.
Repeat Purchases
The ability to purchase a product multiple times depends on the product type:| Product Type | Repeat Purchase | Behaviour |
|---|---|---|
| License | Always allowed | Customers can purchase license products multiple times. Each purchase generates a new unique license key. |
| Downloadable | Blocked | Returns already_purchased if customer has an active access grant. |
| Course | Blocked | Returns already_purchased if customer has an active access grant. |
| Bundle | Blocked | Returns already_purchased if customer has an active access grant. |
For blocked product types, if a customer’s access has been revoked (e.g., after a refund), they will be able to purchase the product again. The system checks for active access grants only.
Authentication
This endpoint requires API key authentication via Bearer token:Authorization: Bearer sk_live_your_api_key
Request Body
string
required
The product public ID or slug to purchase. Example:
prd_abc123xyz or premium-coursestring
required
Customer email address. Must be a valid email (max 255 characters). Example:
customer@example.comstring
required
Customer first name (max 50 characters). Example:
Johnstring
required
Customer last name (max 50 characters). Example:
Doeobject
required
string
Discount code to apply (max 100 characters). Example:
SAVE20string
Campaign public ID or tracking code for analytics. Example:
camp_xyz789object
Custom field values for the product (key-value pairs). Must match the product’s configured custom fields.
string
Currency code for payment (ISO 4217). Defaults to store currency if not provided. Example:
USD, EUR, GBPstring
Custom URL to redirect customers after payment completion (max 2048 characters). When provided, customers will be redirected to this URL instead of the default Chariow post-purchase page. Must be a valid active URL. Example:
https://yoursite.com/thank-youobject
Custom key-value metadata to store with the sale. Maximum 10 keys allowed, each value limited to 255 characters. This metadata is included in Pulse webhook payloads, making it useful for linking sales with external systems. Example:
{"order_ref": "ORD-123", "source": "landing_page"}string
The buyer’s IP address, IPv4 or IPv6. Example:
203.0.113.42Why send
customer_ip? This endpoint is called from your server, so the IP we see is your own infrastructure, not the buyer’s. When you forward customer_ip, we store it on the sale and resolve the buyer’s country from it, which improves the payment methods offered at checkout and the accuracy of your sales analytics. When the field is omitted, nothing breaks: we simply fall back to the calling IP.Shipping Address Fields
The following fields are required when the product has “Require shipping address” enabled. If shipping is not required for the product, these fields are ignored.
string
Customer street address for shipping (max 255 characters). Example:
123 Main Streetstring
Customer city for shipping (max 100 characters). Example:
New Yorkstring
Customer state or region for shipping (max 100 characters). Example:
NYstring
Customer country for shipping (ISO 3166-1 alpha-2 code, max 2 characters). Example:
USstring
Customer postal/ZIP code for shipping (max 20 characters). Example:
10001Response
object
The checkout response object containing step, purchase, and payment information
Show properties
Show properties
string
Current checkout step. Possible values:
payment: Payment required, redirect to checkout_urlcompleted: Sale completed (free products)already_purchased: Customer already owns this product
string | null
Optional message for the customer (e.g., “You have already purchased this product”)
object | null
Sale information (null if already_purchased)
Show purchase object
Show purchase object
string
Sale public ID. Example:
sal_abc123xyzstring
Sale status. Values:
awaiting_payment, completed, failed, refundedobject
object
Final amount after discounts
object
Total discount applied
object
object
Store information
object
Product information
object
Customer information
object | null
Applied discount details (if any)
object
Product access details (files, licenses, course content, etc.)
Error Responses
Invalid or missing API key
Product not found or not published
Validation errors, pay-what-you-want product, or unsupported product type (Service, Coaching)
curl -X POST "https://api.chariow.com/v1/checkout" \
-H "Authorization: Bearer sk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"product_id": "prd_abc123xyz",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe",
"phone": {
"number": "1234567890",
"country_code": "US"
},
"discount_code": "SAVE20",
"redirect_url": "https://yoursite.com/thank-you",
"customer_ip": "203.0.113.42",
"custom_metadata": {
"order_ref": "ORD-123",
"source": "landing_page"
}
}'
const response = await fetch('https://api.chariow.com/v1/checkout', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_live_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
product_id: 'prd_abc123xyz',
email: 'customer@example.com',
first_name: 'John',
last_name: 'Doe',
phone: {
number: '1234567890',
country_code: 'US'
},
discount_code: 'SAVE20',
redirect_url: 'https://yoursite.com/thank-you',
customer_ip: '203.0.113.42',
custom_metadata: {
order_ref: 'ORD-123',
source: 'landing_page'
}
})
});
const result = await response.json();
if (result.data.step === 'payment') {
// Redirect to payment URL
window.location.href = result.data.payment.checkout_url;
} else if (result.data.step === 'completed') {
// Free product - sale completed
console.log('Purchase completed:', result.data.purchase.id);
}
$ch = curl_init('https://api.chariow.com/v1/checkout');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer sk_live_your_api_key',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'product_id' => 'prd_abc123xyz',
'email' => 'customer@example.com',
'first_name' => 'John',
'last_name' => 'Doe',
'phone' => [
'number' => '1234567890',
'country_code' => 'US'
],
'discount_code' => 'SAVE20',
'redirect_url' => 'https://yoursite.com/thank-you',
'customer_ip' => '203.0.113.42',
'custom_metadata' => [
'order_ref' => 'ORD-123',
'source' => 'landing_page'
]
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
if ($data['data']['step'] === 'payment') {
// Redirect to payment URL
header('Location: ' . $data['data']['payment']['checkout_url']);
} elseif ($data['data']['step'] === 'completed') {
// Free product - sale completed
echo 'Purchase completed: ' . $data['data']['purchase']['id'];
}
import requests
response = requests.post(
'https://api.chariow.com/v1/checkout',
headers={
'Authorization': 'Bearer sk_live_your_api_key',
'Content-Type': 'application/json'
},
json={
'product_id': 'prd_abc123xyz',
'email': 'customer@example.com',
'first_name': 'John',
'last_name': 'Doe',
'phone': {
'number': '1234567890',
'country_code': 'US'
},
'discount_code': 'SAVE20',
'redirect_url': 'https://yoursite.com/thank-you',
'customer_ip': '203.0.113.42',
'custom_metadata': {
'order_ref': 'ORD-123',
'source': 'landing_page'
}
}
)
data = response.json()
if data['data']['step'] == 'payment':
# Redirect to payment URL
checkout_url = data['data']['payment']['checkout_url']
print(f'Redirect to: {checkout_url}')
elif data['data']['step'] == 'completed':
# Free product - sale completed
print(f"Purchase completed: {data['data']['purchase']['id']}")
{
"data": {
"step": "payment",
"message": null,
"purchase": {
"id": "sal_abc123xyz",
"status": "awaiting_payment",
"original_amount": {
"value": 99,
"formatted": "$99.00",
"short": "99",
"currency": "USD"
},
"amount": {
"value": 79.20,
"formatted": "$79.20",
"short": "79",
"currency": "USD"
},
"discount_amount": {
"value": 19.80,
"formatted": "$19.80",
"short": "20",
"currency": "USD"
},
"payment": {
"amount": {
"value": 79.20,
"formatted": "$79.20",
"short": "79",
"currency": "USD"
},
"status": "awaiting_payment",
"exchange_rate": {
"value": 1,
"formatted": "$1.00",
"short": "1",
"currency": "USD"
}
},
"store": {
"id": "str_xyz789",
"name": "My Store"
},
"product": {
"id": "prd_abc123xyz",
"name": "Premium Course",
"slug": "premium-course"
},
"customer": {
"id": "cus_def456",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe"
},
"discount": {
"id": "dis_ghi789",
"code": "SAVE20",
"type": "percentage",
"value": 20
},
"post_purchase": {
"files": [],
"licenses": [],
"courses": []
}
},
"payment": {
"checkout_url": "https://payment.example.com/checkout?token=abc123",
"transaction_id": "txn_xyz789abc"
}
}
}
{
"data": {
"step": "completed",
"message": null,
"purchase": {
"id": "sal_abc123xyz",
"status": "completed",
"original_amount": {
"value": 0,
"formatted": "$0.00",
"short": "0",
"currency": "USD"
},
"amount": {
"value": 0,
"formatted": "$0.00",
"short": "0",
"currency": "USD"
},
"discount_amount": {
"value": 0,
"formatted": "$0.00",
"short": "0",
"currency": "USD"
},
"payment": {
"amount": null,
"status": "completed",
"exchange_rate": {
"value": 1,
"formatted": "$1.00",
"short": "1",
"currency": "USD"
}
},
"store": {
"id": "str_xyz789",
"name": "My Store"
},
"product": {
"id": "prd_abc123xyz",
"name": "Free eBook",
"slug": "free-ebook"
},
"customer": {
"id": "cus_def456",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe"
},
"discount": null,
"post_purchase": {
"files": [
{
"id": "fil_jkl012",
"name": "ebook.pdf",
"download_url": "https://files.chariow.com/download/..."
}
],
"licenses": [],
"courses": []
}
},
"payment": {
"checkout_url": null,
"transaction_id": null
}
}
}
{
"message": "Product not found",
"data": [],
"errors": []
}
{
"message": "Pay-what-you-want products are not supported via the Public API. Please redirect customers to your Chariow store or use the Snap Widget embed on your website.",
"data": [],
"errors": []
}
{
"message": "Service and Coaching products are not supported via the Public API. Please redirect customers to your Chariow store or use the Snap Widget embed on your website.",
"data": [],
"errors": []
}
{
"message": "The email field must be a valid email address.",
"data": [],
"errors": {
"email": [
"The email field must be a valid email address."
],
"phone.number": [
"The phone.number field is required."
]
}
}
{
"message": "The discount code is invalid or has expired.",
"data": [],
"errors": {
"discount_code": [
"The discount code is invalid or has expired."
]
}
}
{
"message": "Please enter your address for shipping. (and 4 more errors)",
"data": [],
"errors": {
"address": [
"Please enter your address for shipping."
],
"city": [
"Please enter your city for shipping."
],
"state": [
"Please enter your state/region for shipping."
],
"country": [
"Please enter your country for shipping."
],
"zip": [
"Please enter your postal code for shipping."
]
}
}
Was this page helpful?
⌘I