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",
"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',
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',
'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',
'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",
"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',
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',
'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',
'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
The product public ID or slug to purchase. Example:
prd_abc123xyz or premium-courseCustomer email address. Must be a valid email (max 255 characters). Example:
customer@example.comCustomer first name (max 50 characters). Example:
JohnCustomer last name (max 50 characters). Example:
DoeDiscount code to apply (max 100 characters). Example:
SAVE20Campaign public ID or tracking code for analytics. Example:
camp_xyz789Custom field values for the product (key-value pairs). Must match the product’s configured custom fields.
Currency code for payment (ISO 4217). Defaults to store currency if not provided. Example:
USD, EUR, GBPCustom 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-youCustom 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"}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.
Customer street address for shipping (max 255 characters). Example:
123 Main StreetCustomer city for shipping (max 100 characters). Example:
New YorkCustomer state or region for shipping (max 100 characters). Example:
NYCustomer country for shipping (ISO 3166-1 alpha-2 code, max 2 characters). Example:
USCustomer postal/ZIP code for shipping (max 20 characters). Example:
10001Response
The checkout response object containing step, purchase, and payment information
Show properties
Show properties
Current checkout step. Possible values:
payment: Payment required, redirect to checkout_urlcompleted: Sale completed (free products)already_purchased: Customer already owns this product
Optional message for the customer (e.g., “You have already purchased this product”)
Sale information (null if already_purchased)
Show purchase object
Show purchase object
Sale public ID. Example:
sal_abc123xyzSale status. Values:
awaiting_payment, completed, failed, refundedFinal amount after discounts
Total discount applied
Store information
Product information
Customer information
Applied discount details (if any)
Product access details (files, licenses, course content, etc.)
Error Responses
401 Unauthorised
Invalid or missing API key
404 Not Found
Product not found or not published
422 Unprocessable Entity
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",
"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',
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',
'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',
'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