> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sudo.africa/llms.txt
> Use this file to discover all available pages before exploring further.

# Order Cards

> Order Physical Cards



## OpenAPI

````yaml openapi.json post /cards/order
openapi: 3.1.0
info:
  title: Sudo Sandbox API
  version: '1.0'
servers:
  - url: https://api.sandbox.sudo.cards
security:
  - sec0: []
paths:
  /cards/order:
    post:
      summary: Order Cards
      description: Order Physical Cards
      operationId: order-cards
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - debitAccountId
                - brand
                - currency
                - allocation
                - expedite
                - shippingMethod
                - shippingAddress
              properties:
                debitAccountId:
                  type: string
                  description: The debit account `_id`.
                customerId:
                  type: string
                  description: The customer `_id`. Required if creating 1 card
                brand:
                  type: string
                  description: The card brand.
                  enum:
                    - Verve
                    - AfriGo
                    - MasterCard
                    - Visa
                currency:
                  type: string
                  description: The currency type.
                  default: NGN
                  enum:
                    - NGN
                    - USD
                design:
                  type: string
                  description: >-
                    The name of the card design. Ask Customer support for your
                    own design name.
                  default: SudoBlack
                  enum:
                    - SudoBlack
                    - SudoWhite
                    - '[YourDesignName]'
                allocation:
                  type: integer
                  description: The number of physical cards to order.
                  default: 1
                  format: int32
                nameOnCards:
                  type: array
                  description: Array of names to be personalized on the cards.
                  items:
                    type: string
                expedite:
                  type: boolean
                  description: The expedite preference.
                  default: false
                shippingMethod:
                  type: string
                  description: >-
                    The shipping method to use. Might impact card cost. Ask
                    Customer Support for guidance.
                  default: NIPOST
                  enum:
                    - NIPOST
                    - DHL
                shippingAddress:
                  type: object
                  description: The cards shipping address.
                  required:
                    - line1
                    - city
                    - state
                    - postalCode
                    - country
                  properties:
                    line1:
                      type: string
                      description: Street address line 1
                    line2:
                      type: string
                      description: Street Address line 2
                    city:
                      type: string
                      description: City
                    state:
                      type: string
                      description: State
                    postalCode:
                      type: string
                    country:
                      type: string
                      description: Billing country
      responses:
        '201':
          description: Cards ordered successfully.
          headers:
            X-Powered-By:
              schema:
                type: string
              example: Express
            Access-Control-Allow-Origin:
              schema:
                type: string
              example: '*'
            X-RateLimit-Limit:
              schema:
                type: integer
              example: '250000'
            X-RateLimit-Remaining:
              schema:
                type: integer
              example: '249999'
            X-RateLimit-Reset:
              schema:
                type: integer
              example: '0'
            Content-Type:
              schema:
                type: string
              example: application/json; charset=utf-8
            ETag:
              schema:
                type: string
              example: W/"2dd-sfRBgLV2BqnKnzwqFCi2UGdBgUQ"
            Connection:
              schema:
                type: string
              example: keep-alive
            Keep-Alive:
              schema:
                type: string
              example: timeout=5
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    description: >-
                      Status code of the response. `200` indicates a successful
                      request.
                  message:
                    type: string
                    description: Human-readable description of the result.
                  data:
                    type: object
                    description: Response payload.
                    properties:
                      batchReference:
                        type: string
                        description: Reference for the card order batch.
                      allocation:
                        type: integer
                        description: Number of cards in the order.
                      brand:
                        type: string
                        description: Card scheme/brand (e.g. `Verve`, `MasterCard`).
                      status:
                        type: string
                        description: Current status of the object.
              example:
                statusCode: 200
                message: Cards ordered successfully.
                data:
                  batchReference: ORD-250604-2156
                  allocation: 5
                  brand: Verve
                  status: processing
        '400':
          description: Validation error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    description: >-
                      Status code of the response. `200` indicates a successful
                      request.
                  message:
                    type: string
                    description: Human-readable description of the result.
                  data:
                    nullable: true
                    description: Always `null` for error responses.
              example:
                statusCode: 400
                message: '"customerId" is required'
                data: null
        '401':
          description: Authentication failed — missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    description: >-
                      Status code of the response. `200` indicates a successful
                      request.
                  message:
                    type: string
                    description: Human-readable description of the result.
                  data:
                    nullable: true
                    description: Response payload.
              example:
                statusCode: 401
                message: >-
                  Unauthorized. Provide a valid API key in the Authorization
                  header.
                data: null
      deprecated: false
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: bearer
      x-default: '{{APIKey}}'

````