Simulate Card Order Fulfillment
Overview
Do not enter production data in the Test environment. The Highnote Test environment is for exploring features and training. Use only dummy or test data.
Highnote offers simulations for individual and group physical card order fulfillment. In the Test environment, physical card orders are not physically shipped. You can use these simulations to test the following:
- Your card product's physical card order flow
- Notification events
This guide provides steps for simulating physical card order fulfillment for individual and group card orders.
Prerequisites
- A Highnote account
- An API key or the API Explorer
- An individual card order or group card order
Card order fulfillment lifecycle
When any type of card order is placed, the order follows the following sequence:
- Card order is sent to the printer.
- The shipment is approved.
- The card order is shipped.
- Optional - The card order fails.
You can use the Highnote API to update the status of a physical card order and simulate the card order lifecycle to test your integration.
Simulate individual card order fulfillment
Use the following sections to simulate an individual card order.
Send to printer
Once you have created a physical card order with a status of NEW, you can transition it to SENT_TO_PRINTER.
Use the following mutation to simulate sending a physical payment card order to the printer:
simulatePhysicalPaymentCardOrderSendToPrinter
Query
mutation simulatePhysicalPaymentCardOrderSendToPrinter(
$input: SimulatePhysicalPaymentCardSendToPrinterInput!
) {
simulatePhysicalPaymentCardOrderSendToPrinter(input: $input) {
__typename
... on PhysicalPaymentCardOrder {
id
orderState {
status
}
cardPersonalization {
textLines {
line1
line2
}
}
paymentCardShipment {
courier {
method
signatureRequiredOnDelivery
tracking {
trackingNumber
actualShipDateLocal
}
}
requestedShipDate
senderDetails {
name {
givenName
middleName
familyName
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
deliveryDetails {
name {
givenName
familyName
middleName
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
}
stateHistory {
previousStatus
newStatus
createdAt
}
paymentCard {
id
bin
last4
}
createdAt
updatedAt
}
... on UserError {
errors {
errorPath
code
}
}
}
}
Variables
{ "input": { "physicalPaymentCardOrderId": "PHYSICAL_PAYMENT_CARD_ORDER_ID" } }
Result
{
"data": {
"simulatePhysicalPaymentCardOrderSendToPrinter": {
"__typename": "PhysicalPaymentCardOrder",
"id": "PHYSICAL_PAYMENT_CARD_ORDER_ID",
"orderState": {
"status": "SENT_TO_PRINTER"
},
"cardPersonalization": {
"textLines": {
"line1": "RUSTY EARNHARDT",
"line2": ""
}
},
"paymentCardShipment": {
"courier": {
"method": "USPS_GROUND",
"signatureRequiredOnDelivery": false,
"tracking": null
},
"requestedShipDate": "2022-04-27",
"senderDetails": {
"name": {
"givenName": "John",
"middleName": "James",
"familyName": "Smith"
},
"companyName": "Highnote",
"address": {
"streetAddress": "1234 Main St",
"extendedAddress": "apt 6H",
"postalCode": "94132",
"region": "CA",
"locality": "San Francisco",
"countryCodeAlpha3": "USA"
}
},
"deliveryDetails": {
"name": {
"givenName": "Rusty",
"familyName": "Earnhardt",
"middleName": ""
},
"companyName": null,
"address": {
"streetAddress": "123 Main Street",
"extendedAddress": "",
"postalCode": "12345",
"region": "AL",
"locality": "Anywhere",
"countryCodeAlpha3": "USA"
}
}
},
"stateHistory": [
{
"previousStatus": "NEW",
"newStatus": "SENT_TO_PRINTER",
"createdAt": "2022-04-27T14:34:37.131Z"
},
{
"previousStatus": null,
"newStatus": "NEW",
"createdAt": "2022-04-27T14:26:20.532Z"
}
],
"paymentCard": {
"id": "PAYMENT_CARD_ID",
"bin": "511112",
"last4": "0200"
},
"createdAt": "2022-04-27T14:26:20.532Z",
"updatedAt": "2022-04-27T14:34:37.138Z"
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}
Approve shipment
Once a physical card order has been SENT_TO_PRINTER, you can approve the order and change the status to APPROVED.
Use the following mutation to simulate approving a physical payment card order:
simulatePhysicalPaymentCardOrderApproval
Query
mutation simulatePhysicalPaymentCardOrderApproval(
$input: SimulatePhysicalPaymentCardApprovalInput!
) {
simulatePhysicalPaymentCardOrderApproval(input: $input) {
__typename
... on PhysicalPaymentCardOrder {
id
orderState {
status
}
cardPersonalization {
textLines {
line1
line2
}
}
paymentCardShipment {
courier {
method
signatureRequiredOnDelivery
tracking {
trackingNumber
actualShipDateLocal
}
}
requestedShipDate
senderDetails {
name {
givenName
middleName
familyName
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
deliveryDetails {
name {
givenName
familyName
middleName
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
}
stateHistory {
previousStatus
newStatus
createdAt
}
paymentCard {
id
bin
last4
}
createdAt
updatedAt
}
... on UserError {
errors {
errorPath
code
}
}
}
}
Variables
{ "input": { "physicalPaymentCardOrderId": "PHYSICAL_PAYMENT_CARD_ORDER_ID" } }
Result
{
"data": {
"simulatePhysicalPaymentCardOrderApproval": {
"__typename": "PhysicalPaymentCardOrder",
"id": "PHYSICAL_PAYMENT_CARD_ORDER_ID",
"orderState": {
"status": "APPROVED"
},
"cardPersonalization": {
"textLines": {
"line1": "RUSTY EARNHARDT",
"line2": ""
}
},
"paymentCardShipment": {
"courier": {
"method": "USPS_GROUND",
"signatureRequiredOnDelivery": false,
"tracking": null
},
"requestedShipDate": "2022-04-27",
"senderDetails": {
"name": {
"givenName": "John",
"middleName": "James",
"familyName": "Smith"
},
"companyName": "Highnote",
"address": {
"streetAddress": "1234 Main St",
"extendedAddress": "apt 6H",
"postalCode": "94132",
"region": "CA",
"locality": "San Francisco",
"countryCodeAlpha3": "USA"
}
},
"deliveryDetails": {
"name": {
"givenName": "Rusty",
"familyName": "Earnhardt",
"middleName": ""
},
"companyName": null,
"address": {
"streetAddress": "123 Main Street",
"extendedAddress": "",
"postalCode": "12345",
"region": "AL",
"locality": "Anywhere",
"countryCodeAlpha3": "USA"
}
}
},
"stateHistory": [
{
"previousStatus": "SENT_TO_PRINTER",
"newStatus": "APPROVED",
"createdAt": "2022-04-27T14:37:47.691Z"
},
{
"previousStatus": "NEW",
"newStatus": "SENT_TO_PRINTER",
"createdAt": "2022-04-27T14:34:37.131Z"
},
{
"previousStatus": null,
"newStatus": "NEW",
"createdAt": "2022-04-27T14:26:20.532Z"
}
],
"paymentCard": {
"id": "PAYMENT_CARD_ID",
"bin": "511112",
"last4": "0200"
},
"createdAt": "2022-04-27T14:26:20.532Z",
"updatedAt": "2022-04-27T14:37:47.692Z"
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}
Ship order
Orders with a status of APPROVED may be transitioned to SHIPPED and will return the shipping method, and if available, tracking number.
Use the following mutation to simulate shipping a physical payment card order:
simulatePhysicalPaymentCardOrderShipped
Query
mutation simulatePhysicalPaymentCardOrderShipped(
$input: SimulatePhysicalPaymentCardShippedInput!
) {
simulatePhysicalPaymentCardOrderShipped(input: $input) {
__typename
... on PhysicalPaymentCardOrder {
id
orderState {
status
}
cardPersonalization {
textLines {
line1
line2
}
}
paymentCardShipment {
courier {
method
signatureRequiredOnDelivery
tracking {
trackingNumber
actualShipDateLocal
}
}
requestedShipDate
senderDetails {
name {
givenName
middleName
familyName
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
deliveryDetails {
name {
givenName
familyName
middleName
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
}
stateHistory {
previousStatus
newStatus
createdAt
}
paymentCard {
id
bin
last4
}
createdAt
updatedAt
}
... on UserError {
errors {
errorPath
code
}
}
}
}
Variables
{ "input": { "physicalPaymentCardOrderId": "PHYSICAL_PAYMENT_CARD_ORDER_ID", "trackingNumber": "1Z1111110311111111", "actualShipDate": "2022-04-27" } }
Result
{
"data": {
"simulatePhysicalPaymentCardOrderShipped": {
"__typename": "PhysicalPaymentCardOrder",
"id": "PHYSICAL_PAYMENT_CARD_ORDER_ID",
"orderState": {
"status": "SHIPPED"
},
"cardPersonalization": {
"textLines": {
"line1": "RUSTY EARNHARDT",
"line2": ""
}
},
"paymentCardShipment": {
"courier": {
"method": "USPS_GROUND",
"signatureRequiredOnDelivery": false,
"tracking": {
"trackingNumber": "trackingNumber",
"actualShipDateLocal": "2090-01-01"
}
},
"requestedShipDate": "2022-04-27",
"senderDetails": {
"name": {
"givenName": "John",
"middleName": "James",
"familyName": "Smith"
},
"companyName": "Highnote",
"address": {
"streetAddress": "1234 Main St",
"extendedAddress": "apt 6H",
"postalCode": "94132",
"region": "CA",
"locality": "San Francisco",
"countryCodeAlpha3": "USA"
}
},
"deliveryDetails": {
"name": {
"givenName": "Rusty",
"familyName": "Earnhardt",
"middleName": ""
},
"companyName": null,
"address": {
"streetAddress": "123 Main Street",
"extendedAddress": "",
"postalCode": "12345",
"region": "AL",
"locality": "Anywhere",
"countryCodeAlpha3": "USA"
}
}
},
"stateHistory": [
{
"previousStatus": "APPROVED",
"newStatus": "SHIPPED",
"createdAt": "2022-04-27T14:39:12.137Z"
},
{
"previousStatus": "SENT_TO_PRINTER",
"newStatus": "APPROVED",
"createdAt": "2022-04-27T14:37:47.691Z"
},
{
"previousStatus": "NEW",
"newStatus": "SENT_TO_PRINTER",
"createdAt": "2022-04-27T14:34:37.131Z"
},
{
"previousStatus": null,
"newStatus": "NEW",
"createdAt": "2022-04-27T14:26:20.532Z"
}
],
"paymentCard": {
"id": "PAYMENT_CARD_ID",
"bin": "511112",
"last4": "0200"
},
"createdAt": "2022-04-27T14:26:20.532Z",
"updatedAt": "2022-04-27T14:39:12.148Z"
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}
Fail order
To design your system to handle failed Group Order shipments, you can simulate a status of SHIP_FAILED.
SimulatePhysicalCardGroupOrderShipmentFailed
Query
mutation SimulatePhysicalCardGroupOrderShipmentFailed(
$input: SimulatePhysicalCardGroupOrderShipmentFailedInput!
) {
simulatePhysicalCardGroupOrderShipmentFailed(input: $input) {
__typename
... on PhysicalCardGroupOrder {
id
cardProductId
cardCount
paymentCardShipment {
courier {
method
signatureRequiredOnDelivery
tracking {
trackingNumber
actualShipDateLocal
}
}
requestedShipDate
deliveryDetails {
name {
givenName
middleName
familyName
suffix
title
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
senderDetails {
name {
givenName
middleName
familyName
suffix
title
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
}
orderState {
status
}
stateHistory {
previousStatus
newStatus
createdAt
}
createdAt
updatedAt
}
... on UserError {
errors {
errorPath
code
description
}
}
... on AccessDeniedError {
message
}
}
}
Variables
{ "input": { "groupOrderId": "MC4yMi4xMjM=" } }
Result
{
"data": {
"simulatePhysicalCardGroupOrderShipmentFailed": {
"__typename": "PhysicalCardGroupOrder",
"id": "fg_r327u85138ab43c3a546232523p3ty76",
"cardProductId": "pd_c555e85138ab43c3a541154107e9cd6e",
"cardCount": 10,
"paymentCardShipment": {
"courier": {
"method": "USPS_PRIORITY",
"signatureRequiredOnDelivery": false,
"tracking": null
},
"requestedShipDate": "2022-08-03",
"deliveryDetails": {
"name": {
"givenName": "Homer",
"middleName": "Jay",
"familyName": "Simpson",
"suffix": "Sr",
"title": "Mr"
},
"companyName": "Highnote",
"address": {
"streetAddress": "123 Main St",
"extendedAddress": "APT 2",
"postalCode": "60654",
"locality": "Chicago",
"region": "IL",
"countryCodeAlpha3": "USA"
}
},
"senderDetails": {
"name": {
"givenName": "James",
"middleName": "Jay",
"familyName": "Smith",
"suffix": "Jr",
"title": "Mr"
},
"companyName": "CherityCard",
"address": {
"streetAddress": "888 Main St",
"extendedAddress": "APT 5",
"postalCode": "95121",
"locality": "San Jose",
"region": "CA",
"countryCodeAlpha3": "USA"
}
}
},
"orderState": {
"status": "SHIP_FAILED"
},
"stateHistory": [
{
"previousStatus": "APPROVED",
"newStatus": "SHIP_FAILED",
"createdAt": "2022-08-03T20:16:40.580Z"
},
{
"previousStatus": "SENT_TO_PRINTER",
"newStatus": "APPROVED",
"createdAt": "2022-08-03T20:16:40.580Z"
},
{
"previousStatus": "NEW",
"newStatus": "SENT_TO_PRINTER",
"createdAt": "2022-08-03T20:16:40.580Z"
},
{
"previousStatus": null,
"newStatus": "NEW",
"createdAt": "2022-08-03T20:16:40.580Z"
}
],
"createdAt": "2022-08-03T20:16:40.579Z",
"updatedAt": "2022-08-03T20:16:40.586Z"
}
},
"extensions": {
"requestId": "4a98f0d9-8590-9d59-9301-29f135a8e15a"
}
}
Simulate group order fulfillment
You can simulate group order fulfillment in the Test environment without actually shipping cards. This is useful for simulating group order statuses and notifications.
Send order to printer
You can use the mutations provided in this guide to create and complete a group order.
A completed order will have a status of PENDING.
Use the following mutation to transition the group order to SENT_TO_PRINTER status:
SimulatePhysicalCardGroupOrderSendToPrinter
Query
mutation SimulatePhysicalCardGroupOrderSendToPrinter(
$input: SimulatePhysicalCardGroupOrderSendToPrinterInput!
) {
simulatePhysicalCardGroupOrderSendToPrinter(input: $input) {
__typename
... on PhysicalCardGroupOrder {
id
cardProductId
cardCount
paymentCardShipment {
courier {
method
signatureRequiredOnDelivery
tracking {
trackingNumber
actualShipDateLocal
}
}
requestedShipDate
deliveryDetails {
name {
givenName
middleName
familyName
suffix
title
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
senderDetails {
name {
givenName
middleName
familyName
suffix
title
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
}
orderState {
status
}
stateHistory {
previousStatus
newStatus
createdAt
}
createdAt
updatedAt
}
... on UserError {
errors {
errorPath
code
description
}
}
... on AccessDeniedError {
message
}
}
}
Variables
{ "input": { "groupOrderId": "ORDER_ID" } }
Result
{
"data": {
"simulatePhysicalCardGroupOrderSendToPrinter": {
"__typename": "PhysicalCardGroupOrder",
"id": "ORDER_ID",
"cardProductId": "CARD_PRODUCT_ID",
"cardCount": 10,
"paymentCardShipment": {
"courier": {
"method": "USPS_PRIORITY",
"signatureRequiredOnDelivery": false,
"tracking": null
},
"requestedShipDate": "2022-08-03",
"deliveryDetails": {
"name": {
"givenName": "Homer",
"middleName": "Jay",
"familyName": "Simpson",
"suffix": "Sr",
"title": "Mr"
},
"companyName": "Highnote",
"address": {
"streetAddress": "123 Main St",
"extendedAddress": "APT 2",
"postalCode": "60654",
"locality": "Chicago",
"region": "IL",
"countryCodeAlpha3": "USA"
}
},
"senderDetails": {
"name": {
"givenName": "James",
"middleName": "Jay",
"familyName": "Smith",
"suffix": "Jr",
"title": "Mr"
},
"companyName": "CherityCard",
"address": {
"streetAddress": "888 Main St",
"extendedAddress": "APT 5",
"postalCode": "95121",
"locality": "San Jose",
"region": "CA",
"countryCodeAlpha3": "USA"
}
}
},
"orderState": {
"status": "SENT_TO_PRINTER"
},
"stateHistory": [
{
"previousStatus": "NEW",
"newStatus": "SENT_TO_PRINTER",
"createdAt": "2022-08-03T20:16:40.580Z"
},
{
"previousStatus": null,
"newStatus": "NEW",
"createdAt": "2022-08-03T20:16:40.580Z"
}
],
"createdAt": "2022-08-03T20:16:40.579Z",
"updatedAt": "2022-08-03T20:16:40.586Z"
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}
Approve shipment
Once the group order has been SENT_TO_PRINTER, you can change the status to APPROVED using the following mutation:
SimulatePhysicalCardGroupOrderApproval
Query
mutation SimulatePhysicalCardGroupOrderApproval(
$input: SimulatePhysicalCardGroupOrderApprovalInput!
) {
simulatePhysicalCardGroupOrderApproval(input: $input) {
__typename
... on PhysicalCardGroupOrder {
id
cardProductId
cardCount
paymentCardShipment {
courier {
method
signatureRequiredOnDelivery
tracking {
trackingNumber
actualShipDateLocal
}
}
requestedShipDate
deliveryDetails {
name {
givenName
middleName
familyName
suffix
title
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
senderDetails {
name {
givenName
middleName
familyName
suffix
title
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
}
orderState {
status
}
stateHistory {
previousStatus
newStatus
createdAt
}
createdAt
updatedAt
}
... on UserError {
errors {
errorPath
code
description
}
}
... on AccessDeniedError {
message
}
}
}
Variables
{ "input": { "groupOrderId": "ORDER_ID" } }
Result
{
"data": {
"simulatePhysicalCardGroupOrderApproval": {
"__typename": "PhysicalCardGroupOrder",
"id": "ORDER_ID",
"cardProductId": "CARD_PRODUCT_ID",
"cardCount": 10,
"paymentCardShipment": {
"courier": {
"method": "USPS_PRIORITY",
"signatureRequiredOnDelivery": false,
"tracking": null
},
"requestedShipDate": "2022-08-03",
"deliveryDetails": {
"name": {
"givenName": "Homer",
"middleName": "Jay",
"familyName": "Simpson",
"suffix": "Sr",
"title": "Mr"
},
"companyName": "Highnote",
"address": {
"streetAddress": "123 Main St",
"extendedAddress": "APT 2",
"postalCode": "60654",
"locality": "Chicago",
"region": "IL",
"countryCodeAlpha3": "USA"
}
},
"senderDetails": {
"name": {
"givenName": "James",
"middleName": "Jay",
"familyName": "Smith",
"suffix": "Jr",
"title": "Mr"
},
"companyName": "CherityCard",
"address": {
"streetAddress": "888 Main St",
"extendedAddress": "APT 5",
"postalCode": "95121",
"locality": "San Jose",
"region": "CA",
"countryCodeAlpha3": "USA"
}
}
},
"orderState": {
"status": "APPROVED"
},
"stateHistory": [
{
"previousStatus": "SENT_TO_PRINTER",
"newStatus": "APPROVED",
"createdAt": "2022-08-03T20:16:40.580Z"
},
{
"previousStatus": "NEW",
"newStatus": "SENT_TO_PRINTER",
"createdAt": "2022-08-03T20:16:40.580Z"
},
{
"previousStatus": null,
"newStatus": "NEW",
"createdAt": "2022-08-03T20:16:40.580Z"
}
],
"createdAt": "2022-08-03T20:16:40.579Z",
"updatedAt": "2022-08-03T20:16:40.586Z"
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}
Ship order
For an overview of group order shipping methods, see Shipping Methods.
After a group order is approved, you can use the following mutation to transition to the SHIPPED status.
The shipping method and tracking number (if available) will be returned in the response payload:
SimulatePhysicalCardGroupOrderShipped
Query
mutation SimulatePhysicalCardGroupOrderShipped(
$input: SimulatePhysicalCardGroupOrderShippedInput!
) {
simulatePhysicalCardGroupOrderShipped(input: $input) {
__typename
... on PhysicalCardGroupOrder {
id
cardProductId
cardCount
paymentCardShipment {
courier {
method
signatureRequiredOnDelivery
tracking {
trackingNumber
actualShipDateLocal
}
}
requestedShipDate
deliveryDetails {
name {
givenName
middleName
familyName
suffix
title
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
senderDetails {
name {
givenName
middleName
familyName
suffix
title
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
}
orderState {
status
}
stateHistory {
previousStatus
newStatus
createdAt
}
createdAt
updatedAt
}
... on UserError {
errors {
errorPath
code
description
}
}
... on AccessDeniedError {
message
}
}
}
Variables
{ "input": { "groupOrderId": "ORDER_ID", "trackingNumber": "1Z1111110311111111", "actualShipDate": "2022-08-03" } }
Result
{
"data": {
"simulatePhysicalCardGroupOrderShipped": {
"__typename": "PhysicalCardGroupOrder",
"id": "ORDER_ID",
"cardProductId": "CARD_PRODUCT_ID",
"cardCount": 10,
"paymentCardShipment": {
"courier": {
"method": "USPS_PRIORITY",
"signatureRequiredOnDelivery": false,
"tracking": {
"trackingNumber": "1Z1111110311111111",
"actualShipDateLocal": "2022-08-03"
}
},
"requestedShipDate": "2022-08-03",
"deliveryDetails": {
"name": {
"givenName": "Homer",
"middleName": "Jay",
"familyName": "Simpson",
"suffix": "Sr",
"title": "Mr"
},
"companyName": "Highnote",
"address": {
"streetAddress": "123 Main St",
"extendedAddress": "APT 2",
"postalCode": "60654",
"locality": "Chicago",
"region": "IL",
"countryCodeAlpha3": "USA"
}
},
"senderDetails": {
"name": {
"givenName": "James",
"middleName": "Jay",
"familyName": "Smith",
"suffix": "Jr",
"title": "Mr"
},
"companyName": "CherityCard",
"address": {
"streetAddress": "888 Main St",
"extendedAddress": "APT 5",
"postalCode": "95121",
"locality": "San Jose",
"region": "CA",
"countryCodeAlpha3": "USA"
}
}
},
"orderState": {
"status": "SHIPPED"
},
"stateHistory": [
{
"previousStatus": "SHIPPED",
"newStatus": "SENT_TO_PRINTER",
"createdAt": "2022-08-03T20:16:40.580Z"
},
{
"previousStatus": "SENT_TO_PRINTER",
"newStatus": "APPROVED",
"createdAt": "2022-08-03T20:16:40.580Z"
},
{
"previousStatus": "NEW",
"newStatus": "SENT_TO_PRINTER",
"createdAt": "2022-08-03T20:16:40.580Z"
},
{
"previousStatus": null,
"newStatus": "NEW",
"createdAt": "2022-08-03T20:16:40.580Z"
}
],
"createdAt": "2022-08-03T20:16:40.579Z",
"updatedAt": "2022-08-03T20:16:40.586Z"
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}
Fail order
To design your system to handle failed Group Order shipments, you can simulate a status of SHIP_FAILED.
SimulatePhysicalCardGroupOrderShipmentFailed
Query
mutation SimulatePhysicalCardGroupOrderShipmentFailed(
$input: SimulatePhysicalCardGroupOrderShipmentFailedInput!
) {
simulatePhysicalCardGroupOrderShipmentFailed(input: $input) {
__typename
... on PhysicalCardGroupOrder {
id
cardProductId
cardCount
paymentCardShipment {
courier {
method
signatureRequiredOnDelivery
tracking {
trackingNumber
actualShipDateLocal
}
}
requestedShipDate
deliveryDetails {
name {
givenName
middleName
familyName
suffix
title
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
senderDetails {
name {
givenName
middleName
familyName
suffix
title
}
companyName
address {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
}
}
orderState {
status
}
stateHistory {
previousStatus
newStatus
createdAt
}
createdAt
updatedAt
}
... on UserError {
errors {
errorPath
code
description
}
}
... on AccessDeniedError {
message
}
}
}
Variables
{ "input": { "groupOrderId": "MC4yMi4xMjM=" } }
Result
{
"data": {
"simulatePhysicalCardGroupOrderShipmentFailed": {
"__typename": "PhysicalCardGroupOrder",
"id": "fg_r327u85138ab43c3a546232523p3ty76",
"cardProductId": "pd_c555e85138ab43c3a541154107e9cd6e",
"cardCount": 10,
"paymentCardShipment": {
"courier": {
"method": "USPS_PRIORITY",
"signatureRequiredOnDelivery": false,
"tracking": null
},
"requestedShipDate": "2022-08-03",
"deliveryDetails": {
"name": {
"givenName": "Homer",
"middleName": "Jay",
"familyName": "Simpson",
"suffix": "Sr",
"title": "Mr"
},
"companyName": "Highnote",
"address": {
"streetAddress": "123 Main St",
"extendedAddress": "APT 2",
"postalCode": "60654",
"locality": "Chicago",
"region": "IL",
"countryCodeAlpha3": "USA"
}
},
"senderDetails": {
"name": {
"givenName": "James",
"middleName": "Jay",
"familyName": "Smith",
"suffix": "Jr",
"title": "Mr"
},
"companyName": "CherityCard",
"address": {
"streetAddress": "888 Main St",
"extendedAddress": "APT 5",
"postalCode": "95121",
"locality": "San Jose",
"region": "CA",
"countryCodeAlpha3": "USA"
}
}
},
"orderState": {
"status": "SHIP_FAILED"
},
"stateHistory": [
{
"previousStatus": "APPROVED",
"newStatus": "SHIP_FAILED",
"createdAt": "2022-08-03T20:16:40.580Z"
},
{
"previousStatus": "SENT_TO_PRINTER",
"newStatus": "APPROVED",
"createdAt": "2022-08-03T20:16:40.580Z"
},
{
"previousStatus": "NEW",
"newStatus": "SENT_TO_PRINTER",
"createdAt": "2022-08-03T20:16:40.580Z"
},
{
"previousStatus": null,
"newStatus": "NEW",
"createdAt": "2022-08-03T20:16:40.580Z"
}
],
"createdAt": "2022-08-03T20:16:40.579Z",
"updatedAt": "2022-08-03T20:16:40.586Z"
}
},
"extensions": {
"requestId": "4a98f0d9-8590-9d59-9301-29f135a8e15a"
}
}
Automate your integration
To automate your integration, use the following notification events:
- Physical card fulfillment: Use this notification event to stay notified when an individual card order ships or fails
- Physical card group order: Use this notification to stay notified when a physical card group order ships or fails
The details provided in the payloads from these events can be used for the following use cases:
- Automate your application or website's card order fulfillment workflows
- Create account holder notifications and alerts
- Create status views for card orders in your application or website