import HenrySDK from '@henrylabs/sdk';
const client = new HenrySDK({
apiKey: process.env['HENRY_SDK_API_KEY'], // This is the default and can be omitted
});
const response = await client.cart.checkout.purchase('crt_sa2aEsCz9PRM', {
buyer: {
name: {
firstName: 'John',
middleName: 'A.',
lastName: 'Doe',
},
email: 'johnadoe@example.com',
phone: '+1234567890',
shippingAddress: {
line1: '123 Main St',
line2: 'Apt 4B',
city: 'Anytown',
province: 'CA',
postalCode: '12345',
countryCode: 'US',
},
card: {
nameOnCard: {
firstName: 'John',
middleName: 'A.',
lastName: 'Doe',
},
details: { cardToken: 'card_live_SimDpKU9cmU7tvdUXHzOeLudtgfadQVnbof' },
billingAddress: {
line1: '123 Main St',
line2: 'Apt 4B',
city: 'Anytown',
province: 'CA',
postalCode: '12345',
countryCode: 'US',
},
},
},
mode: 'async',
});
console.log(response.details);{
"refId": "<string>",
"status": "pending",
"products": [
{
"status": "pending",
"link": "<string>",
"quantity": 123,
"merchant": "<string>",
"host": "<string>",
"selectedOptions": [
"<string>"
],
"selectedShipping": {
"id": "<string>",
"value": "<string>"
}
}
],
"details": {
"hasAccount": true,
"name": {
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>"
},
"card": {
"nameOnCard": {
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>"
},
"details": {},
"billingAddress": {
"line1": "<string>",
"city": "<string>",
"province": "<string>",
"postalCode": "<string>",
"countryCode": "<string>",
"name": {
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>"
},
"email": "jsmith@example.com",
"phone": {
"countryCode": "<string>",
"nationalNumber": "<string>",
"e164": "<string>",
"country": "<string>"
},
"line2": "<string>"
}
},
"email": "<string>",
"phone": {
"countryCode": "<string>",
"nationalNumber": "<string>",
"e164": "<string>",
"country": "<string>"
},
"shippingAddress": {
"line1": "<string>",
"city": "<string>",
"province": "<string>",
"postalCode": "<string>",
"countryCode": "<string>",
"name": {
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>"
},
"email": "jsmith@example.com",
"phone": {
"countryCode": "<string>",
"nationalNumber": "<string>",
"e164": "<string>",
"country": "<string>"
},
"line2": "<string>"
},
"settings": {
"collectEmail": true,
"collectAddress": true,
"collectPhone": true
}
},
"result": {
"items": [
{
"productLink": "<string>",
"confirmationNumber": "<string>",
"costs": {
"total": {
"value": 123,
"currency": "USD"
},
"subtotal": {
"value": 123,
"currency": "USD"
},
"tax": {
"value": 123,
"currency": "USD"
},
"shipping": {
"value": 123,
"currency": "USD"
},
"discount": {
"value": 123,
"currency": "USD"
}
},
"shipping": {
"id": "<string>",
"name": "<string>",
"cost": {
"value": 123,
"currency": "USD"
},
"timeEstimate": "<string>",
"minDate": "<string>",
"maxDate": "<string>"
},
"appliedCoupon": {
"code": "<string>",
"savedAmount": {
"value": 123,
"currency": "USD"
}
},
"metadata": {}
}
],
"costs": {
"subtotal": {
"value": 123,
"currency": "USD"
},
"commissionFee": {
"value": 123,
"currency": "USD"
},
"total": {
"value": 123,
"currency": "USD"
}
}
},
"error": {}
}Initiate the purchase process for a cart. Requests are async by default, or use mode=sync to wait up to 30 seconds for completion.
import HenrySDK from '@henrylabs/sdk';
const client = new HenrySDK({
apiKey: process.env['HENRY_SDK_API_KEY'], // This is the default and can be omitted
});
const response = await client.cart.checkout.purchase('crt_sa2aEsCz9PRM', {
buyer: {
name: {
firstName: 'John',
middleName: 'A.',
lastName: 'Doe',
},
email: 'johnadoe@example.com',
phone: '+1234567890',
shippingAddress: {
line1: '123 Main St',
line2: 'Apt 4B',
city: 'Anytown',
province: 'CA',
postalCode: '12345',
countryCode: 'US',
},
card: {
nameOnCard: {
firstName: 'John',
middleName: 'A.',
lastName: 'Doe',
},
details: { cardToken: 'card_live_SimDpKU9cmU7tvdUXHzOeLudtgfadQVnbof' },
billingAddress: {
line1: '123 Main St',
line2: 'Apt 4B',
city: 'Anytown',
province: 'CA',
postalCode: '12345',
countryCode: 'US',
},
},
},
mode: 'async',
});
console.log(response.details);{
"refId": "<string>",
"status": "pending",
"products": [
{
"status": "pending",
"link": "<string>",
"quantity": 123,
"merchant": "<string>",
"host": "<string>",
"selectedOptions": [
"<string>"
],
"selectedShipping": {
"id": "<string>",
"value": "<string>"
}
}
],
"details": {
"hasAccount": true,
"name": {
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>"
},
"card": {
"nameOnCard": {
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>"
},
"details": {},
"billingAddress": {
"line1": "<string>",
"city": "<string>",
"province": "<string>",
"postalCode": "<string>",
"countryCode": "<string>",
"name": {
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>"
},
"email": "jsmith@example.com",
"phone": {
"countryCode": "<string>",
"nationalNumber": "<string>",
"e164": "<string>",
"country": "<string>"
},
"line2": "<string>"
}
},
"email": "<string>",
"phone": {
"countryCode": "<string>",
"nationalNumber": "<string>",
"e164": "<string>",
"country": "<string>"
},
"shippingAddress": {
"line1": "<string>",
"city": "<string>",
"province": "<string>",
"postalCode": "<string>",
"countryCode": "<string>",
"name": {
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>"
},
"email": "jsmith@example.com",
"phone": {
"countryCode": "<string>",
"nationalNumber": "<string>",
"e164": "<string>",
"country": "<string>"
},
"line2": "<string>"
},
"settings": {
"collectEmail": true,
"collectAddress": true,
"collectPhone": true
}
},
"result": {
"items": [
{
"productLink": "<string>",
"confirmationNumber": "<string>",
"costs": {
"total": {
"value": 123,
"currency": "USD"
},
"subtotal": {
"value": 123,
"currency": "USD"
},
"tax": {
"value": 123,
"currency": "USD"
},
"shipping": {
"value": 123,
"currency": "USD"
},
"discount": {
"value": 123,
"currency": "USD"
}
},
"shipping": {
"id": "<string>",
"name": "<string>",
"cost": {
"value": 123,
"currency": "USD"
},
"timeEstimate": "<string>",
"minDate": "<string>",
"maxDate": "<string>"
},
"appliedCoupon": {
"code": "<string>",
"savedAmount": {
"value": 123,
"currency": "USD"
}
},
"metadata": {}
}
],
"costs": {
"subtotal": {
"value": 123,
"currency": "USD"
},
"commissionFee": {
"value": 123,
"currency": "USD"
},
"total": {
"value": 123,
"currency": "USD"
}
}
},
"error": {}
}Unique identifier for the cart
"crt_sa2aEsCz9PRM"
Show child attributes
Response mode. Use sync to wait up to 30 seconds for the backing worker flow to complete.
async, sync "async"
Override quantity for a specific product URL
Show child attributes
Settings for what information to collect
Show child attributes
Additional metadata for the request
Show child attributes
Cart purchase queued successfully, use refId to check status and retrieve results
^[a-zA-Z]{3}-ref_[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}$pending, processing, complete, cancelled Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?