{
  "openapi": "3.0.0",
  "info": {
    "title": "Inbound Physical Card API",
    "version": "2.0",
    "description": "This API is used by the core banking system to manage physical cards. API semantic version is 2.0; endpoint path versioning remains v1 for backward compatibility.",
    "contact": {
      "name": "Thales Support",
      "url": "https://www.thalesgroup.com/en/markets/digital-identity-and-security",
      "email": "thalessupport@thalesgroup.com"
    }
  },
  "servers": [
    {
      "url": "https://api.d1.thalescloud.io/banking/v1",
      "description": "Production server"
    },
    {
      "url": "https://api.d1-stg.thalescloud.io/banking/v1",
      "description": "Staging server"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/issuers/{issuerId}/physicalCards/{cardId}/operations:production": {
      "parameters": [
        {
          "$ref": "#/components/parameters/issuer-id-path"
        },
        {
          "$ref": "#/components/parameters/card-id-path"
        },
        {
          "$ref": "#/components/parameters/x-correlation-id"
        }
      ],
      "post": {
        "description": "This API is used by the issuer backend to order a single physical card.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/cardRequest"
              },
              "examples": {
                "thalesProduction": {
                  "summary": "distributionChannel=THALES",
                  "value": {
                    "distributionChannel": "THALES",
                    "consumerId": "consumer_12345",
                    "cardProductId": "debit_card_v1",
                    "issuerRequestId": "req-001",
                    "services": {
                      "issuance": "RENEWAL",
                      "priority": "P1",
                      "delivery": "EXPRESS",
                      "packaging": "GOLD_PACK",
                      "cardCarrier": "NO_CARRIER",
                      "pinMailer": true
                    },
                    "cardDesign": {
                      "cardImage": "myCard_ref"
                    },
                    "encryptedData": "eyJhbGciOiJ...",
                    "paymentApplication": {
                      "config": "config_a",
                      "odaKeyIndex": 1,
                      "derivationKeyIndex": 1
                    },
                    "cardCarrierConfig": {
                      "language": "EN"
                    },
                    "packagingConfig": {
                      "inserts": [
                        "promo"
                      ]
                    },
                    "shipment": {
                      "type": "INDIVIDUAL",
                      "deliveryAddress": {
                        "firstName": "John",
                        "lastName": "Smith",
                        "line1": "1 Main Street",
                        "zipCode": 75001,
                        "city": "Paris",
                        "countryCode": "FR"
                      }
                    }
                  }
                },
                "instantIssuance": {
                  "summary": "distributionChannel=INSTANT",
                  "value": {
                    "distributionChannel": "INSTANT",
                    "consumerId": "consumer_67890",
                    "cardProductId": "instant_card_v1",
                    "persoStation": "branch-042",
                    "services": {
                      "issuance": "CREATION"
                    },
                    "encryptedData": "eyJhbGciOiJ...",
                    "paymentApplication": {
                      "config": "config_instant"
                    }
                  }
                },
                "centralProduction": {
                  "summary": "distributionChannel=CENTRAL",
                  "value": {
                    "distributionChannel": "CENTRAL",
                    "consumerId": "consumer_24680",
                    "cardProductId": "central_card_v1",
                    "persoCenter": "center-paris-01",
                    "services": {
                      "issuance": "REPLACEMENT"
                    },
                    "encryptedData": "eyJhbGciOiJ...",
                    "paymentApplication": {
                      "config": "config_central"
                    },
                    "shipment": {
                      "type": "BULK",
                      "deliveryAddress": {
                        "lastName": "Agency",
                        "line1": "10 Bank Street",
                        "zipCode": 10001,
                        "city": "New York",
                        "countryCode": "US"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Successful card order",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cardOperationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestWithErrorCode"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          }
        },
        "summary": "Card order",
        "operationId": "producePhysicalCard"
      }
    },
    "/issuers/{issuerId}/physicalCards/{cardId}/operations:updateOrder": {
      "parameters": [
        {
          "$ref": "#/components/parameters/issuer-id-path"
        },
        {
          "$ref": "#/components/parameters/card-id-path"
        },
        {
          "$ref": "#/components/parameters/x-correlation-id"
        }
      ],
      "post": {
        "description": "This API is used by the issuer backend to request an update on a card order",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/updateCardOrderRequest"
              },
              "examples": {
                "cancelOrder": {
                  "summary": "Cancel card order",
                  "value": {
                    "type": "CANCEL"
                  }
                },
                "redirectOrder": {
                  "summary": "Redirect delivery address",
                  "value": {
                    "type": "REDIRECT",
                    "newDeliveryAddress": {
                      "lastName": "Smith",
                      "line1": "25 New Street",
                      "zipCode": 75002,
                      "city": "Paris",
                      "countryCode": "FR"
                    }
                  }
                },
                "accelerateOrder": {
                  "summary": "Accelerate card order",
                  "value": {
                    "type": "ACCELERATE",
                    "newDueDate": "2025-01-15"
                  }
                },
                "accelerateAndRedirect": {
                  "summary": "Accelerate and redirect delivery",
                  "value": {
                    "type": "ACCELERATE_AND_REDIRECT",
                    "newDueDate": "2025-01-15",
                    "newDeliveryAddress": {
                      "lastName": "Smith",
                      "line1": "25 New Street",
                      "zipCode": 75002,
                      "city": "Paris",
                      "countryCode": "FR"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Successful pull & change request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cardOperationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestWithErrorCode"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          }
        },
        "summary": "Pull & change",
        "operationId": "updatePhysicalCardOrder"
      }
    },
    "/issuers/{issuerId}/physicalCards/{cardId}/track": {
      "post": {
        "description": "This API is used by the issuer backend to request the shipment tracking of any card not personalized by Thales\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackCardOperationRequest"
              },
              "examples": {
                "shipment": {
                  "summary": "Shipment tracking",
                  "value": {
                    "trackingType": "SHIPMENT",
                    "trackingNumber": "61293150000079650811",
                    "shipmentDate": "2023-01-21T17:32:28Z",
                    "productionSite": "London",
                    "postalCode": "WC2N5DU",
                    "countryCode": "GB"
                  }
                },
                "production": {
                  "summary": "Production tracking",
                  "value": {
                    "trackingType": "PRODUCTION",
                    "productionSite": "London"
                  }
                },
                "return": {
                  "summary": "Return tracking",
                  "value": {
                    "trackingType": "RETURN",
                    "productionSite": "London"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Successful track card request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cardOperationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestWithErrorCode"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          }
        },
        "summary": "Track Card",
        "operationId": "TrackCardOperationRequest"
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/issuer-id-path"
        },
        {
          "$ref": "#/components/parameters/card-id-path"
        },
        {
          "$ref": "#/components/parameters/x-correlation-id"
        }
      ]
    },
    "/issuers/{issuerId}/physicalCards/{cardId}/productionStatus": {
      "parameters": [
        {
          "$ref": "#/components/parameters/issuer-id-path"
        },
        {
          "$ref": "#/components/parameters/card-id-path"
        },
        {
          "$ref": "#/components/parameters/x-correlation-id"
        }
      ],
      "get": {
        "description": "This API is used by the issuer backend to get the card order status.",
        "responses": {
          "200": {
            "$ref": "#/components/responses/ProductionStatusResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest-2"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized-2"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenForPhysicalCard"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundForPhysicalCard"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError-2"
          }
        },
        "summary": "Get card order status",
        "operationId": "getPhysicalCardProductionStatus"
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "description": "A JWT generated by the [get token API](https://docs.payments.thalescloud.io/central-issuance/integrate-d1-api/d1-api-reference/inbound-api-to-d1/oauth2-api#post-oauth2-token).<br/>\nThe server checks the validity of the provided token to control access to this protected resource. \nPlease refer to [Authorization flow](https://docs.payments.thalescloud.io/central-issuance/integrate-d1-api/d1-api-reference/inbound-api-to-d1/oauth2-api#post-oauth2-token) \nfor more details about the flow and on how to get this JWT.\n",
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "cardRequest": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/cardRequestThales"
          },
          {
            "$ref": "#/components/schemas/cardRequestInstant"
          },
          {
            "$ref": "#/components/schemas/cardRequestCentral"
          }
        ],
        "discriminator": {
          "propertyName": "distributionChannel",
          "mapping": {
            "THALES": "#/components/schemas/cardRequestThales",
            "INSTANT": "#/components/schemas/cardRequestInstant",
            "CENTRAL": "#/components/schemas/cardRequestCentral"
          }
        }
      },
      "distributionChannel": {
        "type": "string",
        "description": "Channel used to personalize the card.\n|Value|Description|\n|-------|-------|\n| THALES  | Thales personalization center |\n| INSTANT | Instant issuance in branch |\n| CENTRAL | Bank or partner center |\n",
        "enum": [
          "THALES",
          "INSTANT",
          "CENTRAL"
        ]
      },
      "cardRequestThales": {
        "title": "distributionChannel = THALES",
        "required": [
          "distributionChannel",
          "services",
          "encryptedData",
          "shipment",
          "paymentApplication"
        ],
        "type": "object",
        "properties": {
          "distributionChannel": {
            "$ref": "#/components/schemas/distributionChannel"
          },
          "consumerId": {
            "type": "string",
            "description": "Unique identifier of the consumer. <br>\nMandatory for implicit registration.\n",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "[A-Za-z0-9_-]{1,64}"
          },
          "cardProductId": {
            "type": "string",
            "description": "Unique identifier of the type of card ( defined during the onboarding of D1).<br>\nMandatory for implicit registration.\n",
            "minLength": 1,
            "maxLength": 48,
            "pattern": "[A-Za-z0-9_-]{1,48}"
          },
          "issuerRequestId": {
            "type": "string",
            "description": "Identifier provided by issuer to identify the card production request",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$",
            "example": "01c5a05e-e197-11ec-8fea-0242ac120002"
          },
          "services": {
            "$ref": "#/components/schemas/services"
          },
          "encryptedData": {
            "$ref": "#/components/schemas/encryptedData"
          },
          "cardDesign": {
            "$ref": "#/components/schemas/cardDesign"
          },
          "paymentApplication": {
            "$ref": "#/components/schemas/paymentApplication"
          },
          "cardCarrierConfig": {
            "$ref": "#/components/schemas/cardCarrierConfig"
          },
          "packagingConfig": {
            "$ref": "#/components/schemas/packagingConfig"
          },
          "shipment": {
            "$ref": "#/components/schemas/shipment"
          },
          "state": {
            "description": "Deprecated. This field is no longer used and will be removed by end of 2026.\n",
            "type": "string",
            "deprecated": true,
            "x-removal-date": "2026-12-31",
            "enum": [
              "ACTIVE",
              "SUSPENDED"
            ]
          },
          "oldCardId": {
            "type": "string",
            "description": "Deprecated. This field is no longer used and will be removed by end of 2026.\n",
            "deprecated": true,
            "x-removal-date": "2026-12-31",
            "minLength": 1,
            "maxLength": 48,
            "pattern": "^[A-Za-z0-9_-]{1,48}$"
          }
        }
      },
      "cardRequestCentral": {
        "title": "distributionChannel = CENTRAL",
        "required": [
          "distributionChannel",
          "services",
          "encryptedData",
          "shipment",
          "paymentApplication"
        ],
        "type": "object",
        "properties": {
          "distributionChannel": {
            "$ref": "#/components/schemas/distributionChannel"
          },
          "consumerId": {
            "$ref": "#/components/schemas/consumerId"
          },
          "cardProductId": {
            "$ref": "#/components/schemas/cardProductId"
          },
          "persoCenter": {
            "type": "string",
            "description": "Unique identifier of the personalization center."
          },
          "services": {
            "$ref": "#/components/schemas/services"
          },
          "encryptedData": {
            "$ref": "#/components/schemas/encryptedData"
          },
          "cardDesign": {
            "$ref": "#/components/schemas/cardDesign"
          },
          "paymentApplication": {
            "$ref": "#/components/schemas/paymentApplication"
          },
          "cardCarrierConfig": {
            "$ref": "#/components/schemas/cardCarrierConfig"
          },
          "shipment": {
            "$ref": "#/components/schemas/shipment"
          },
          "state": {
            "description": "Deprecated. This field is no longer used and will be removed by end of 2026.\n",
            "type": "string",
            "deprecated": true,
            "x-removal-date": "2026-12-31",
            "enum": [
              "ACTIVE",
              "SUSPENDED"
            ]
          },
          "oldCardId": {
            "type": "string",
            "description": "Deprecated. This field is no longer used and will be removed by end of 2026.\n",
            "deprecated": true,
            "x-removal-date": "2026-12-31",
            "minLength": 1,
            "maxLength": 48,
            "pattern": "^[A-Za-z0-9_-]{1,48}$"
          }
        }
      },
      "cardRequestInstant": {
        "title": "distributionChannel = INSTANT",
        "required": [
          "distributionChannel",
          "services",
          "encryptedData",
          "paymentApplication",
          "persoStation"
        ],
        "type": "object",
        "properties": {
          "distributionChannel": {
            "$ref": "#/components/schemas/distributionChannel"
          },
          "consumerId": {
            "$ref": "#/components/schemas/consumerId"
          },
          "cardProductId": {
            "$ref": "#/components/schemas/cardProductId"
          },
          "persoStation": {
            "type": "string",
            "description": "Unique identifier of the station used for card personalization."
          },
          "services": {
            "$ref": "#/components/schemas/services"
          },
          "encryptedData": {
            "$ref": "#/components/schemas/encryptedData"
          },
          "cardDesign": {
            "$ref": "#/components/schemas/cardDesign"
          },
          "paymentApplication": {
            "$ref": "#/components/schemas/paymentApplication"
          },
          "cardCarrierConfig": {
            "$ref": "#/components/schemas/cardCarrierConfig"
          },
          "state": {
            "description": "Deprecated. This field is no longer used and will be removed by end of 2026.\n",
            "type": "string",
            "deprecated": true,
            "x-removal-date": "2026-12-31",
            "enum": [
              "ACTIVE",
              "SUSPENDED"
            ]
          },
          "oldCardId": {
            "type": "string",
            "description": "Deprecated. This field is no longer used and will be removed by end of 2026.\n",
            "deprecated": true,
            "x-removal-date": "2026-12-31",
            "minLength": 1,
            "maxLength": 48,
            "pattern": "^[A-Za-z0-9_-]{1,48}$"
          }
        }
      },
      "services": {
        "required": [
          "issuance"
        ],
        "properties": {
          "issuance": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$",
            "description": "The type of issuance.<br/>Value must be one of the identifiers configured during onboarding.\n<br/>  \n|Attribute|Description|\n|-------|-------|\n|CREATION|Issuance of a brand-new card to a user|\n|RENEWAL|An existing card reaches its expiration date and needs to be replaced with a new one for continued use|\n|REPLACEMENT|An existing card needs to be reissued due to loss, theft, or damage.|\n",
            "example": "RENEWAL"
          },
          "priority": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$",
            "description": "The level of priority agreed for the card production.<br/>Value must be one of the identifiers configured during onboarding.\n",
            "example": "P1"
          },
          "delivery": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$",
            "default": "NO_SHIPMENT",
            "description": "The shipment method.<br/>Value must be one of the identifiers configured during onboarding.\n",
            "example": "DHL"
          },
          "packaging": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$",
            "example": "welcome_pack_red",
            "default": "NO_PACK",
            "description": "Unique identifier of the packaging.<br/>Value must be one of the identifiers configured during onboarding.\n"
          },
          "cardCarrier": {
            "type": "string",
            "default": "NO_CARRIER",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$",
            "description": "Unique identifier of the card carrier.<br/>Value must be one of the identifiers configured during onboarding.\n"
          },
          "pinMailer": {
            "type": "boolean",
            "default": false,
            "description": "Enable the option to send the PIN value to the consumer via post mail. \n"
          },
          "alphaCard": {
            "type": "boolean",
            "default": false,
            "description": "Enable the option to produce a sample card in the production environment.\n"
          }
        }
      },
      "encryptedData": {
        "type": "string",
        "x-sensitive": true,
        "description": "The encrypted **[Card Data](https://docs.payments.thalescloud.io/central-issuance/integrate-d1-api/d1-api-reference/inbound-api-to-d1/central-issuance-api#encrypted-carddata)**.<br/>\nThis value is encrypted using the JWE encryption (please refer to the [Sensitive Information Encryption](https://app.gitbook.com/o/fwy1mtbRONGA2YDKDBr0/s/WhgSoXgpjZJxLx4cDHB1/integrate-d1-api/d1-connectivity/encrypt-sensitive-data) for more details)\n"
      },
      "cardData": {
        "type": "object",
        "required": [
          "pan",
          "exp",
          "name"
        ],
        "properties": {
          "cardProductionType": {
            "type": "string",
            "enum": [
              "MAG_AND_CHIP_CARD"
            ]
          },
          "pan": {
            "description": "The PAN value (Primary Account Number).",
            "type": "string",
            "pattern": "^[0-9]{12,19}$",
            "example": "4929403965000868"
          },
          "exp": {
            "description": "The card expiration date in the format ```MMYY```.\n",
            "type": "string",
            "pattern": "^(0[1-9]|1[0-2])([0-9]{2})$",
            "example": "1223"
          },
          "name": {
            "description": "The card holder name printed on the card.\n",
            "type": "string",
            "example": "MR. JOHN SMITH"
          },
          "secondName": {
            "description": "The second line of the name printed on the card. \n",
            "type": "string",
            "example": "COMPANY NAME"
          },
          "cvv2": {
            "type": "string",
            "description": "The card verification value printed on the card.<br/>\nVisa: CVV2 - 3 digits <br/>\nMastercard: CVC2 - 3 digits <br/>\nAmerican Express: CSC - 4 digits\n",
            "pattern": "^\\d{3,4}$",
            "example": "123"
          },
          "pin": {
            "$ref": "#/components/schemas/pinData"
          },
          "icvv": {
            "description": "The integrated card verification value loaded into the chip.  <br/>\nVisa: iCVV - 3 digits <br/>\nMastercard: iCVC - 3 digits <br/>\nAmerican Express: iCSC - 5 digits\n",
            "type": "string",
            "pattern": "^(?:\\d{3}|\\d{5})$",
            "example": "325"
          },
          "panSequenceNumber": {
            "description": "The PAN Sequence Number.",
            "type": "string",
            "pattern": "^[0-9]{2}$",
            "minLength": 2,
            "maxLength": 2,
            "example": "00"
          },
          "effectiveDate": {
            "description": "The card effective date in the format ```YYYY-MM-DD```.<br />\nDefault value is the card production request date.\n",
            "type": "string",
            "format": "date",
            "example": "2024-05-15"
          },
          "trackData": {
            "description": "The raw track data to be encoded on the card.",
            "type": "object",
            "required": [
              "track1",
              "track2"
            ],
            "properties": {
              "track1": {
                "type": "string",
                "description": "Formatted track 1 data<br/>\n```%B<PAN>^<NAME>^<EXP><SERVICE><DISCRETIONARY>?```\n",
                "pattern": "^%B\\d{13,19}\\^[A-Z0-9\\/.\\- ]{2,26}\\^\\d{4}\\d{3}[0-9A-Za-z]{0,39}\\?$",
                "example": "%B5143772040938517^ROGER/ROSALIND ^25121010000000000000?"
              },
              "track2": {
                "type": "string",
                "description": "Formatted track 2 data<br/>\n```;<PAN>=<EXP><SERVICE><DISCRETIONARY>?```\n",
                "pattern": "^;\\d{13,19}=\\d{4}\\d{3}\\d{0,20}\\?$",
                "example": ";5143772040938517=201020100010000000000?"
              },
              "track3": {
                "type": "string",
                "description": "Formatted track 3 data<br/>\n```;<PAN>=<BODY>?```\n",
                "pattern": "^;\\d{13,19}=\\d{0,107}\\?$",
                "example": ";0000000000000000=2512101008401234567890123456?"
              }
            }
          },
          "cvv1": {
            "description": "The card verification value encoded in the magnetic stripe.<br/>\nVisa: CVV1 - 3 digits <br/>\nMastercard: CVC1 - 3 digits <br/>\nAmerican Express: CSC5 - 5 digits \n",
            "type": "string",
            "pattern": "^(?:\\d{3}|\\d{5})$",
            "example": "965"
          },
          "pvv": {
            "description": "The PIN Verification Value.<br />\n",
            "type": "string",
            "pattern": "^[0-9]{4}$",
            "default": "0000",
            "example": "1754"
          },
          "encodedName": {
            "type": "string",
            "pattern": "^[A-Z0-9/. -]{2,26}$",
            "minLength": 2,
            "maxLength": 26,
            "description": "The card holder name based on ISO-7813, encoded in the magnetic stripe and loaded into the chip.<br />\nExamples :\n| Cardholder Name Format   | Example                                 |\n|--------------------------|-----------------------------------------|\n| LASTNAME/FIRSTNAME       | \"DOE/JANE\" |\n| LASTNAME/FIRSTNAME.TITLE | \"DOE/JANE.MRS\" |\n| with spaces #1           | \"DOE/JANE                  \" |\n| with spaces #2           | \"DOE/JANE.MRS              \" |\n| with numbers             | \"DOE/ JANE 01\" |\n| < empty name >           | \"/.\" |\n"
          },
          "paymentAccountReference": {
            "type": "string",
            "description": "The Payment Account Reference(PAR).<br/> The PAR Data is comprised of a 4 character BIN Controller Identifier assigned by EMVCo to Registered BIN Controllers followed by a unique 25 character value\n",
            "pattern": "^[0-9A-Z]{29}$",
            "example": "512381D9F8E0629211E3949A08002"
          },
          "applications": {
            "type": "array",
            "minItems": 0,
            "maxItems": 10,
            "items": {
              "type": "object",
              "$ref": "#/components/schemas/tlvBlock"
            }
          }
        }
      },
      "tlvBlock": {
        "type": "object",
        "required": [
          "kekId",
          "macKey",
          "tlvData",
          "mac"
        ],
        "properties": {
          "appletAid": {
            "type": "string",
            "description": "Application AID",
            "example": "FFFFFFFFFFFFFFFFFFD2760000850101",
            "pattern": "^[A-F0-9]{4,32}$"
          },
          "appletDataLength": {
            "type": "string",
            "description": "Application size",
            "pattern": "^[0-9]{1,3}$"
          },
          "appletStartCode": {
            "type": "string",
            "description": "Application start code",
            "pattern": "^[A-F0-9]{4,64}$"
          },
          "kekId": {
            "type": "string",
            "example": "01",
            "description": "The version of the key used to encrypt the block\n",
            "pattern": "^[0-9]{1,3}$"
          },
          "macKey": {
            "type": "string",
            "description": "The MAC key encrypted under the encryption Key.\n",
            "pattern": "^[A-F0-9]{16,32}$"
          },
          "tlvDataLength": {
            "type": "string",
            "description": "TLV data length",
            "pattern": "^[0-9]{1,4}$"
          },
          "tlvData": {
            "type": "string",
            "description": "TLV data",
            "pattern": "^[A-F0-9]{6,20000}$"
          },
          "mac": {
            "type": "string",
            "description": "MAC of the TLV data",
            "example": "01234567",
            "pattern": "^[A-F0-9]{8,8}$"
          }
        }
      },
      "cardDesign": {
        "type": "object",
        "properties": {
          "images": {
            "description": "List of additional images that can be printed on the card.\n",
            "type": "array",
            "minItems": 0,
            "maxItems": 5,
            "default": [],
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_.-\\\\\\/%\\^?=]{0,64}$"
            },
            "example": [
              "image_1",
              "image_2"
            ]
          },
          "customLines": {
            "description": "List of additional texts that can be printed on the card.\n",
            "type": "array",
            "minItems": 0,
            "maxItems": 10,
            "default": [],
            "items": {
              "type": "string",
              "pattern": "^[\\p{L}\\p{N}@ ,.'_#;:\\/-?=%\\\\\\^+&]{0,256}$"
            },
            "example": [
              "Custom text 1",
              "Custom text 2"
            ]
          },
          "cardImage": {
            "type": "string",
            "description": "Unique identifier of the AllAboutMe image to be printed onto the card, previously uploaded by end user.\n",
            "pattern": "^[A-Za-z0-9_\\-\\\\\\/.\\^]{0,48}$",
            "example": "3krr0g1r5"
          },
          "artworkId": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$",
            "description": "Unique identifier of the physical card artwork.\n"
          },
          "memberId": {
            "type": "string",
            "description": "MemberId printed onto the card.\n",
            "pattern": "^[A-Za-z0-9_\\\\\\/.-]{1,48}$",
            "example": "123456789"
          }
        }
      },
      "paymentApplication": {
        "type": "object",
        "required": [
          "config"
        ],
        "properties": {
          "config": {
            "type": "string",
            "description": "The reference to a predefined set of EMV parameters.\n",
            "example": "config_a",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$"
          },
          "odaKeyIndex": {
            "type": "string",
            "description": "The index of the Master key to be used for the ODA key certification.",
            "example": "01",
            "pattern": "^[A-F0-9]{2}$"
          },
          "derivationKeyIndex": {
            "type": "string",
            "description": "The index of the Issuer Master Keys to be used for ICC Keys computation.",
            "example": "01",
            "pattern": "^[A-F0-9]{2}$"
          },
          "pvKeyIndex": {
            "type": "string",
            "description": "The index of the PIN Verification Key to be used for PVV computation.",
            "example": "01",
            "pattern": "^[A-F0-9]{2}$"
          },
          "cvKeyIndex": {
            "type": "string",
            "description": "The index of the Card Verification Key to be used for CVV computation.",
            "example": "01",
            "pattern": "^[A-F0-9]{2}$"
          }
        }
      },
      "cardCarrierConfig": {
        "type": "object",
        "properties": {
          "language": {
            "description": "The language of the card carrier, based on ISO 639-1 alpha-2 format.\n",
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "pattern": "^[A-Z]{2}$",
            "example": "EN"
          },
          "images": {
            "description": "List of additional images that can be printed on the card carrier.\n",
            "type": "array",
            "minItems": 0,
            "maxItems": 5,
            "default": [],
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_.-\\\\\\/%\\^?=]{0,64}$"
            },
            "example": [
              "image_1",
              "image_2"
            ]
          },
          "customLines": {
            "description": "List of additional texts that can be printed on the card carrier.\n",
            "type": "array",
            "minItems": 0,
            "maxItems": 10,
            "default": [],
            "items": {
              "type": "string",
              "pattern": "^[\\p{L}\\p{N}@ ,.'_#;:\\/-?=%\\\\\\^+&]{0,256}$"
            },
            "example": [
              "Custom text 1",
              "Custom text 2"
            ]
          },
          "multiCardId": {
            "description": "All the cards with the same identifier will be grouped on the same card carrier.\n",
            "type": "string",
            "minLength": 1,
            "maxLength": 48,
            "pattern": "^[A-Za-z0-9_-]{1,48}$",
            "example": "cmp7m3zdf12qj"
          },
          "multiCardOrder": {
            "description": "Order of the card on the carrier, compared to other cards.\n",
            "type": "string",
            "minLength": 1,
            "maxLength": 2,
            "pattern": "^[0-9]{1,2}$",
            "example": "1"
          }
        }
      },
      "packagingConfig": {
        "type": "object",
        "properties": {
          "inserts": {
            "type": "array",
            "minItems": 0,
            "maxItems": 10,
            "items": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_-]{1,48}$"
            },
            "description": "List of inserts. Each insert must be a unique identifier.\n",
            "example": [
              "promo_card",
              "manual_v2"
            ]
          }
        }
      },
      "shipment": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/shipmentIndividual"
          },
          {
            "$ref": "#/components/schemas/shipmentBulk"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "INDIVIDUAL": "#/components/schemas/shipmentIndividual",
            "BULK": "#/components/schemas/shipmentBulk"
          }
        }
      },
      "shipmentIndividual": {
        "title": "type = INDIVIDUAL",
        "type": "object",
        "required": [
          "type",
          "deliveryAddress"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Option to send the card to the consumer individually or in bulk to an agency.<br/>\nWhen shipment type is ```BULK``` all the cards with the same delivery address, and shipped the same day will be grouped together automatically.\n",
            "enum": [
              "INDIVIDUAL"
            ]
          },
          "deliveryAddress": {
            "description": "The recipient's address.\n",
            "$ref": "#/components/schemas/address"
          }
        }
      },
      "shipmentBulk": {
        "title": "type = BULK",
        "type": "object",
        "required": [
          "type",
          "deliveryAddress"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Option to send the card to the consumer individually or in bulk to an agency.<br/>\nWhen shipment type is ```BULK``` all the cards with the same delivery address, and shipped the same day will be grouped together automatically.\n",
            "enum": [
              "BULK"
            ]
          },
          "deliveryAddress": {
            "description": "The recipient's address.\n",
            "$ref": "#/components/schemas/address"
          },
          "individualAddress": {
            "description": "The consumer address.<br>\nRequired only for ```BULK``` + card carrier required.\n",
            "$ref": "#/components/schemas/address"
          },
          "groupId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "First level of grouping when shipment type is ```BULK```.<br/>\nOptional, to be used only if grouping per delivery address is not sufficient.<br/>\nAll the cards with the same groupId will be put together in the same box.<br/>\n"
          },
          "orderId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Second level of grouping when shipment type is ```BULK```.<br/>\nOptional, to be used only if grouping per delivery address is not sufficient.<br/>\nAll the cards with the same orderId will be put together.<br/>\n"
          }
        }
      },
      "pinData": {
        "title": "Pin Data",
        "oneOf": [
          {
            "$ref": "#/components/schemas/pinblock3DESISO0"
          },
          {
            "$ref": "#/components/schemas/pinblock3DESISO0TK"
          },
          {
            "$ref": "#/components/schemas/pinblockAESISO4"
          }
        ]
      },
      "pinblock3DESISO0": {
        "title": "ISO0",
        "type": "object",
        "required": [
          "type",
          "encryptedPin",
          "kid"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the PIN Block.",
            "enum": [
              "ISO0"
            ]
          },
          "encryptedPin": {
            "type": "string",
            "minLength": 16,
            "maxLength": 16,
            "description": "The PIN in format ISO0 encrypted under 3DES Key.\n",
            "example": "9BFC7D4D47C14BEE"
          },
          "kid": {
            "type": "string",
            "minLength": 1,
            "maxLength": 3,
            "example": "01",
            "description": "The version of the 3DES key used to encrypt the PIN.\n"
          }
        }
      },
      "pinblock3DESISO0TK": {
        "title": "ISO0TK",
        "type": "object",
        "required": [
          "type",
          "encryptedPin",
          "transportKeyValue",
          "transportKeyKCV",
          "kid"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the PIN Block.",
            "enum": [
              "ISO0TK"
            ]
          },
          "encryptedPin": {
            "type": "string",
            "minLength": 16,
            "maxLength": 16,
            "description": "The PIN in format ISO0 encrypted under a transport key.\n",
            "example": "9BFC7D4D47C14BEE"
          },
          "transportKeyValue": {
            "type": "string",
            "minLength": 32,
            "maxLength": 32,
            "description": "The transport key encrypted under 3DES Key.\n"
          },
          "transportKeyKCV": {
            "type": "string",
            "minLength": 6,
            "maxLength": 6,
            "description": "The transport key KCV (Key Check Value).\n"
          },
          "kid": {
            "type": "string",
            "minLength": 1,
            "maxLength": 3,
            "example": "01",
            "description": "The version of the 3DES key used to encrypt the KEY.\n"
          }
        }
      },
      "pinblockAESISO4": {
        "title": "ISO4",
        "type": "object",
        "required": [
          "type",
          "encryptedPin",
          "kid"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the PIN Block.",
            "enum": [
              "ISO4"
            ]
          },
          "encryptedPin": {
            "type": "string",
            "description": "The PIN in format ISO4 encrypted under AES key.\n",
            "pattern": "^[A-F0-9]{32}$",
            "example": "441234AAAAAAAAAA911B9B36BC7CE94E"
          },
          "kid": {
            "type": "string",
            "pattern": "^[0-9]{1,3}$",
            "example": "01",
            "description": "The version of the key used to encrypt the PIN.\n"
          }
        }
      },
      "address": {
        "type": "object",
        "required": [
          "lastName",
          "line1",
          "zipCode",
          "city",
          "countryCode"
        ],
        "properties": {
          "title": {
            "type": "string",
            "description": "The title.",
            "minLength": 1,
            "maxLength": 40,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,40}$",
            "example": "Mr."
          },
          "firstName": {
            "type": "string",
            "description": "The first name.",
            "minLength": 1,
            "maxLength": 40,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,40}$",
            "example": "John"
          },
          "lastName": {
            "type": "string",
            "description": "The last name.",
            "minLength": 1,
            "maxLength": 40,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,40}$",
            "example": "Smith"
          },
          "companyName": {
            "type": "string",
            "description": "The name of the company.",
            "minLength": 1,
            "maxLength": 64,
            "example": "Thales",
            "pattern": "^[\\p{L}\\p{N}\\p{M} '_#;:.,-\\/+&]{1,64}$"
          },
          "line1": {
            "type": "string",
            "description": "The first line of the address.",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,64}$",
            "example": "Street #1"
          },
          "line2": {
            "type": "string",
            "description": "The second line of the address.",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,64}$",
            "example": "Street #2"
          },
          "line3": {
            "type": "string",
            "description": "The third line of the address.",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,64}$",
            "example": "Street #3"
          },
          "line4": {
            "type": "string",
            "description": "Deprecated. This field is no longer used and will be removed by end of 2026.\n",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,64}$",
            "example": "Street #4",
            "deprecated": true,
            "x-removal-date": "2026-12-31"
          },
          "city": {
            "type": "string",
            "description": "The city name.",
            "minLength": 1,
            "maxLength": 32,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,32}$",
            "example": "London"
          },
          "state": {
            "type": "string",
            "description": "The state.",
            "minLength": 1,
            "maxLength": 30,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,30}$"
          },
          "zipCode": {
            "type": "string",
            "description": "The postal code or ZIP Code.",
            "minLength": 1,
            "maxLength": 10,
            "pattern": "^[0-9A-Z- ]{1,10}$",
            "example": "WC2N 5DU"
          },
          "countryCode": {
            "type": "string",
            "description": "The country code, based on ISO 3166-1 alpha-2 format",
            "minLength": 2,
            "maxLength": 2,
            "pattern": "^[A-Z]{2}$",
            "example": "GB"
          },
          "mobilePhoneNumber": {
            "type": "object",
            "required": [
              "countryCode",
              "phoneNumber"
            ],
            "description": "International phone number, used for card shipment contact purpose.",
            "properties": {
              "countryCode": {
                "type": "string",
                "description": "The country calling code.",
                "minLength": 2,
                "maxLength": 11,
                "pattern": "^\\+[0-9]{1,10}$",
                "example": "+420"
              },
              "phoneNumber": {
                "type": "string",
                "description": "The local phone number.",
                "minLength": 1,
                "maxLength": 14,
                "pattern": "^[0-9]{1,14}$",
                "example": "777222333"
              }
            }
          },
          "email": {
            "type": "string",
            "description": "The email, used for card shipment contact purpose.",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,15}$",
            "example": "john.doe@dummymail.com"
          }
        }
      },
      "cardOperationResponse": {
        "type": "object",
        "description": "Operation information.",
        "properties": {
          "operationId": {
            "$ref": "#/components/schemas/operationId"
          }
        }
      },
      "productionStatus": {
        "title": "Production Status",
        "description": "The card production status and information",
        "required": [
          "status"
        ],
        "allOf": [
          {
            "type": "object",
            "properties": {
              "status": {
                "$ref": "#/components/schemas/productionStatusInNotification"
              },
              "reason": {
                "type": "string",
                "description": "Additional details in case of exception during data processing or card production",
                "example": ""
              },
              "consumerId": {
                "type": "string",
                "description": "The id of the end user.",
                "example": "271b-6e47-8ec3-7f3f"
              },
              "issuerRequestId": {
                "type": "string",
                "description": "The unique identifier provided by issuer to identify the card production request",
                "minLength": 1,
                "maxLength": 64,
                "example": "01c5a05e-e197-11ec-8fea-0242ac120002"
              },
              "dueDate": {
                "type": "string",
                "format": "date",
                "example": "2023-01-21",
                "description": "The estimated card production date. It is in the format ```YYYY-MM-DD```."
              },
              "productionRequestDate": {
                "type": "string",
                "format": "date-time",
                "example": "2023-01-03T17:12:34Z",
                "description": "The date and time of the card production request. It is in the format ```YYYY-MM-DDThh:mm:ssZ``` for the timezone GMT+0."
              },
              "productionDate": {
                "type": "string",
                "format": "date-time",
                "example": "2023-01-20T17:32:28Z",
                "description": "The date the card was produced. It is in the format ```YYYY-MM-DDThh:mm:ssZ``` for the timezone GMT+0."
              },
              "productionSite": {
                "maxLength": 50,
                "minLength": 0,
                "type": "string",
                "description": "The factory where the card is produced.",
                "example": "Gemenos"
              },
              "name": {
                "maxLength": 50,
                "minLength": 0,
                "description": "The card holder name printed on the card.\n",
                "type": "string",
                "example": "MR. JOHN SMITH"
              },
              "maskedPan": {
                "maxLength": 19,
                "minLength": 12,
                "description": "The masked PAN value (Primary Account Number).\n",
                "type": "string",
                "example": "123456xxxxxx7890",
                "pattern": "^[0-9xX\\*]{12,19}$"
              },
              "orderId": {
                "description": "The unique identifier of order used for card production.\n",
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]{1,64}$",
                "example": "9b95d70e-21fe-4c36-9368-ddd7fbd729e8"
              },
              "packageId": {
                "description": "The unique identifier of the package used for card production.\n",
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]{1,64}$",
                "example": "be0b085c-ef03-4581-9e7b-50dbb2f08f43"
              },
              "shipment": {
                "$ref": "#/components/schemas/shipment-2"
              },
              "services": {
                "$ref": "#/components/schemas/services-2"
              },
              "inputFileName": {
                "type": "string",
                "minLength": 1,
                "maxLength": 256,
                "description": "Name of the input file in case of hybrid mode.",
                "example": "myInputFile_20240707.gz"
              },
              "cardPackageDetails": {
                "$ref": "#/components/schemas/cardPackageDetails"
              },
              "deliveryAddress": {
                "$ref": "#/components/schemas/addressInProduceNotification"
              }
            }
          }
        ]
      },
      "pullType": {
        "type": "string",
        "description": "The type of change to apply on the card order",
        "enum": [
          "CANCEL",
          "REDIRECT",
          "ACCELERATE",
          "ACCELERATE_AND_REDIRECT"
        ]
      },
      "updateCardOrderRequest": {
        "required": [
          "type"
        ],
        "type": "object",
        "discriminator": {
          "propertyName": "type"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/updateCardOrderForCancel"
          },
          {
            "$ref": "#/components/schemas/updateCardOrderForRedirect"
          },
          {
            "$ref": "#/components/schemas/updateCardOrderForAccelerate"
          },
          {
            "$ref": "#/components/schemas/updateCardOrderForAccelerateAndRedirect"
          }
        ]
      },
      "updateCardOrderForCancel": {
        "title": "type = CANCEL",
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/pullType"
          }
        }
      },
      "updateCardOrderForRedirect": {
        "title": "type = REDIRECT",
        "type": "object",
        "required": [
          "type",
          "newDeliveryAddress"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/pullType"
          },
          "newDeliveryAddress": {
            "description": "The new delivery address",
            "$ref": "#/components/schemas/address"
          }
        }
      },
      "updateCardOrderForAccelerate": {
        "title": "type = ACCELERATE",
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/pullType"
          },
          "newDueDate": {
            "type": "string",
            "format": "date",
            "example": "2025-01-15",
            "description": "The new requested card production date. It is in the format ```YYYY-MM-DD```.<br/>\nDefault value is current date in case no value is provided\n"
          }
        }
      },
      "updateCardOrderForAccelerateAndRedirect": {
        "title": "type = ACCELERATE_AND_REDIRECT",
        "type": "object",
        "required": [
          "type",
          "newDeliveryAddress"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/pullType"
          },
          "newDeliveryAddress": {
            "description": "The new delivery address",
            "$ref": "#/components/schemas/address"
          },
          "newDueDate": {
            "type": "string",
            "format": "date",
            "example": "2025-01-15",
            "description": "The new requested card production date. It is in the format ```YYYY-MM-DD```.<br/>\nDefault value is current date in case no value is provided\n"
          }
        }
      },
      "TrackCardOperationRequest": {
        "title": "Track Card",
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/TrackCardOperationPRODUCTION"
          },
          {
            "$ref": "#/components/schemas/TrackCardOperationSHIPMENT"
          },
          {
            "$ref": "#/components/schemas/TrackCardOperationRETURN"
          }
        ],
        "discriminator": {
          "propertyName": "trackingType",
          "mapping": {
            "PRODUCTION": "#/components/schemas/TrackCardOperationPRODUCTION",
            "SHIPMENT": "#/components/schemas/TrackCardOperationSHIPMENT",
            "RETURN": "#/components/schemas/TrackCardOperationRETURN"
          }
        }
      },
      "TrackCardOperationPRODUCTION": {
        "title": "trackingType=PRODUCTION",
        "type": "object",
        "required": [
          "trackingType",
          "productionSite"
        ],
        "additionalProperties": false,
        "properties": {
          "trackingType": {
            "type": "string",
            "enum": [
              "PRODUCTION"
            ],
            "example": "PRODUCTION",
            "description": "The current status of card.\n\n- PRODUCTION: Track Card Production.\n"
          },
          "productionSite": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The factory where the card was produced.",
            "example": "London"
          }
        }
      },
      "TrackCardOperationSHIPMENT": {
        "title": "trackingType=SHIPMENT",
        "type": "object",
        "required": [
          "trackingType",
          "trackingNumber",
          "shipmentDate",
          "productionSite"
        ],
        "additionalProperties": false,
        "properties": {
          "trackingType": {
            "type": "string",
            "enum": [
              "SHIPMENT"
            ],
            "example": "SHIPMENT",
            "description": "The current status of card.\n\n- SHIPMENT: Track Card Production and Shipment.\n"
          },
          "trackingNumber": {
            "type": "string",
            "description": "The tracking number.",
            "example": "61293150000079650811",
            "pattern": "^[A-Za-z0-9 _\\-\\.\\/]{1,64}$"
          },
          "postalCode": {
            "type": "string",
            "description": "The destination postal Code.",
            "pattern": "^[0-9A-Z- ]{1,10}$",
            "example": "WC2N 5DU"
          },
          "countryCode": {
            "type": "string",
            "description": "The country code, based on ISO 3166-1 alpha-2 format",
            "pattern": "^[A-Z]{2}$",
            "example": "GB"
          },
          "shipmentDate": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$",
            "description": "The date and time the card was shipped.\nFormat: YYYY-MM-DDThh:mm:ssZ (UTC timezone only)\n",
            "example": "2023-01-21T17:32:28Z"
          },
          "productionSite": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The factory where the card was produced.",
            "example": "London"
          }
        }
      },
      "TrackCardOperationRETURN": {
        "title": "trackingType=RETURN",
        "type": "object",
        "required": [
          "trackingType",
          "productionSite"
        ],
        "additionalProperties": false,
        "properties": {
          "trackingType": {
            "type": "string",
            "enum": [
              "RETURN"
            ],
            "example": "RETURN",
            "description": "The current status of card.\n\n- RETURN: Track Card return.\n"
          },
          "productionSite": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The factory where the card was produced.",
            "example": "London"
          }
        }
      },
      "issuerId": {
        "maxLength": 10,
        "minLength": 10,
        "type": "string"
      },
      "cardId": {
        "type": "string",
        "description": "Unique identifier of the card.",
        "minLength": 1,
        "maxLength": 48,
        "pattern": "^[A-Za-z0-9_-]{1,48}$"
      },
      "consumerId": {
        "type": "string",
        "description": "Unique identifier of the consumer. ",
        "minLength": 1,
        "maxLength": 64,
        "pattern": "^[A-Za-z0-9_-]{1,64}$"
      },
      "cardProductId": {
        "type": "string",
        "description": "Unique identifier of the type of card ( defined during the onboarding of D1)",
        "minLength": 1,
        "maxLength": 48,
        "pattern": "^[A-Za-z0-9_-]{1,48}$"
      },
      "operationId": {
        "type": "string",
        "description": "Unique identifier of the operation",
        "minLength": 1,
        "maxLength": 64,
        "pattern": "^[A-Za-z0-9_-]{1,64}$"
      },
      "errorGeneric": {
        "additionalProperties": false,
        "type": "object",
        "description": "Generic error returned by the APIs.",
        "properties": {
          "errorCode": {
            "type": "string",
            "description": "The type of the error",
            "example": "FIELD_INVALID_FORMAT"
          },
          "error": {
            "type": "string",
            "description": "Provide more error details if possible.<br/>For example name of the field with invalid format.<br/>This field is for troubleshooting purposes only, it can change at any time so MUST NOT be parsed, and is not supposed to be human readable so CANNOT be displayed to end users.",
            "example": "consumerId"
          }
        }
      },
      "productionStatusInNotification": {
        "type": "string",
        "enum": [
          "CARD_PROD_REQUESTED",
          "DATA_PREPARED",
          "CARD_PROD_READY",
          "CARD_PROD_ONGOING",
          "CARD_PROD_DONE",
          "CARD_SHIPPED",
          "CARD_PROD_CANCELED",
          "CARD_PROD_ONHOLD",
          "DATA_EXCEPTION",
          "CARD_PROD_EXCEPTION"
        ],
        "example": "CARD_SHIPPED",
        "description": "The current status of card production.\n\n|status code                | description                                                                                                       |\n|---------------------------|-------------------------------------------------------------------------------------------------------------------|\n|CARD_PROD_REQUESTED <br/>*(full api only)* | Card production has been requested via the D1 APIs.                                                           |\n|DATA_PREPARED <br/>*(full api only)* | The data required for production has been successfully prepared.                                                                          |  \n|DATA_EXCEPTION <br/>*(full api only)* | Data preparation has failed for some reason.                                                                                      |\n|CARD_PROD_READY            | The data has arrived at the Personalization Center; the card is ready to be produced.                                                 |\n|CARD_PROD_ONGOING          | Card production has started.                                                                                  |\n|CARD_PROD_DONE <br/>*(instant issuance only)* | The card has been successfully produced.                                                                          |\n|CARD_SHIPPED               | The card has been shipped.|\n|CARD_PROD_CANCELED         | Card production has been canceled by the issuer.                                                   |\n|CARD_PROD_ONHOLD           | Card production has been put on hold.                                                              |\n|CARD_PROD_EXCEPTION <br/>*(instant issuance only)* | Card production failed for some reason.                                                                           |\n"
      },
      "lastCheckpoint": {
        "type": "object",
        "description": "The tracking information of the last checkpoint",
        "properties": {
          "checkpointTime": {
            "type": "string",
            "description": "The date and time of the checkpoint event, provided by the carrier. It is in the format ```YYYY-MM-DDThh:mm:ssZ``` for the timezone of the checkpoint.",
            "format": "date-time",
            "example": "2023-01-21T17:32:28Z"
          },
          "city": {
            "minLength": 1,
            "type": "string",
            "description": "The city info provided by carrier.",
            "example": "New York"
          },
          "countryName": {
            "type": "string",
            "description": "The country/Region name of the checkpoint, may also contain other location information.",
            "example": "United States"
          },
          "message": {
            "type": "string",
            "description": "The checkpoint message.",
            "example": "Package delivered"
          }
        }
      },
      "shipment-2": {
        "type": "object",
        "properties": {
          "pickupDate": {
            "type": "string",
            "description": "The date and time the shipment was picked up by the carrier. It is in the format ```YYYY-MM-DDThh:mm:ssZ``` for the timezone where the pickup occured.",
            "format": "date-time",
            "example": "2023-01-21T17:32:28Z"
          },
          "carrier": {
            "type": "string",
            "description": "Unique carrier code.\n\n|Carrier Code|Carrier Name|\n|----|----|\n|chronopost-france|Chronopost France|\n|dhl|DHL Express|\n|fedex|FedEx®|\n|la-poste-colissimo|La Poste|AvailableForPickup|\n|spain-correos-es|Correos de España|\n|ups|UPS|\n|usps|USPS| |\n",
            "example": "fedex"
          },
          "trackingNumber": {
            "type": "string",
            "pattern": "^[A-Za-z0-9 _\\-\\.\\/]{1,64}$",
            "description": "The tracking number.",
            "example": "61293150000079650811"
          },
          "status": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "enum": [
              "INFO_RECEIVED",
              "IN_TRANSIT",
              "OUT_FOR_DELIVERY",
              "FAILED_ATTEMPT",
              "DELIVERED",
              "AVAILABLE_FOR_PICKUP",
              "EXCEPTION",
              "EXPIRED",
              "PENDING"
            ],
            "description": "Current status of tracking.\n\n|status code                | description                                                                                                       |\n|---------------------------|-------------------------------------------------------------------------------------------------------------------|\n|INFO_RECEIVED              | Carrier has received request from shipper and is about to pick up the shipment.                                   |\n|IN_TRANSIT                 | Carrier has accepted or picked up shipment from shipper. The shipment is on the way.                              |\n|OUT_FOR_DELIVERY           | Carrier is about to deliver the shipment, or it is ready to pickup.                                               |\n|FAILED_ATTEMPT             | Carrier attempted to deliver but failed, and usually leaves a notice and will try to deliver again.               |\n|DELIVERED                  | The shipment was delivered successfully.                                                                          |\n|AVAILABLE_FOR_PICKUP       | The package arrived at a pickup point near you and is available for pickup.                                       |\n|EXCEPTION                  | Custom hold, undelivered, returned shipment to sender or any shipping exceptions.                                 |\n|EXPIRED                    | Shipment has no tracking information for 30 days since added.                                                     |\n|PENDING                    | Tracking information not available yet.                                                                           |                                                                    |\n",
            "example": "DELIVERED"
          },
          "message": {
            "minLength": 1,
            "type": "string",
            "description": "Normalized tracking message.\n\n|Message|Description|Shipment Status|\n|----|----|----|\n|DELIVERED|Shipment delivered successfully|DELIVERED|\n|Picked up by the customer|Package picked up by the customer|DELIVERED|\n|Sign by customer|Package delivered to and signed by the customer|DELIVERED|\n|Delivered and received cash on delivery|Package delivered to the customer and cash collected on delivery|DELIVERED|\n|Available for pickup|The package arrived at a pickup point near you and is available for pickup|AVAILABLE_FOR_PICKUP|\n|EXCEPTION|Delivery of the package failed due to some shipping exception|EXCEPTION|\n|Customer moved|Delivery of the package failed as the customer relocated|EXCEPTION|\n|Customer refused delivery|Delivery of the package failed as the recipient refused to take the package due to some reason|EXCEPTION|\n|Delayed (Customs clearance)|Package delayed due to some issues during the customs clearance|EXCEPTION|\n|Delayed (External factors)|Package delayed due to some unforeseen reasons|EXCEPTION|\n|Held for payment|The package being held due to pending payment from the customer's end|EXCEPTION|\n|Incorrect Address|Package not delivered due to incorrect recipient address|EXCEPTION|\n|Pick up missed|Package available for the pickup but not collected by the customer|EXCEPTION|\n|Rejected by carrier|Package rejected by the carrier due to noncompliance with its guidelines|EXCEPTION|\n|Returning to sender|The package is on its way back to the sender|EXCEPTION|\n|Returned to sender|The return package has been successfully received by the sender|EXCEPTION|\n|Shipment damage|Shipment damaged|EXCEPTION|\n|Shipment lost|Delivery of the package failed as it got lost|EXCEPTION|\n|Failed Attempt|The delivery of the package failed due to some reason. Courier usually leaves a notice and will try to deliver again|FAILED_ATTEMPT|\n|Addressee not available|Recipient not available at the given address|FAILED_ATTEMPT|\n|Business Closed|Business is closed at the time of delivery|FAILED_ATTEMPT|\n|In Transit|Shipment on the way|IN_TRANSIT|\n|Acceptance scan|Shipment accepted by the carrier|IN_TRANSIT|\n|Arrival scan|Shipment arrived at a hub or sorting center|IN_TRANSIT|\n|Arrived at the destination country/region|International shipment arrived at the destination country/region|IN_TRANSIT|\n|Customs clearance completed|Customs clearance completed|IN_TRANSIT|\n|Customs clearance started|Package handed over to customs for clearance|IN_TRANSIT|\n|Departure Scan|Package departed from the facility|IN_TRANSIT|\n|Problem resolved|Problem resolved and shipment in transit|IN_TRANSIT|\n|Forwarded to a different delivery address|Shipment forwarded to a different delivery address|IN_TRANSIT|\n|Info Received|The carrier received a request from the shipper and is about to pick up the shipment|INFO_RECEIVED|\n|Out for Delivery|The package is out for delivery|OUT_FOR_DELIVERY|\n|Customer contacted|The customer is contacted before the final delivery|OUT_FOR_DELIVERY|\n|Delivery appointment scheduled|A delivery appointment is scheduled|OUT_FOR_DELIVERY|\n|PENDING|No information available on the carrier website or the tracking number is yet to be tracked|PENDING|\n|Carrier account not connected|It represents the shipments are pending due to no connection with carrier accounts|PENDING|\n|Label created, no updates yet|The order has been processed/packaged, but not scanned at a shipping location yet|PENDING|\n|Wrong carrier|There is no tracking info available because the carrier is wrong|PENDING|\n|No recent updates|There have been no new tracking updates in the last 120 days|PENDING|\n|Unrecognized carrier|AfterShip can’t track this type of shipment as the carrier is unrecognized.|PENDING|\n|Expired|No tracking information of the shipment, from the last 30 days|EXPIRED|\n",
            "example": "Picked up by the customer"
          },
          "trackingUrl": {
            "type": "string",
            "description": "Official tracking URL of the carrier (if any).",
            "example": "https://www.fedex.com/apps/fedextrack/?tracknumbers=61293150000079650811&cntry_code=US"
          },
          "redirectUrl": {
            "type": "string",
            "description": "Delivery instructions (delivery date or address) can be modified by visiting the link if supported by the carrier.",
            "example": "https://www.fedex.com/apps/fedextrack/?action=track&tracknumbers=61293150000079650811&cntry_code=US"
          },
          "estimatedDeliveryDate": {
            "type": "string",
            "description": "'The estimated delivery date provided by the carrier. It is in the format ```YYYY-MM-DDThh:mm:ssZ``` for the recipent's timezone.'",
            "format": "date-time",
            "example": "2023-01-21T17:32:28Z"
          },
          "lastUpdatedAt": {
            "type": "string",
            "description": "The date and time the shipment was updated. It is in the format ```YYYY-MM-DDThh:mm:ssZ``` for the timezone GMT+0.",
            "format": "date-time",
            "example": "2023-01-21T17:32:28Z"
          },
          "deliveryDate": {
            "type": "string",
            "description": "'The date and time the shipment was delivered. It is in the format ```YYYY-MM-DDThh:mm:ssZ``` for the recipent's timezone.'",
            "format": "date-time",
            "example": "2023-01-21T17:32:28Z"
          },
          "signedBy": {
            "type": "string",
            "description": "Signed by information for delivered shipment.",
            "example": "Steve Young"
          },
          "failedDeliveryAttempts": {
            "type": "string",
            "description": "Number of failed attempts courier tried to deliver the card.",
            "example": "2"
          },
          "lastCheckpoint": {
            "$ref": "#/components/schemas/lastCheckpoint"
          }
        }
      },
      "services-2": {
        "required": [
          "issuance",
          "delivery"
        ],
        "properties": {
          "cardProductId": {
            "$ref": "#/components/schemas/cardProductId"
          },
          "issuance": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[a-zA-Z0-9_-\\s]{1,64}$",
            "description": "The type of issuance.\n<br/>  \n|Attribute|Description|\n|-------|-------|\n|CREATION|Issuance of a brand-new card to a user|\n|RENEWAL|An existing card reaches its expiration date and needs to be replaced with a new one for continued use|\n|REPLACEMENT|An existing card needs to be reissued due to loss, theft, or damage.|\n",
            "example": "RENEWAL"
          },
          "priority": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[a-zA-Z0-9_-\\s]{1,64}$",
            "description": "The level of priority agreed for the card production (defined during the onboarding of D1).\n",
            "example": "P1"
          },
          "delivery": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[a-zA-Z0-9_-\\s]{1,64}$",
            "description": "The shipment method (defined during the onboarding of D1).\n",
            "example": "DHL"
          },
          "packaging": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[a-zA-Z0-9_-\\s]{1,64}$",
            "example": "welcome_pack_red",
            "default": "NO_PACK",
            "description": "Unique identifier of the packaging (defined during the onboarding of D1).\n"
          },
          "cardCarrier": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "default": "NO_CARRIER",
            "pattern": "^[a-zA-Z0-9_-\\s]{1,64}$",
            "description": "Unique identifier of the card carrier (defined during the onboarding of D1).\n"
          }
        }
      },
      "cardPackageDetails": {
        "type": "object",
        "properties": {
          "plastic": {
            "type": "string",
            "description": "Reference of the plastic used for the card\n",
            "minLength": 2,
            "maxLength": 40,
            "example": "CardRef1"
          },
          "artworkId": {
            "type": "string",
            "description": "Reference of the artwork printed on the card\n",
            "minLength": 2,
            "maxLength": 40,
            "example": "CardRef1"
          },
          "cardCarrier": {
            "type": "string",
            "description": "Reference of the card carrier used for the card\n",
            "minLength": 2,
            "maxLength": 100,
            "example": "17609320 Carrier A4 white 100g Thales"
          },
          "envelope": {
            "type": "string",
            "description": "Reference of the envelope used for the card\n",
            "minLength": 2,
            "maxLength": 100,
            "example": "ENV BLANCHE 115X229mm FEN 45X100X2520 CART1000"
          },
          "package": {
            "type": "string",
            "minLength": 2,
            "maxLength": 100,
            "description": "Reference of the package used for the card\n"
          },
          "cardActivationLabel": {
            "type": "string",
            "minLength": 2,
            "maxLength": 100,
            "description": "Reference of the activation label used for the card\n"
          },
          "inserts": {
            "type": "array",
            "minItems": 0,
            "maxItems": 10,
            "items": {
              "type": "string"
            },
            "description": "List of inserts\n"
          }
        }
      },
      "addressInProduceNotification": {
        "type": "object",
        "required": [
          "line1",
          "zipCode",
          "city",
          "countryCode"
        ],
        "properties": {
          "companyName": {
            "type": "string",
            "description": "The name of the company.",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,64}$",
            "example": "Thales"
          },
          "line1": {
            "type": "string",
            "description": "The first line of the address.",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,64}$",
            "example": "Street #1"
          },
          "line2": {
            "type": "string",
            "description": "The second line of the address.",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,64}$",
            "example": "Street #2"
          },
          "line3": {
            "type": "string",
            "description": "The third line of the address.",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,64}$",
            "example": "Street #3"
          },
          "city": {
            "type": "string",
            "description": "The city name.",
            "minLength": 1,
            "maxLength": 32,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,32}$",
            "example": "London"
          },
          "state": {
            "type": "string",
            "description": "The state.",
            "minLength": 1,
            "maxLength": 30,
            "pattern": "^[\\p{L}\\p{N}\\p{M} ,.'_#;:\\/-]{1,30}$"
          },
          "zipCode": {
            "type": "string",
            "description": "The zip Code.",
            "minLength": 1,
            "maxLength": 10,
            "pattern": "^[0-9A-Z- ]{1,10}$",
            "example": "WC2N 5DU"
          },
          "countryCode": {
            "type": "string",
            "description": "The country code, based on ISO 639-1 alpha-2 format",
            "minLength": 2,
            "maxLength": 2,
            "pattern": "^[A-Z]{2}$",
            "example": "GB"
          }
        }
      }
    },
    "responses": {
      "ProductionStatusResponse": {
        "description": "Success",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/productionStatus"
            }
          }
        }
      },
      "BadRequest": {
        "description": "Bad request due to invalid URI, headers, parameters, or payload.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/errorGeneric"
            }
          }
        }
      },
      "BadRequestWithErrorCode": {
        "description": "Bad request due to invalid URI, headers, parameters, or payload.<br/>\nThe below table defines the possible errors:\n    | errorCode      | error       | Retry Possible | Comments                             |\n    | -------------- | ------------| ----------| -----------------------------------|\n    | -                    | - | no        | General error with no further information provided.   |\n    | FIELD_INVALID_FORMAT | Field in error (first found) | no | A field does not match the expected format specified in the documentation. |\n    | CRYPTO_ERROR         | - | no | Decryption of the provided encrypted data failed. |\n    | FIELD_INVALID_VALUE  | Field in error (first found) | no | A field value is not permitted for the specified field. |\n    | PARSING_ERROR  | Field in error (first found) | no | Encrypted data is not a valid JSON string. |\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/errorGeneric"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Unauthorized request due to missing or invalid access token.\n| errorCode      | error       | Retry Possible | Comments                             |\n| -------------- | ------------| ----------| -----------------------------------|\n| -                        | - | no        | General error with no further information provided.   |\n| AUTHORIZER_UNAUTHORIZED  | Unauthorized message | no | Access token not valid       |\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/errorGeneric"
            }
          }
        }
      },
      "Forbidden": {
        "description": "Request forbidden by authorization rules or business constraints.\n<br/>\nThe below table defines the possible error:\n  | errorCode      | error       | Retry Possible | Comments                           |\n  | -------------- | ------------| ----------| -----------------------------------|\n  | -              | -           | no        | General error with no further information provided.    |\n  | AUTHORIZER_FORBIDDEN  | not\\_authorized error message | no | The user is not authorized to access the requested resource. |\n  | OPERATION_NOT_ALLOWED | Name of the operation/field that is not allowed in this operation | no | The specified operation or field is not permitted for this card product. |\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/errorGeneric"
            }
          }
        }
      },
      "NotFound": {
        "description": "Requested resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/errorGeneric"
            }
          }
        }
      },
      "InternalServerError": {
        "description": "Internal server error while processing the request.\nThe below table defines the possible error:\n|errorCode       | error       | Retry Possible | Comments                           |\n| -------------- | ------------| ----------| -----------------------------------|\n| -                        | - | no        | General error with no further information provided.   |\n| INTERNAL_ERROR | Error details (if any) | no | The server encountered an issue while processing the request.  |\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/errorGeneric"
            }
          }
        }
      },
      "ServiceUnavailableError": {
        "description": "The service is temporarily unavailable. You may retry your request later."
      },
      "BadRequest-2": {
        "description": "Malformed request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/errorGeneric"
            }
          }
        }
      },
      "Unauthorized-2": {
        "description": "The provided Authorization header is missing or invalid",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/errorGeneric"
            }
          }
        }
      },
      "ForbiddenForPhysicalCard": {
        "description": "Forbidden action, check the state of the linked end user (consumer) or account or card",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/errorGeneric"
            }
          }
        }
      },
      "NotFoundForPhysicalCard": {
        "description": "Resource not found, Unknown issuerId or consumerId or accountId or card id",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/errorGeneric"
            }
          }
        }
      },
      "InternalServerError-2": {
        "description": "Internal Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/errorGeneric"
            }
          }
        }
      }
    },
    "parameters": {
      "issuer-id-path": {
        "description": "The id of the issuer",
        "in": "path",
        "name": "issuerId",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/issuerId"
        }
      },
      "card-id-path": {
        "description": "The id of the card",
        "in": "path",
        "name": "cardId",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/cardId"
        }
      },
      "x-correlation-id": {
        "description": "Random identifier which can be used to correlate the different API calls done as part of a single use-case. This identifier will be the one primarily used for troubleshooting.\n\n**Warning:** This identifier should not be derived from sensitive personal data, as its value will be logged in clear.\n\nThere is no strong guarantee of the uniqueness of this identifier, so please refrain from using it for other purpose than logging and troubleshooting.",
        "in": "header",
        "name": "x-correlation-id",
        "schema": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        }
      }
    }
  }
}