Skip to main content
POST
/
2022-06-09
/
orders
Create Order
curl --request POST \
  --url https://staging.crossmint.com/api/2022-06-09/orders \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
{
  "payment": {
    "receiptEmail": "jsmith@example.com",
    "payerAddress": "<string>"
  },
  "lineItems": {
    "collectionLocator": "crossmint:<collectionId>",
    "callData": {
      "totalPrice": "<string>"
    }
  },
  "recipient": {
    "email": "jsmith@example.com"
  },
  "locale": "en-US",
  "state": "create"
}
'
{
  "clientSecret": "_removed_",
  "order": {
    "orderId": "b2959ca5-65e4-466a-bd26-1bd05cb4f837",
    "phase": "payment",
    "locale": "en-US",
    "lineItems": [
      {
        "chain": "polygon-amoy",
        "quantity": 1,
        "callData": {
          "quantity": 1,
          "ADDITIONAL_PROPERTIES": "Your other mint function arguments"
        },
        "metadata": {
          "name": "Headless Checkout Demo",
          "description": "NFT Description",
          "imageUrl": "https://cdn.io/image.png"
        },
        "quote": {
          "status": "valid",
          "charges": {
            "unit": {
              "amount": "0.0001",
              "currency": "eth"
            },
            "salesTax": {
              "amount": "0.34",
              "currency": "usdc"
            },
            "shipping": {
              "amount": "0",
              "currency": "usdc"
            }
          },
          "totalPrice": {
            "amount": "0.0001",
            "currency": "eth"
          }
        },
        "delivery": {
          "status": "awaiting-payment",
          "recipient": {
            "locator": "email:<email_address>:<chain>",
            "email": "testy@crossmint.com",
            "walletAddress": "0x1234abcd..."
          },
          "txId": "0x2e69f11dae7869b92e3d5eaf4cadd50c48b5c6803d1232815f979d744521ad4c",
          "tokens": [
            {
              "locator": "polygon:0xE04Cf294985282Ddc088E6433c064cfB85eD9EdA:3",
              "contractAddress": "0xE04Cf294985282Ddc088E6433c064cfB85eD9EdA",
              "tokenId": "3",
              "mintHash": "MintHashAbc123",
              "quantity": "1500000",
              "symbol": "USDC",
              "decimals": 6
            }
          ]
        }
      }
    ],
    "quote": {
      "status": "valid",
      "quotedAt": "2024-06-07T16:55:44.653Z",
      "expiresAt": "2024-06-07T17:55:44.653Z",
      "totalPrice": {
        "amount": "0.0001375741",
        "currency": "eth"
      }
    },
    "payment": {
      "status": "awaiting-payment",
      "method": "base-sepolia",
      "currency": "eth",
      "preparation": {
        "chain": "base-sepolia",
        "payerAddress": "0x1234abcd...",
        "serializedTransaction": "0x02f90....."
      }
    }
  }
}

Authorizations

X-API-KEY
string
header
required

Body

application/json
payment
EVM · object
required
lineItems
Single Line Item - Collection Locator · object
required
recipient
Email · object

Recipient of the items being purchased. Crossmint will create a custodial wallet address for the user on the fly, that they can later log in to. If no recipient is passed, an order will be created with the status 'requires-recipient', until you pass one.

locale
enum<string>
default:en-US

Locale for the checkout, in IETF BCP 47. It impacts the email receipt language. Ensure your UI is set to the same language as specified here. Throws an error if passed an invalid language.

Available options:
en-US,
es-ES,
fr-FR,
it-IT,
ko-KR,
pt-PT,
ja-JP,
zh-CN,
zh-TW,
de-DE,
ru-RU,
tr-TR,
uk-UA,
th-TH,
vi-VN,
Klingon
Example:

"en-US"

state
enum<string>
default:create

Determines whether an order is officially created or whether it simply returns what an order would look like. Use draft to review results prior to committing. Draft orders are not currently persisted and will not be queryable via APIs. Use create (default) to place the order and proceed to payment/fulfillment.

Available options:
draft,
create

Response

Order successfully created.

clientSecret
string

A token exclusively scoped to a particular order, allowing for the reading or updating of that order.

Example:

"_removed_"

order
object