POST/cards/order

Create Card Order

Orders a physical Visa debit card for a managed customer. This call is synchronous — it creates the card order and returns the final result in the same request.

Validates brokering ownership, then creates the card order.

bash
curl -X POST "{{baseUrl}}/cards/order" \
  -H "session-token: {{sessionToken}}" \
  -H "Content-Type: application/json" \
  -d "{\"UserId\":\"-8202289338547523753\",\"Street\":\"Nanjing East Road\",\"BuildingNumber\":\"88\",\"ZipCode\":\"200001\",\"City\":\"Shanghai\",\"RegionOrState\":\"SH\",\"Country\":\"CN\",\"MothersMaidenName\":\"Smith\"}"

Headers

FieldTypeRequiredPossible valuesDescription
session-tokenstringRequired

SessionToken obtained from the Create GMA Session endpoint. All secured endpoints require this header.

Request body

FieldTypeRequiredPossible valuesDescription
UserIdstringRequired-8202289338547523753

Masked customer ID. Must pass masked-ID validation (`/^-?\d+$/`).

StreetstringRequired

Shipping street.

BuildingNumberstringRequired

Shipping building number.

ZipCodestringRequired

Postal / ZIP code.

CitystringRequired

Shipping city.

RegionOrStatestringRequired

Region or state.

CountrystringRequiredUS | CN | ...

ISO country code (2–3 characters).

MothersMaidenNamestringRequired

Mother's maiden name.

Example request

{
  "UserId": "-8202289338547523753",
  "Street": "Nanjing East Road",
  "BuildingNumber": "88",
  "ZipCode": "200001",
  "City": "Shanghai",
  "RegionOrState": "SH",
  "Country": "CN",
  "MothersMaidenName": "Smith"
}

All body fields are required and must be PascalCase.

Additional info

FieldTypeRequiredPossible valuesDescription
400 — Invalid Customer IDobjectOptional

Masked UserId failed validation.

400 — NOT_ELIGIBLEobjectOptional

Customer is not eligible for a card order (downstream error text included).

400 — INVALID_ADDRESSobjectOptional

Shipping address rejected.

400 — ORDER_FAILEDobjectOptional

Card order failed. ResponseErrors includes downstream error text.

403 — No accessobjectOptional

Broker does not own this customer.

404 — Customer not foundobjectOptional

Masked UserId does not resolve to a customer.

503 — Downstream unavailableobjectOptional

Downstream service is unavailable.

Example400 — Invalid Customer ID

{
  "ResponseCode": 400,
  "ResponseMessage": "BadRequest",
  "ResponseData": null,
  "ResponseErrors": [
    {
      "Message": "Invalid Customer ID",
      "CustomMessage": "Invalid Customer ID",
      "Code": "INVALID_CUSTOMER_ID"
    }
  ]
}

Example400 — NOT_ELIGIBLE

{
  "ResponseCode": 400,
  "ResponseMessage": "BadRequest",
  "ResponseData": null,
  "ResponseErrors": [
    {
      "Message": "NOT_ELIGIBLE",
      "CustomMessage": "Customer is not eligible for debit card order",
      "Code": "NOT_ELIGIBLE"
    }
  ]
}

Example400 — INVALID_ADDRESS

{
  "ResponseCode": 400,
  "ResponseMessage": "BadRequest",
  "ResponseData": null,
  "ResponseErrors": [
    {
      "Message": "INVALID_ADDRESS",
      "CustomMessage": "Shipping address is invalid for card delivery",
      "Code": "INVALID_ADDRESS"
    }
  ]
}

Example400 — ORDER_FAILED

{
  "ResponseCode": 400,
  "ResponseMessage": "BadRequest",
  "ResponseData": null,
  "ResponseErrors": [
    {
      "Message": "ORDER_FAILED",
      "CustomMessage": "Updated Transfer failed: already ordered",
      "Code": "ORDER_FAILED"
    }
  ]
}

Example403 — No access

{
  "ResponseCode": 403,
  "ResponseMessage": "Broker does not have access to this customer",
  "ResponseData": null
}

Example404 — Customer not found

{
  "ResponseCode": 404,
  "ResponseMessage": "Customer not found",
  "ResponseData": null
}

Example503 — Downstream unavailable

{
  "ResponseCode": 503,
  "ResponseMessage": "Downstream service unavailable",
  "ResponseData": null
}

Response

FieldTypePossible valuesDescription
ResponseCodeinteger200 | 201 | 204 | 301 | 400 | 401 | 403 | 404 | 410 | 422 | 500 | 503

API result code in the response envelope. Indicates success or the error category (e.g. 200 success, 400 bad request, 401 unauthorized).

ResponseMessagestringSuccess | Created | NoContent | BadRequest | Unauthorized | Forbidden | NotFound | Gone | UnprocessableContent | ServerError | ResourceMoved | ServiceUnAvailable | UnProcessableEntity

Human-readable label paired with ResponseCode (e.g. Success, BadRequest, Unauthorized). Use with ResponseCode to interpret the outcome.

ResponseDataobjectPlease refer to below example for response body

Card order result. `Message` is included when available. `CardOrderId` is present when returned.

ResponseData.Messagestring

Result message when available.

ResponseData.CardOrderIdstring

Card order identifier when returned by the processor.

Example response

{
  "ResponseCode": 200,
  "ResponseMessage": "Success",
  "ResponseData": {
    "Message": "Card order created successfully",
    "CardOrderId": "ORD-20260731-00142"
  }
}

Requires `session-token: {SessionToken}` from Create GMA Session. Use the same client IP as authentication.

Search guide books, endpoints, paths, or parameters

↑↓navigateopenEscclose