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

# Almacena tokens de tarjeta para pagos futuros

> Tokeniza una o más tarjetas sin cobrarlas. Cada token está limitado a tu cuenta de comercio y es reutilizable para pagos 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` te permite almacenar los datos de tarjeta como tokens reutilizables sin procesar un pago. Úsalo para pre-depositar tarjetas en el vault durante flujos de configuración de cuenta, o para migrar tarjetas almacenadas de otro proveedor. Cada token está limitado a tu cuenta de comercio y se almacena con datos de BIN (bandera, tipo, emisor).

<SchemaLangNote lang="es" />

<Note>
  Para tokenizar una tarjeta durante un pago, agrega `card.cardData.tokenize: true` a tu solicitud de pago en su lugar — ver [Conceptos de tokenización](/concepts/tokenization).
</Note>

Cada entrada de `tokens[]` debe llevar un `card` con `cardData` (campos sin procesar — solo entornos del lado del servidor/que cumplen PCI) o `nonceData` (un nonce generado por el SDK, para flujos de navegador). Una solicitud exitosa devuelve `200 OK` con el código de comercio, el `shopper` devuelto y un objeto de token creado por entrada (`id` con prefijo `vt_`, `cardData` enmascarado, `expirationDate`, `tokenCreationReference`) — en el mismo orden que la solicitud.

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

````