> ## 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.

# Get Card Programs



## OpenAPI

````yaml openapi.json get /card-programs
openapi: 3.1.0
info:
  title: Sudo Sandbox API
  version: '1.0'
servers:
  - url: https://api.sandbox.sudo.cards
security:
  - sec0: []
paths:
  /card-programs:
    parameters: []
    get:
      summary: Get Card Programs
      parameters:
        - name: searchTerm
          in: query
          required: false
          example: Verve
          schema:
            type: string
        - name: cardType
          in: query
          required: false
          schema:
            type: string
        - name: cardBrand
          in: query
          required: false
          schema:
            type: string
        - name: currency
          in: query
          required: false
          example: NGN
          schema:
            type: string
        - name: status
          in: query
          required: false
          schema:
            type: string
        - name: fromDate
          in: query
          required: false
          schema:
            type: string
        - name: toDate
          in: query
          required: false
          schema:
            type: string
        - name: limit
          in: query
          required: false
          schema:
            type: string
        - name: page
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Card programs fetched 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: array
                    description: Array of objects for the requested page.
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: Display name.
                        description:
                          type: string
                          description: Description text.
                        reference:
                          type: string
                          description: Unique reference assigned to the object.
                        status:
                          type: string
                          description: Current status of the object.
                        business:
                          type: string
                          description: Identifier of the business that owns this object.
                        debitAccount:
                          type: string
                          description: Identifier of the account debited for this program.
                        fundingSource:
                          type: string
                          description: >-
                            Identifier of the funding source backing this
                            object.
                        currency:
                          type: string
                          description: ISO 4217 currency code (e.g. `NGN`).
                        design:
                          nullable: true
                          description: >-
                            Card design reference, or `null` for the default
                            design.
                        cardBrand:
                          type: string
                          description: Card scheme/brand for the program.
                        cardType:
                          type: string
                          description: >-
                            Card form factor for the program (`physical` or
                            `virtual`).
                        spendingControls:
                          type: object
                          description: >-
                            Spending limits and channel/category controls
                            applied to the card.
                          properties:
                            channels:
                              type: object
                              description: Channels through which the card may be used.
                              properties:
                                atm:
                                  type: boolean
                                  description: Whether ATM usage is allowed.
                                pos:
                                  type: boolean
                                  description: Whether POS usage is allowed.
                                web:
                                  type: boolean
                                  description: Whether web/online usage is allowed.
                                mobile:
                                  type: boolean
                                  description: Whether mobile usage is allowed.
                            allowedCategories:
                              type: array
                              description: >-
                                Merchant category codes (MCC) explicitly
                                allowed.
                              items: {}
                            blockedCategories:
                              type: array
                              description: >-
                                Merchant category codes (MCC) explicitly
                                blocked.
                              items: {}
                            spendingLimits:
                              type: array
                              description: Configured spending limits.
                              items:
                                type: object
                                properties:
                                  amount:
                                    type: integer
                                    description: >-
                                      Amount in the minor currency unit (e.g.
                                      kobo).
                                  interval:
                                    type: string
                                    description: >-
                                      Interval the limit applies over (`daily`,
                                      `weekly`, `monthly`, `yearly`).
                                  categories:
                                    type: array
                                    description: >-
                                      Merchant category codes the limit applies
                                      to.
                                    items: {}
                        isDeleted:
                          type: boolean
                          description: Whether the object has been soft-deleted.
                        createdAt:
                          type: string
                          format: date-time
                          description: ISO 8601 timestamp of when the object was created.
                        updatedAt:
                          nullable: true
                          description: >-
                            ISO 8601 timestamp of when the object was last
                            updated.
                        deletedAt:
                          nullable: true
                          description: >-
                            ISO 8601 timestamp of when the object was deleted,
                            if applicable.
                        _id:
                          type: string
                          description: Unique identifier of the object.
                        __v:
                          type: integer
                          description: Internal document version (Mongo).
                  pagination:
                    type: object
                    description: Pagination metadata for the result set.
                    properties:
                      total:
                        type: integer
                        description: >-
                          Total number of records matching the query across all
                          pages.
                      pages:
                        type: integer
                        description: Total number of pages available for the current query.
                      page:
                        type: integer
                        description: >-
                          Current page index (zero-based; matches the `page`
                          query parameter).
                      limit:
                        type: integer
                        description: >-
                          Maximum number of records returned per page (matches
                          the `limit` query parameter).
              example:
                statusCode: 200
                message: Card programs fetched successfully.
                data:
                  - name: Physical Verve Prepaid Cards
                    description: For Physical Verve Prepaid Cards
                    reference: 250604-2156
                    status: active
                    business: 670cec9d25852ba485d74273
                    debitAccount: 67974b365c184d20fc340889
                    fundingSource: 670cec9d25852ba485d74286
                    currency: NGN
                    design: null
                    cardBrand: Verve
                    cardType: physical
                    spendingControls:
                      channels:
                        atm: true
                        pos: true
                        web: true
                        mobile: true
                      allowedCategories: []
                      blockedCategories: []
                      spendingLimits:
                        - amount: 1500000
                          interval: daily
                          categories: []
                    isDeleted: false
                    createdAt: '2025-06-04T21:05:26.115Z'
                    updatedAt: null
                    deletedAt: null
                    _id: 6840b5161443c90831ba07a5
                    __v: 0
                pagination:
                  total: 8
                  pages: 1
                  page: 0
                  limit: 50
        '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: Invalid pagination parameters.
                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
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: bearer
      x-default: '{{APIKey}}'

````