Skip to main content
POST
https://cc.firmly.work
/
api
/
v2
/
payment
/
domains
/
{domain}
/
complete-order
Complete Order
curl --request POST \
  --url https://cc.firmly.work/api/v2/payment/domains/{domain}/complete-order \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'x-firmly-authorization: <x-firmly-authorization>' \
  --data '
{
  "encrypted_card": "<string>",
  "billing_info": {},
  "captcha_token": "<string>"
}
'
{
  "platform_order_number": "<string>",
  "cart_id": "<string>",
  "line_items": [
    {}
  ],
  "shipments": [
    {}
  ],
  "addons": {},
  "total": {}
}

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

x-firmly-authorization
string
required
Device authentication token from Browser Session

Path Parameters

domain
string
required
The merchant domain (e.g., “staging.luma.gift”)

Request Body

encrypted_card
string
required
JWE-encrypted credit card data using the public key from Get Public Key endpoint
billing_info
object
required
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_token
string
Captcha verification token when required by merchant

Response

Returns an order confirmation with Full Cart API structure including:
platform_order_number
string
The order number from the merchant
cart_id
string
Unique identifier for the cart
line_items
array
Detailed array of items with variant information
shipments
array
Shipment groups with fulfillment details
addons
object
Selected addon services and their pricing
total
object
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:
  1. Cart must have at least one item
  2. All shipments must have shipping information set
  3. Required addons (if any) must be selected
  4. Tax calculations must be current

Error Responses

CodeDescription
ErrorInvalidInputBodyRequest validation failed
ErrorMissingRequiredParametersCart missing required data
ErrorCartNotFoundNo cart found for domain
ErrorPaymentDeclinedPayment was declined
ErrorStoreUnavailableMerchant temporarily unavailable