curl --request POST \
--url https://sg.sandbox.api.reap.global/card-shipments/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Reap-Version: <reap-version>' \
--data '
{
"destinationAddress": {
"line1": "<string>",
"city": "<string>",
"postalCode": "<string>",
"country": "US",
"line2": "<string>",
"zone": "<string>"
},
"recipient": {
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"dialCode": 123,
"email": "jsmith@example.com"
},
"courier": {
"type": "POSTAL"
},
"cards": [
{
"cardId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cardDesignId": "<string>",
"shippingAddress": {
"line1": "<string>",
"city": "<string>",
"postalCode": "<string>",
"country": "US",
"line2": "<string>",
"zone": "<string>"
}
}
]
}
'const options = {
method: 'POST',
headers: {
'Reap-Version': '<reap-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
destinationAddress: {
line1: '<string>',
city: '<string>',
postalCode: '<string>',
country: 'US',
line2: '<string>',
zone: '<string>'
},
recipient: {
firstName: '<string>',
lastName: '<string>',
phoneNumber: '<string>',
dialCode: 123,
email: 'jsmith@example.com'
},
courier: {type: 'POSTAL'},
cards: [
{
cardId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
cardDesignId: '<string>',
shippingAddress: {
line1: '<string>',
city: '<string>',
postalCode: '<string>',
country: 'US',
line2: '<string>',
zone: '<string>'
}
}
]
})
};
fetch('https://sg.sandbox.api.reap.global/card-shipments/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sg.sandbox.api.reap.global/card-shipments/"
payload = {
"destinationAddress": {
"line1": "<string>",
"city": "<string>",
"postalCode": "<string>",
"country": "US",
"line2": "<string>",
"zone": "<string>"
},
"recipient": {
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"dialCode": 123,
"email": "jsmith@example.com"
},
"courier": { "type": "POSTAL" },
"cards": [
{
"cardId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cardDesignId": "<string>",
"shippingAddress": {
"line1": "<string>",
"city": "<string>",
"postalCode": "<string>",
"country": "US",
"line2": "<string>",
"zone": "<string>"
}
}
]
}
headers = {
"Reap-Version": "<reap-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "DRAFT",
"destinationAddress": {
"line1": "<string>",
"line2": "<string>",
"zone": "<string>",
"city": "<string>",
"postalCode": "<string>",
"country": "US"
},
"recipient": {
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"dialCode": 123,
"email": "jsmith@example.com"
},
"courier": {
"type": "POSTAL"
},
"trackingNumber": "<string>",
"trackingUrl": "<string>",
"cutoffDate": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"submittedAt": "<string>",
"deliveredAt": "<string>"
}{
"error": {
"code": "CARD_NOT_PHYSICAL",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "CARD_SHIPMENT_CARD_NOT_FOUND",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "ACTIVE_CARD_SHIPMENT_EXISTS",
"message": "<string>",
"detail": {}
}
}Create shipment draft
Creates a new card shipment in DRAFT status. No manufacturer call is made until the draft is explicitly submitted.
curl --request POST \
--url https://sg.sandbox.api.reap.global/card-shipments/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Reap-Version: <reap-version>' \
--data '
{
"destinationAddress": {
"line1": "<string>",
"city": "<string>",
"postalCode": "<string>",
"country": "US",
"line2": "<string>",
"zone": "<string>"
},
"recipient": {
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"dialCode": 123,
"email": "jsmith@example.com"
},
"courier": {
"type": "POSTAL"
},
"cards": [
{
"cardId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cardDesignId": "<string>",
"shippingAddress": {
"line1": "<string>",
"city": "<string>",
"postalCode": "<string>",
"country": "US",
"line2": "<string>",
"zone": "<string>"
}
}
]
}
'const options = {
method: 'POST',
headers: {
'Reap-Version': '<reap-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
destinationAddress: {
line1: '<string>',
city: '<string>',
postalCode: '<string>',
country: 'US',
line2: '<string>',
zone: '<string>'
},
recipient: {
firstName: '<string>',
lastName: '<string>',
phoneNumber: '<string>',
dialCode: 123,
email: 'jsmith@example.com'
},
courier: {type: 'POSTAL'},
cards: [
{
cardId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
cardDesignId: '<string>',
shippingAddress: {
line1: '<string>',
city: '<string>',
postalCode: '<string>',
country: 'US',
line2: '<string>',
zone: '<string>'
}
}
]
})
};
fetch('https://sg.sandbox.api.reap.global/card-shipments/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sg.sandbox.api.reap.global/card-shipments/"
payload = {
"destinationAddress": {
"line1": "<string>",
"city": "<string>",
"postalCode": "<string>",
"country": "US",
"line2": "<string>",
"zone": "<string>"
},
"recipient": {
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"dialCode": 123,
"email": "jsmith@example.com"
},
"courier": { "type": "POSTAL" },
"cards": [
{
"cardId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cardDesignId": "<string>",
"shippingAddress": {
"line1": "<string>",
"city": "<string>",
"postalCode": "<string>",
"country": "US",
"line2": "<string>",
"zone": "<string>"
}
}
]
}
headers = {
"Reap-Version": "<reap-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "DRAFT",
"destinationAddress": {
"line1": "<string>",
"line2": "<string>",
"zone": "<string>",
"city": "<string>",
"postalCode": "<string>",
"country": "US"
},
"recipient": {
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"dialCode": 123,
"email": "jsmith@example.com"
},
"courier": {
"type": "POSTAL"
},
"trackingNumber": "<string>",
"trackingUrl": "<string>",
"cutoffDate": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"submittedAt": "<string>",
"deliveredAt": "<string>"
}{
"error": {
"code": "CARD_NOT_PHYSICAL",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "CARD_SHIPMENT_CARD_NOT_FOUND",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "ACTIVE_CARD_SHIPMENT_EXISTS",
"message": "<string>",
"detail": {}
}
}Authorizations
API key as Bearer token
Headers
API version (YYYY-MM-DD)
2025-02-14 "2025-02-14"
Body
Request body for creating a card shipment
Box-level destination address
Show child attributes
Show child attributes
Recipient details
Show child attributes
Show child attributes
Courier selection. POSTAL takes no name; COURIER requires a selectable courier name. A manufacturer-assigned courier may appear on the shipment after submit.
- Postal
- Courier
Show child attributes
Show child attributes
Cards to include in this shipment
1Show child attributes
Show child attributes
Response
Card shipment resource
Unique shipment identifier
Shipment lifecycle status
DRAFT, PLACED, IN_PRODUCTION, READY_TO_SHIP, IN_TRANSIT, OUT_FOR_DELIVERY, DELIVERED, DELIVERY_FAILED, EXCEPTION, CANCELED "DRAFT"
Box-level destination address
Show child attributes
Show child attributes
Recipient details
Show child attributes
Show child attributes
Courier on the shipment
- Postal
- Courier
Show child attributes
Show child attributes
Courier tracking number
Courier tracking URL
ISO 8601 cutoff date returned by the manufacturer
ISO 8601 creation timestamp
ISO 8601 last update timestamp
ISO 8601 timestamp when submitted to the manufacturer
ISO 8601 timestamp when all cards were delivered