Edit Order
curl --request PATCH \
--url https://staging.crossmint.com/api/2022-06-09/orders/{orderId} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"recipient": {
"email": "jsmith@example.com"
},
"locale": "en-US",
"payment": {
"receiptEmail": "jsmith@example.com",
"payerAddress": "<string>"
}
}
'import requests
url = "https://staging.crossmint.com/api/2022-06-09/orders/{orderId}"
payload = {
"recipient": { "email": "jsmith@example.com" },
"locale": "en-US",
"payment": {
"receiptEmail": "jsmith@example.com",
"payerAddress": "<string>"
}
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
recipient: {email: 'jsmith@example.com'},
locale: 'en-US',
payment: {receiptEmail: 'jsmith@example.com', payerAddress: '<string>'}
})
};
fetch('https://staging.crossmint.com/api/2022-06-09/orders/{orderId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging.crossmint.com/api/2022-06-09/orders/{orderId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'recipient' => [
'email' => 'jsmith@example.com'
],
'locale' => 'en-US',
'payment' => [
'receiptEmail' => 'jsmith@example.com',
'payerAddress' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://staging.crossmint.com/api/2022-06-09/orders/{orderId}"
payload := strings.NewReader("{\n \"recipient\": {\n \"email\": \"jsmith@example.com\"\n },\n \"locale\": \"en-US\",\n \"payment\": {\n \"receiptEmail\": \"jsmith@example.com\",\n \"payerAddress\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://staging.crossmint.com/api/2022-06-09/orders/{orderId}")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"recipient\": {\n \"email\": \"jsmith@example.com\"\n },\n \"locale\": \"en-US\",\n \"payment\": {\n \"receiptEmail\": \"jsmith@example.com\",\n \"payerAddress\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/2022-06-09/orders/{orderId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"recipient\": {\n \"email\": \"jsmith@example.com\"\n },\n \"locale\": \"en-US\",\n \"payment\": {\n \"receiptEmail\": \"jsmith@example.com\",\n \"payerAddress\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"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..."
}
}
}
],
"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....."
}
}
}{
"error": true,
"message": "Invalid arguments or empty parameter <missing parameter>."
}{
"error": true,
"message": "Malformed API key. / API key provided doesn't have required scopes."
}{
"error": true,
"message": "Not found"
}{
"error": true,
"message": "Please try again in a few minutes. If the issue still persists, contact Crossmint support."
}{
"error": true,
"message": "A timeout occurred."
}Headless Checkout
Edit Order
Edit an existing order. You can update the recipient, the payment method, and/or the locale.
API scope required: orders.update
PATCH
/
2022-06-09
/
orders
/
{orderId}
Edit Order
curl --request PATCH \
--url https://staging.crossmint.com/api/2022-06-09/orders/{orderId} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"recipient": {
"email": "jsmith@example.com"
},
"locale": "en-US",
"payment": {
"receiptEmail": "jsmith@example.com",
"payerAddress": "<string>"
}
}
'import requests
url = "https://staging.crossmint.com/api/2022-06-09/orders/{orderId}"
payload = {
"recipient": { "email": "jsmith@example.com" },
"locale": "en-US",
"payment": {
"receiptEmail": "jsmith@example.com",
"payerAddress": "<string>"
}
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
recipient: {email: 'jsmith@example.com'},
locale: 'en-US',
payment: {receiptEmail: 'jsmith@example.com', payerAddress: '<string>'}
})
};
fetch('https://staging.crossmint.com/api/2022-06-09/orders/{orderId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging.crossmint.com/api/2022-06-09/orders/{orderId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'recipient' => [
'email' => 'jsmith@example.com'
],
'locale' => 'en-US',
'payment' => [
'receiptEmail' => 'jsmith@example.com',
'payerAddress' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://staging.crossmint.com/api/2022-06-09/orders/{orderId}"
payload := strings.NewReader("{\n \"recipient\": {\n \"email\": \"jsmith@example.com\"\n },\n \"locale\": \"en-US\",\n \"payment\": {\n \"receiptEmail\": \"jsmith@example.com\",\n \"payerAddress\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://staging.crossmint.com/api/2022-06-09/orders/{orderId}")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"recipient\": {\n \"email\": \"jsmith@example.com\"\n },\n \"locale\": \"en-US\",\n \"payment\": {\n \"receiptEmail\": \"jsmith@example.com\",\n \"payerAddress\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/2022-06-09/orders/{orderId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"recipient\": {\n \"email\": \"jsmith@example.com\"\n },\n \"locale\": \"en-US\",\n \"payment\": {\n \"receiptEmail\": \"jsmith@example.com\",\n \"payerAddress\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"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..."
}
}
}
],
"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....."
}
}
}{
"error": true,
"message": "Invalid arguments or empty parameter <missing parameter>."
}{
"error": true,
"message": "Malformed API key. / API key provided doesn't have required scopes."
}{
"error": true,
"message": "Not found"
}{
"error": true,
"message": "Please try again in a few minutes. If the issue still persists, contact Crossmint support."
}{
"error": true,
"message": "A timeout occurred."
}Authorizations
apiKeyorderClientSecret
Path Parameters
This is the identifier for the order with UUID format.
Example: 9c82ef99-617f-497d-9abb-fd355291681b
Body
application/json
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.
- Email
- Wallet
Show child attributes
Show child attributes
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"
- EVM
- Solana
- Fiat
Show child attributes
Show child attributes
Was this page helpful?

