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

# Criar integração

> Cria uma nova integração vinculada a um ou mais produtos do cliente.

**Regras principais:**
- O campo `product_hashes` deve conter apenas hashes de produtos que:
  - pertencem ao cliente autenticado.
- Para integrações do tipo `correios`:
  - todos os produtos referenciados em `product_hashes` devem ser do tipo `physical`.
  - o objeto `options` deve conter as credenciais obrigatórias (`username`, `api_key`, `postcard_number`).




## OpenAPI

````yaml /api-reference/openapi.yaml post /integrations
openapi: 3.0.3
info:
  title: Nexus
  version: 1.0.2
  description: >
    API para integração entre Ticto e clientes externos


    # Autenticação


    Para autenticar as solicitações aos endpoints descritos a seguir, por favor,
    siga os passos abaixo:


    1. **Solicite** seu cadastro como cliente através do e-mail
    **infraestrutura@ticto.com.br** para obter seu `client_id` e `token`.

    2. **Use** seu token e ID de cliente para fazer login no Nexus e obter seu
    `client_token`.

    3. **Em todas as outras requisições**, envie seu `client_token` no header
    como `X-Api-Client-Token`.

    4. **Crie** seus usuários na rota de criação de usuário. Para cada usuário,
    será retornado um `public_token` único.

    5. **Para endpoints que não estão em public.php**, adicione o `public_token`
    do usuário no cabeçalho **Authorization** utilizando o formato:

       ```http
       Authorization: Bearer {public_token}
       ```

    ## Restrição de origem


    O acesso a esta API não está disponível para todos os sellers. Seu uso é
    estritamente permitido para parceiros comerciais que a utilizarão em
    cenários específicos. Por este motivo, o acesso será restrito a endereços IP
    e domínios previamente informados por esses parceiros. Essa medida visa
    proporcionar um ambiente mais controlado e seguro para todos os nossos
    usuários e parceiros.


    ### O que isso significa para os desenvolvedores?


    - **Acesso Limitado:**
      Somente os IPs e domínios pré-autorizados poderão realizar chamadas à API. Qualquer tentativa de acesso de um IP ou domínio não listado será automaticamente rejeitada.

    - **Processo de Autorização:**
      Para garantir a continuidade do acesso à API sem interrupções, é essencial que os desenvolvedores enviem os endereços IP ou domínios que necessitam de acesso diretamente à nossa equipe de suporte.

    - **Como Solicitar Acesso:**
      Envie um e-mail para **liberacao@ticto.com.br** com o assunto _"Solicitação de Acesso à API de pagamentos"_, incluindo:
      - Nome da empresa ou do desenvolvedor
      - Endereços IP ou domínios a serem autorizados
      - Justificativa para o acesso
      - Informações de contato para eventuais esclarecimentos

    ## Alterações e/ou inclusão de novos domínios e IPs


    Recomendamos que solicitações de adição ou alteração de IPs/domínios sejam
    feitas o mais breve possível para garantir uma transição suave. Em casos de
    alterações, os domínios e/ou IPs anteriores serão imediatamente bloqueados
    após sua remoção.


    ## Suporte e Dúvidas


    Para dúvidas ou suporte adicional, entre em contato conosco através do
    e-mail **liberacao@ticto.com.br**. Estamos comprometidos em auxiliar neste
    processo e garantir a melhor experiência possível.
servers:
  - url: https://nexus.ticto.com.br/api/v1
    description: Produção
security: []
tags:
  - name: Autenticação
  - name: Configurações do Cliente
  - name: Usuários
  - name: Onboarding de usuário
  - name: Contas Bancárias
  - name: Faixas de Taxa
    description: >-
      Endpoints para consulta de faixas de taxa personalizadas e histórico de
      alterações.
  - name: Frete
  - name: Financeiro
  - name: PIX Automático
    description: >-
      Consulta, cancelamento e nova tentativa de cobrança de assinaturas com PIX
      Automático (débito recorrente autorizado pelo pagador).
  - name: Produtos
  - name: Integrações
  - name: 'Webhooks: Usuários'
    description: Eventos relacionados a cadastro e atualização de usuários.
  - name: 'Webhooks: Contas Bancárias'
    description: Eventos relacionados a contas bancárias dos sellers.
  - name: 'Webhooks: Produtos e Ofertas'
    description: Eventos relacionados a produtos, ofertas, afiliados e coprodutores.
  - name: 'Webhooks: Financeiro'
    description: Eventos de reembolso, saque e antecipação.
  - name: 'Webhooks: Faixas de Taxa'
    description: Eventos de criação, atualização e exclusão de faixas de taxa.
  - name: 'Webhooks: Pedidos'
    description: Eventos de criação e atualização de pedidos.
  - name: 'Webhooks: Cobranças'
    description: >-
      Eventos de criação e mudança de status de cobranças (transações), na
      primeira compra e nas renovações.
  - name: 'Webhooks: Assinaturas'
    description: Eventos do ciclo de vida de assinaturas, cobranças e trial.
paths:
  /integrations:
    post:
      tags:
        - Integrações
      summary: Criar integração
      description: |
        Cria uma nova integração vinculada a um ou mais produtos do cliente.

        **Regras principais:**
        - O campo `product_hashes` deve conter apenas hashes de produtos que:
          - pertencem ao cliente autenticado.
        - Para integrações do tipo `correios`:
          - todos os produtos referenciados em `product_hashes` devem ser do tipo `physical`.
          - o objeto `options` deve conter as credenciais obrigatórias (`username`, `api_key`, `postcard_number`).
      operationId: createIntegration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestIntegration'
      responses:
        '201':
          description: Integração criada com sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseIntegration'
        '400':
          description: Requisição inválida
        '401':
          description: Não autorizado
        '422':
          description: Payload incorreto ou falhas de validação de produtos/credenciais
        '500':
          description: Erro interno do servidor
      security:
        - ApiClientToken: []
        - bearerAuth: []
components:
  schemas:
    RequestIntegration:
      type: object
      required:
        - name
        - type
        - product_hashes
      properties:
        name:
          type: string
          maxLength: 191
          description: Nome da integração
        type:
          type: string
          description: Tipo da integração
          enum:
            - correios
        product_hashes:
          type: array
          minItems: 1
          description: >
            Lista de hashes de produtos vinculados à integração.


            Regras:

            - Pelo menos 1 produto é obrigatório.

            - Devem pertencer ao cliente autenticado.

            - Para integrações do tipo `correios`, todos os produtos devem ser
            do tipo físico.
          items:
            type: string
        options:
          type: object
          description: >
            Configurações específicas da integração.


            Para integrações do tipo `correios`, os campos abaixo são
            obrigatórios:

            - `username` - Usuário de autenticação Correios

            - `api_key` - Chave da API Correios

            - `postcard_number` - Número do cartão de postagem
          properties:
            username:
              type: string
              description: Usuário de autenticação Correios
            api_key:
              type: string
              description: Chave de API Correios
            postcard_number:
              type: string
              description: Número do cartão de postagem Correios
            access_token:
              type: string
              description: >-
                Token de acesso obtido na autenticação com o serviço externo
                (gerenciado internamente)
            expires_at:
              type: string
              format: date-time
              description: Data de expiração do token de acesso
    ResponseIntegration:
      type: object
      required:
        - hash
        - name
        - type
        - product_hashes
        - created_at
        - updated_at
      properties:
        hash:
          type: string
          description: Hash único da integração
        name:
          type: string
          description: Nome da integração
        type:
          type: string
          description: Tipo da integração
          enum:
            - correios
        product_hashes:
          type: array
          description: Lista de hashes dos produtos vinculados à integração
          items:
            type: string
        options:
          type: object
          description: Configurações específicas da integração
        created_at:
          type: string
          format: date-time
          description: Data de criação no formato ISO 8601
        updated_at:
          type: string
          format: date-time
          description: Data de atualização no formato ISO 8601
  securitySchemes:
    ApiClientToken:
      type: apiKey
      in: header
      name: X-Api-Client-Token
      description: Token de autenticação do cliente obtido via endpoint /auth
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Token de autenticação do usuário (public_token) obtido na criação do
        usuário

````

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