POST
/
v3
/
orders?checkout=condensed
Checkout
curl --request POST \
  --url 'https://sandbox-api.cardcash.com/v3/v3/orders?checkout=condensed' \
  --header 'Authorization: Bearer <token>'

Overview

The condensed checkout purchases cards in a single request. Pass the cards you want to buy, your payment details, and shipping/billing info — the API handles cart creation, inventory reservation, and payment processing internally.

Request

Query Parameters

ParameterTypeRequiredDescription
checkoutstringYesMust be "condensed"

Body Parameters

ParameterTypeRequiredDescription
cardsarrayYesCards to purchase (see card object below)
paymentobjectYesPayment method and details
shippingDetailsobjectYesShipping address
billingDetailsobjectDependsBilling address (not required for ACH or DRAWDOWN_ACCOUNT)
couponCodestringNoCoupon code to apply to the order

Card Object

FieldTypeRequiredDescription
merchantIdintegerYesMerchant ID
faceValuenumberYesFace value of the card
percentOffnumberYesDiscount percentage
typestringYesCard type (ecode, physical, newEcodeB2B, newEcodeAsPre)
quantityintegerYesNumber of cards
isLowRiskbooleanNoSet to true to request only cards from trusted sellers. Defaults to any available.

Payment Object

FieldTypeRequiredDescription
methodstringYesPayment method (see table below)
detailsobjectYesPayment details (varies by method)

Payment Methods

MethodDescriptionDiscount
ACHACH bank transfer2% off order total
ACH_CREDITCARDACH with credit card as backup2% off order total
CREDITCARDCredit card payment
STORE_CREDITStore credit balance
DRAWDOWN_ACCOUNTDrawdown account balance (Elite partners only)2.5% off order total
curl -X POST "https://sandbox-api.cardcash.com/v3/orders?checkout=condensed" \
  -H "x-cc-app: YOUR_APP_ID" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "cards": [
      {
        "merchantId": 123,
        "faceValue": 50,
        "percentOff": 8.5,
        "type": "ecode",
        "quantity": 2
      }
    ],
    "payment": {
      "method": "ACH",
      "details": {
        "id": 789
      }
    },
    "shippingDetails": {
      "firstname": "John",
      "lastname": "Doe",
      "street": "123 Main St",
      "city": "New York",
      "state": "NY",
      "postcode": "10001"
    },
    "billingDetails": {
      "firstname": "John",
      "lastname": "Doe",
      "street": "123 Main St",
      "city": "New York",
      "state": "NY",
      "postcode": "10001"
    }
  }'

Payment Detail Schemas

Checkout uses saved payment method IDs. Add payment methods via the Payment Methods API first, then reference them by ID at checkout.

ACH

FieldTypeDescription
idnumberSaved bank account ID from payment methods

Credit Card

FieldTypeDescription
creditCardIdnumberSaved credit card ID from payment methods

ACH with Credit Card Backup (ACH_CREDITCARD)

FieldTypeDescription
idnumberSaved bank account ID
creditCardDetails.creditCardIdnumberSaved credit card ID for backup

DRAWDOWN_ACCOUNT

No details object required — the system debits the account directly.

STORE_CREDIT

No details object required — applied automatically from account balance.

Address Object (Shipping & Billing)

FieldTypeRequiredDescription
firstnamestringYesFirst name
lastnamestringYesLast name
streetstringYesStreet address
street2stringNoApartment, suite, etc.
citystringYesCity
statestringYesState (2-letter code)
postcodestringYesZIP code
companystringNoCompany name

Response

Returns the full order object:
{
  "buyOrder": {
    "id": 12345,
    "orderId": "order-uuid",
    "datePurchased": "2026-01-15T12:00:00.000Z",
    "status": "Processing",
    "message": "Order Processing",
    "fulfilled": false,
    "total": {
      "order": "91.50",
      "faceValue": "100.00",
      "due": "91.50"
    },
    "coupon": {},
    "paymentDetails": {
      "method": "ACH Checking Account Withdrawal",
      "accountNumber": "****6789",
      "routingNumber": "****0021"
    },
    "shippingDetails": {
      "name": "John Doe",
      "address": "123 Main St",
      "city": "New York",
      "state": "NY",
      "zip": "10001",
      "country": "US"
    },
    "cards": [
      {
        "id": 789,
        "fulfilled": false,
        "merchantName": "Target",
        "merchantImage": "https://...",
        "amount": { "balance": 50, "cost": 45.75 },
        "type": "ecode",
        "isLowRisk": true,
        "sourceCode": "pre-owned"
      }
    ]
  }
}

Error Responses

ErrorCause
"Not all requested cards were added to the cart"Insufficient inventory for the requested cards
"Insufficient funds"Payment failed
"payment method not setup"Invalid payment method string

Notes

  • No cart creation is needed — the API handles cart management internally
  • If any requested cards are unavailable, the entire order fails (no partial orders)
  • E-code cards are typically delivered within minutes
  • Physical cards typically ship within 1 business day
  • Check order status via GET /v3/orders/:orderId to track fulfillment
  • Cards appear in the wallet once fulfilled — retrieve secure data within 24 hours
Concurrent checkout calls: The API creates a cart internally for each checkout. Making multiple simultaneous checkout calls for the same account can lead to race conditions. Process orders sequentially.