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

# Create Card

> Create a new card



## OpenAPI

````yaml v2/api-reference/openapi.json POST /v2/cards
openapi: 3.0.0
info:
  title: Trio API v2
  version: 2026-10-19.v2
servers:
  - url: https://api.sandbox.trio.com.br
    variables: {}
  - url: https://api.qa.trio.com.br
    variables: {}
  - url: https://api.trio.com.br
    variables: {}
security: []
tags: []
paths:
  /v2/cards:
    parameters:
      - description: >-
          Version of the v2 contract the client is written against. Each
          breaking change publishes a new version.
        example: 2026-10-19.v2
        in: header
        name: Trio-Version
        required: true
        schema:
          enum:
            - 2026-10-19.v2
          type: string
          x-struct: null
          x-validate: null
      - description: >-
          ID of another org to act on instead of the API key's own org. The
          key's org must have been granted access to it, and the request is
          refused with 403 FORBIDDEN otherwise. When that access or the API key
          is read-only, only GET and HEAD requests may carry it. When the target
          org requires mTLS, so does the request. Leave it out to act on the
          key's own org.
        in: header
        name: Trio-Target-Org-Id
        required: false
        schema:
          format: uuid
          type: string
          x-struct: null
          x-validate: null
    post:
      tags:
        - Cards
      summary: Create a card
      description: Create a new card
      operationId: TrioFoundationWeb.V2.CardController.create
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2_card_create_params'
        description: Create Card
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2_card_response'
          description: Card
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2_error'
          description: >-
            Malformed request: a body that is not valid JSON
            (MALFORMED_REQUEST), or a Trio-Version header that is missing or not
            the current one (INVALID_TRIO_VERSION).
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2_error'
          description: Missing or invalid API key credentials (INVALID_CREDENTIALS).
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2_error'
          description: >-
            The API key may not do this (FORBIDDEN): for instance
            Trio-Target-Org-Id names an org it has no access to, or writes
            through a read-only access.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2_error'
          description: >-
            Invalid input (INVALID_PARAMETER, REQUIRED_PARAMETER, or the code of
            the rule the request breaks). A request outside the operation's
            schema lists the offending fields in `errors`.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2_error'
          description: >-
            A service needed to answer is unavailable
            (TRIO_SERVICE_UNAVAILABLE).
      callbacks: {}
      security:
        - authorization: []
components:
  schemas:
    V2_card_create_params:
      description: Card create params
      example:
        display_name: marketing card
        entity_id: 019514eb-5d5c-4a1e-9f0b-1c2d3e4f5a6b
        holder_name: John Doe
      properties:
        display_name:
          description: Display name
          type: string
          x-struct: null
          x-validate: null
        entity_id:
          description: ID of the entity that will hold the card
          format: uuid
          type: string
          x-struct: null
          x-validate: null
        holder_name:
          description: Holder name
          nullable: true
          type: string
          x-struct: null
          x-validate: null
      required:
        - entity_id
        - display_name
      title: V2 card create params
      type: object
      x-struct: Elixir.TrioFoundationWeb.Schemas.Banking.V2.Card.CreateParams
      x-validate: null
    V2_card_response:
      description: The card created
      example:
        data:
          display_name: marketing card
          entity_id: 019514eb-5d5c-4a1e-9f0b-1c2d3e4f5a6b
          id: 019514eb-5d5c-b395-5a77-449d12701ce7
          masked_number: •••• •••• •••• 1234
          status: active
          type: virtual
      properties:
        data:
          $ref: '#/components/schemas/V2_card'
      required:
        - data
      title: V2 card response
      type: object
      x-struct: Elixir.TrioFoundationWeb.Schemas.Banking.V2.Card.Response
      x-validate: null
    V2_error:
      example:
        error:
          error_code: INVALID_PARAMETER
          error_message: 'Invalid parameters: /amount: Invalid integer. Got: string'
          errors:
            - field: /amount
              message: 'Invalid integer. Got: string'
      properties:
        error:
          properties:
            error_code:
              description: >-
                Stable UPPER_SNAKE identifier of the error, for programs and
                logs. Branch on this, not on the message.
              type: string
              x-struct: null
              x-validate: null
            error_message:
              description: Human readable explanation of the error.
              type: string
              x-struct: null
              x-validate: null
            errors:
              description: >-
                Only on INVALID_PARAMETER for a request outside the operation's
                schema: one entry per offending field.
              items:
                properties:
                  field:
                    description: JSON pointer to the field, e.g. /amount.
                    type: string
                    x-struct: null
                    x-validate: null
                  message:
                    description: What is wrong with it.
                    type: string
                    x-struct: null
                    x-validate: null
                required:
                  - field
                  - message
                type: object
                x-struct: null
                x-validate: null
              type: array
              x-struct: null
              x-validate: null
          required:
            - error_code
            - error_message
          type: object
          x-struct: null
          x-validate: null
      required:
        - error
      title: V2 error
      type: object
      x-struct: Elixir.TrioFoundationWeb.Schemas.HTTP.V2Error
      x-validate: null
    V2_card:
      description: Card, without its balance
      example:
        display_name: marketing card
        entity_id: 019514eb-5d5c-4a1e-9f0b-1c2d3e4f5a6b
        id: 019514eb-5d5c-b395-5a77-449d12701ce7
        masked_number: •••• •••• •••• 1234
        status: active
        type: virtual
      properties:
        display_name:
          description: Display name
          type: string
          x-struct: null
          x-validate: null
        entity_id:
          description: ID of the entity that holds the card
          format: uuid
          type: string
          x-struct: null
          x-validate: null
        id:
          description: Card ID
          format: uuid
          type: string
          x-struct: null
          x-validate: null
        masked_number:
          description: Masked card number
          type: string
          x-struct: null
          x-validate: null
        status:
          description: Card status
          enum:
            - created
            - pending
            - active
            - blocked
            - expired
            - canceled
          type: string
          x-struct: null
          x-validate: null
        type:
          description: Card type
          enum:
            - virtual
          type: string
          x-struct: null
          x-validate: null
      required:
        - id
        - display_name
        - entity_id
        - masked_number
        - status
        - type
      title: V2 card
      type: object
      x-struct: Elixir.TrioFoundationWeb.Schemas.Banking.V2.Card.Data
      x-validate: null
  securitySchemes:
    authorization:
      scheme: basic
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.