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

# Armazene tokens de cartão para pagamentos futuros

> Tokenize um ou mais cartões sem cobrá-los. Cada token é limitado à sua conta de lojista e reutilizável para pagamentos futuros.

export const SchemaLangNote = ({lang}) => {
  const text = ({
    es: "Los nombres de campos y el esquema de solicitud/respuesta que se muestran a continuación están en inglés — se generan a partir de la especificación OpenAPI. El texto explicativo de esta página está traducido.",
    pt: "Os nomes dos campos e o esquema de requisição/resposta exibidos abaixo estão em inglês — são gerados a partir da especificação OpenAPI. O texto explicativo desta página está traduzido."
  })[lang] || "Field names and the request/response schema shown below are in English — they are generated from the OpenAPI specification.";
  return <Note>{text}</Note>;
};

`POST /token` permite armazenar os dados de cartão como tokens reutilizáveis sem processar um pagamento. Use para pré-colocar cartões no vault durante fluxos de configuração de conta, ou para migrar cartões armazenados de outro provedor. Cada token é limitado à sua conta de lojista e armazenado com dados de BIN (bandeira, tipo, emissor).

<SchemaLangNote lang="pt" />

<Note>
  Para tokenizar um cartão durante um pagamento, adicione `card.cardData.tokenize: true` à sua requisição de pagamento em vez disso — veja [Conceitos de tokenização](/concepts/tokenization).
</Note>

Cada entrada de `tokens[]` deve trazer um `card` com `cardData` (campos brutos — apenas ambientes no lado do servidor/em conformidade com PCI) ou `nonceData` (um nonce gerado pelo SDK, para fluxos de navegador). Uma requisição bem-sucedida devolve `200 OK` com o código de lojista, o `shopper` devolvido e um objeto de token criado por entrada (`id` com prefixo `vt_`, `cardData` mascarado, `expirationDate`, `tokenCreationReference`) — na mesma ordem da requisição.

<RequestExample>
  ```bash cURL theme={"dark"}
  curl -X POST https://api.therius.io/v1/token \
    -H "Authorization: Bearer prv_production_your_key_here" \
    -H "Content-Type: application/json" \
    -d '{
      "merchantCode": "MERCHANT_001",
      "shopper": { "id": "customer-42", "email": "ada@example.com" },
      "tokens": [{
        "card": {
          "cardData": {
            "cardNumber": "4111111111111111",
            "cardholderName": "Ada Lovelace",
            "expiryMonth": "12",
            "expiryYear": "2030",
            "cvv": "123"
          }
        }
      }]
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={"dark"}
  {
    "merchantCode": "MERCHANT_001",
    "shopper": { "id": "customer-42", "email": "ada@example.com" },
    "tokens": [{
      "id": "vt_abc123xyz",
      "card": {
        "cardData": { "brand": "visa", "cardNumber": "411111****1111", "type": "credit" }
      },
      "expirationDate": "2030-12"
    }]
  }
  ```
</ResponseExample>


## OpenAPI

````yaml POST /token
openapi: 3.1.0
info:
  title: Therius API
  description: REST API for payments, subscriptions, and billing plans.
  version: 1.0.0
servers:
  - url: https://api.therius.io/v1
    description: Production
  - url: https://api-sandbox.therius.io/v1
    description: Sandbox
security:
  - bearerAuth: []
paths:
  /token:
    post:
      tags:
        - Tokens
      summary: Store card tokens for future payments
      operationId: storeTokens
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - merchantCode
                - tokens
              properties:
                merchantCode:
                  type: string
                  description: Your merchant account identifier.
                shopper:
                  $ref: '#/components/schemas/Shopper'
                tokens:
                  type: array
                  description: >-
                    Cards to tokenize. Each entry carries a card instrument
                    (`cardData` or `nonceData`) and an optional
                    `expirationDate`.
                  items:
                    type: object
      responses:
        '200':
          description: Tokens created
          content:
            application/json:
              schema:
                type: object
                properties:
                  merchantCode:
                    type: string
                  shopper:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      email:
                        type: string
                  tokens:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: >-
                            Token ID - pass as `card.tokenData.token` on a
                            future charge.
                        expirationDate:
                          type: string
                          description: Token expiry.
                        tokenCreationReference:
                          type: string
                          description: Idempotency reference for this tokenization.
                        card:
                          type: object
                          description: >-
                            Masked card details: `cardData` with `brand`,
                            `type`, `cardNumber`, `issuingCountry`,
                            `issuerName`.
components:
  schemas:
    Shopper:
      type: object
      description: >-
        Shopper information. Required when tokenizing a card
        (`card.<instrument>.tokenize: true`).
      properties:
        id:
          type: string
          description: >-
            Your internal shopper ID. Used to associate saved tokens with a
            customer.
        email:
          type: string
          format: email
          description: Shopper's email address.
        name:
          type: string
          description: Shopper's full name.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your secret API key: `Bearer prv_production_xxx` (production) or `Bearer
        prv_sandbox_xxx` (sandbox).

````