Overview
Completes the checkout process for carts using the Full Cart API. This endpoint supports advanced cart features including shipments, addons, and complex product configurations.
Authentication
Device authentication token from Browser Session
Path Parameters
The merchant domain (e.g., “staging.luma.gift”)
Request Body
JWE-encrypted credit card data using the public key from Get Public Key endpoint
Billing address informationRequired fields:
first_name (string): Customer’s first name
last_name (string): Customer’s last name
email (string): Email address
phone (string): Phone number
address1 (string): Primary address line
city (string): City name
state_or_province (string): State/province code
country (string): Country name or code
postal_code (string): ZIP or postal code
Optional fields:
address2 (string): Secondary address line
company (string): Company name
Captcha verification token when required by merchant
Response
Returns an order confirmation with Full Cart API structure including:
The order number from the merchant
Unique identifier for the cart
Detailed array of items with variant information
Shipment groups with fulfillment details
Selected addon services and their pricing
Final order total including all fees
Credit Card Encryption
The credit card must be encrypted as a JWE token with the following structure:
{
"number": "4111111111111111",
"name": "John Smith",
"verification_value": "123",
"month": "08",
"year": "2025"
}
Code Example
// Complete order for Full Cart API
const response = await fetch('https://cc.firmly.work/api/v2/payment/domains/staging.luma.gift/complete-order', {
method: 'POST',
headers: {
'x-firmly-authorization': authToken,
'Content-Type': 'application/json'
},
body: JSON.stringify({
encrypted_card: encryptedCard,
billing_info: {
first_name: 'John',
last_name: 'Smith',
email: '[email protected]',
phone: '2065551212',
address1: '123 Main St',
city: 'Seattle',
state_or_province: 'WA',
country: 'US',
postal_code: '98101'
}
})
});
const order = await response.json();
Prerequisites
Before calling this endpoint:
- Cart must have at least one item
- All shipments must have shipping information set
- Required addons (if any) must be selected
- Tax calculations must be current
Error Responses
| Code | Description |
|---|
ErrorInvalidInputBody | Request validation failed |
ErrorMissingRequiredParameters | Cart missing required data |
ErrorCartNotFound | No cart found for domain |
ErrorPaymentDeclined | Payment was declined |
ErrorStoreUnavailable | Merchant temporarily unavailable |