openapi: 3.1.0
servers:
  - url: "https://api.malga.io"
    description: Production
info:
  version: "0.5"
  title: Documentação Malga API
  description: |
    # Authentication

    Os serviços de API da Malga são protegidos através de chaves de acesso. Você pode gerenciar suas chaves de acesso através do seu dashboard.

    É importante armazenar suas chaves de maneira privada e segura uma vez que elas possuem privilégios de alteração na sua conta. Não compartilhe suas chaves, não deixe elas fixadas no seu código e nem armazene elas no seu servidor de controle de versão. Recomendamos utilizar variáveis de ambiente secretas para deixar a chave disponível para sua aplicação.

    A Autenticação para todos os chamadas da API é feita através de headers HTTP, sendo necessário informar seu identificador de cliente na Malga e a chave secreta de acesso.

    ## X-Client-ID

    Identificador única da sua conta na Malga. Deve ser enviado no header obrigatóriamente em todas as requisições feitas a API.

    | Security Scheme Type | API Key |
    |-----------------------|-----------|
    | Header parameter name | `X-Client-ID` |

    ## X-Api-Key

    Sua chave de acesso a API. Funciona em par com o client-id devendo ser enviado no header obrigatóriamente em todas as requisições feitas a API.

    | Security Scheme Type | API Key |
    |-----------------------|-----------|
    | Header parameter name | `X-Api-Key` |

    ## Exemplo de requisicão autenticada

    ```bash
      curl --location --request GET 'https://api.malga.io/v1/' \
        --header 'X-Client-Id: <YOUR_CLIENT_ID>' \
        --header 'X-Api-Key: <YOUR_SECRET_KEY>'
    ```

tags:
  - name: Client-token
    description: |
      É possível criar chaves públicas de acesso temporária a API com escopo e tempo de expiração limitados.

      Recomendamos o uso deste tipo de chave quando você tiver que expor a chave em uma aplicação client side.

      **Detalhe dos parâmetros da chamada de criação da chave pública:**

      <SchemaDefinition schemaRef="#/components/schemas/AuthRequest" />

      **Retorno da chamada de criação da chave pública:**

      <SchemaDefinition schemaRef="#/components/schemas/AuthResponse" />

  - name: Tokens
    description: |
      **Dados básicos de uma requisição de criação de card token**

      <SchemaDefinition schemaRef="#/components/schemas/TokenRequest"   />

  - name: Cards
    description: |
      **Dados básicos de um objeto cartão**

      <SchemaDefinition schemaRef="#/components/schemas/Card"  />

  - name: Customers
    description: |

      Através da API de `customers` é possível realizar a criação, edição, listagem e exclusão de dados de compradores para uso nos serviços de tokenização de cartões, cobrança por PIX, Boleto, uso em análise de motores de antifraude e recorrência.

      *A fim de manter maior integridade dos dados, as informações de email e documento (CPF/CNJP) são únicos para customers na sua conta Malga, não podendo existir dois compradores iguais.*

      ### Consulte a [tabela de tipos de paises e documentos suportados](#section/Tabela-tipos-de-paises-e-documentos-cadastro-de-Customer) para criação de customer

  - name: Sessions
    description: |

      Através da API de sessões é possível criar um pedido, composto por itens, métodos de pagamento e outros atributos, que pode ser pago através de um endpoint ou integrado ao MalgaCheckout.

      # Fluxo de criação e de pagamento de uma sessão
      - Crie uma `sessão` informando os dados básicos necessários
      - Utilize a `publicKey` retornada na criação ou recuperada na rota de detalhes no `X-Api-Key` para autenticar o pagamento

      **Dados básicos de um objeto do tipo session**

      <SchemaDefinition schemaRef="#/components/schemas/Session" exampleRef="#/components/examples/Session" />

  - name: Charges
    description: |

      Para realizar uma cobrança deve criar um objeto `charge`. É possível recuperar detalhes de transações individuais ou listar todas as cobranças realizadas em um determinado `merchant`. Os `charges` são identificados a partir de um id 'único'.

      **Dados básicos de um objeto do tipo charge**

      <SchemaDefinition schemaRef="#/components/schemas/Charge" exampleRef="#/components/examples/ChargeCard" />

  - name: Webhooks
    description: |

      A Malga utiliza o serviço de webhooks para notificar o seu sistema sobre os eventos ocorridos na nossa plataforma. Através de webhooks você consegue atualizar seu sistema sempre que um evento importante acontece, como a atualização de status de uma cobrança para confirmar ou cancelar um determinado pagamento.

      **Dados básicos de um objeto do tipo event:**

      <SchemaDefinition schemaRef="#/components/schemas/Event" exampleRef="#/components/examples/Event" />

  - name: Subscriptions
    description: |
      Através da API de `subscriptions` é possível realizar a criação, edição, listagem e exclusão de assinaturas.

      **Dados básicos de um objeto do tipo subscription**

      <SchemaDefinition schemaRef="#/components/schemas/Subscription" exampleRef="#/components/examples/Subscription" />

  - name: Reports
    description: |

      Através da API Reports, é possível realizar a exportação das informações das transações processadas através da Malga em arquivo .csv, relacionadas à cobrança [charges], o pagamento [transaction], o link de pagamento [session] e cliente [customer] que realizou o pagamento

  - name: Merchants
    description: |

      Através das APIs de `merchants` é possível realizar a criação e configuração de sub contas na Malga. Uma sub conta, ou um `merchant`, é um cadastro de estabelecimento comercial que você tenha junto há um dos provedores de pagamentos integrados pela Malga. Uma vez que você tenha uma conta criada em um dos provedores aceitos, basta você solicitar suas credenciais de acesso ao parceiro e configurar seu cadastro na Malga.

      No cadastro de `merchant` é necessário informar o código da categoria `mcc` do seu cadastro junto ao provedor, escolher um dos tipos de provedores suportados pela Malga, e definir a prioridade do provedor com suas credenciais de acesso à API do provedor.

      O sistema de roteamento inteligente de transações da Malga foi desenvolvido de maneira a suportar o uso de múltiplos provedores por cadastro de estabelecimento. Usamos a prioridade definida no cadastro dos provedores para priorizar um determinado provedor em relação à outro, dessa forma você consegue gerenciar a ordem de provedores que será utilizado para fazer as retentativas.

      ### Consulte a [tabela de provedores aceitos](#section/Provedores-e-meios-de-pagamentos-suportados) para cadastro de credenciais

      ### Consulte a [tabela de código MCC](api-reference/type-tables/mcc-code.mdx) para cadastro de Merchants

      **Dados básicos do objeto do tipo merchant**

      <SchemaDefinition schemaRef="#/components/schemas/Merchant" exampleRef="#/components/examples/Merchant" />

  - name: Providers
    description: |

      Através das APIs de Providers você pode realizar a edição e atualização dos provedores vinculados a um merchant já cadastrado na Malga.

      Essas operações permitem que você mantenha seus dados sempre atualizados, garantindo a continuidade e a segurança das integrações com os provedores de pagamento.

      **Atenção:**
      Alterações nas credenciais ou configurações do provedor podem impactar o processamento das transações. Sempre revise e valide as informações antes de salvar.

      ### Consulte a [tabela de provedores aceitos](#section/Provedores-e-meios-de-pagamentos-suportados) para cadastro de credenciais

      ### Consulte a [tabela de código MCC](api-reference/type-tables/mcc-code.mdx) para cadastro de Merchants

      **Dados básicos do objeto do tipo providers**

      <SchemaDefinition schemaRef="#/components/schemas/UpdateMerchantProviderDto" exampleRef="#/components/examples/UpdateMerchantProviderDto" />

  - name: Sellers
    description: |

      Para realizar uma cobrança com Split, antes é necessário criar um `seller`. Os `sellers` são identificados a partir de um id único.

      Através das APIs de `sellers` é possível realizar a criação e configuração de recebedores que serão beneficiados em um Split. Um recebedor, ou `seller`, é um cadastro de pessoa física ou jurídica para quem você deseja repassar automaticamente valores de uma cobrança.

      É obrigatório informar o campo `owner` para recebedores do tipo pessoa física. Para pessoa jurídica, informe `owner` e `business`.

      Status possíveis: `pending`, `active`, `partial`, `inactive` e `blocked`.

      <SchemaDefinition schemaRef="#/components/schemas/Seller" exampleRef="#/components/examples/SellerRequestBusiness" />

  - name: Seller Registration Reviews
    description: |

      Periodicamente, e sempre que encontra uma inconsistência, o provedor exige que os dados cadastrais de um recebedor sejam confirmados. Quando isso acontece, a Malga abre um processo de revisão cadastral com prazo e com a lista dos campos a coletar, e o notifica pelos eventos `seller.registration_review.*`.

      Cabe a você coletar esses dados **diretamente com o recebedor** e enviá-los antes do prazo. O provedor proíbe responder com dado que já estava na sua base — leia a [regra de coleta ativa](/documentations/split/revisao-cadastral) antes de integrar.

      Um processo que vence sem envio leva o provedor a bloquear o recebedor, e com ele o repasse do Split.

  - name: Flows
    description: |

      Através da API de `flows` é possível recuperar detalhes de um Fluxo ou listar todas os Fluxos cadastrados em determinado `clientId`.

      Os fluxos inteligentes são um recurso disponibilizado pela Malga para gestão dos pagamentos, possibilitando a configuração e a inserção de regras e condicionais personalizados para processamento das cobranças. Para mais informações, consulte a documentação [link](https://docs.malga.io/documentations/flow-guide/introduction).

  - name: Settings
    description: |

      Através da API de `settings` é possível recuperar, criar e atualizar configurações de personalização de link de pagamento de um determinado `clientId`. É possível também configurar branding específico por merchant, enviando o header opcional `X-Merchant-Id`. Quando o header é enviado no **GET**, o sistema busca primeiro a configuração do merchant; se não existir, retorna a configuração padrão do cliente (fallback automático). Em **POST/PATCH**, o escopo é exato (sem fallback).

      **PATCH:** aceita `multipart/form-data` (inclui upload de logo) ou `application/json` (somente campos textuais). Campos vazios são ignorados no update. Se nenhum campo efetivo for enviado, a API retorna `422`.

  - name: Payouts
    description: |

      Através das APIs de `payouts` é possível consultar o saldo disponível, listar repasses e visualizar as ordens de pagamento liquidadas para um cliente.

      Esses endpoints são read-only e atendem a fluxos de conciliação financeira de Split de pagamentos. As consultas são restritas ao `X-Client-Id` autenticado e podem ser filtradas por `sellerId` quando aplicável.

      **Status possíveis de repasse:** `pending`, `paid`, `failed`, `offset`.

  - name: Prepayment
    description: |

      > **🚧 Beta** — esta API está em fase Beta. Já está disponível para clientes habilitados, mas detalhes do contrato e do fluxo podem evoluir nas próximas versões.

      **Antecipação avulsa de recebíveis.** Permite que clientes habilitados recebam antes da data prevista os recebíveis das suas vendas, mediante desconto proporcional ao tempo antecipado.

      ### Pré-requisitos

      - Transacionar pelo **provedor de pagamento Malga** (a antecipação não está disponível para transações feitas por outros provedores conectados à plataforma).
      - Sua conta precisa estar **habilitada** para antecipar recebíveis. Para solicitar a habilitação, entre em contato com o suporte. A solicitação passa por uma análise antes de ser aprovada.

      ### Fluxo

      1. Consulte os recebíveis disponíveis para antecipação.
      2. Simule a antecipação informando uma ou mais datas de recebimento — a Malga agrupa todos os recebíveis previstos para cada data informada.
      3. Confirme a simulação para efetivar a antecipação. Para receber em D+1, o aceite precisa acontecer **até as 15h (horário de Brasília)** do dia da simulação.

      Detalhes do guia conceitual em [Antecipação avulsa](/documentations/more/prepayment).

  - name: Tabelas de tipos
    description: |

      # Provedores e meios de pagamentos suportados

      | Provedor        | Cartão | Boleto | Pix | Pix Parcelado | Split | 3DS2 | Voucher | Descrição        |
      | ------------    |---     |---     |---  |---            |---    |---   |---   |---------         |
      | `SANDBOX`       | SIM    | SIM    | SIM | SIM           | SIM   | SIM  | SIM  | Simulador ambiente de teste |
      | `ADYEN`         | SIM    | SIM    | SIM | NÃO           | NÃO   | SIM  | NÃO  | Adyen            |
      | `BARTE`         | SIM    | NÃO    | NÃO | NÃO           | NÃO   | SIM  | NÃO  | Barte            |
      | `ITAU`          | NÃO    | EM BREVE    | SIM | NÃO           | NÃO   | NÃO  | NÃO  | Itaú             |
      | `BB`            | NÃO    | NÃO    | SIM | NÃO           | NÃO   | NÃO  | NÃO  | Banco do Brasil  |
      | `BRAINTREE`     | SIM    | NÃO    | NÃO | NÃO           | NÃO   | NÃO  | NÃO  | Braintree        |
      | `BRASPAG`       | SIM    | NÃO    | NÃO | NÃO           | SIM   | NÃO  | NÃO  | Braspag          |
      | `BS2_BOLETO`    | NÃO    | SIM    | NÃO | NÃO           | NÃO   | NÃO  | NÃO  | Banco BS2 Boleto |
      | `BS2`           | NÃO    | NÃO    | SIM | NÃO           | NÃO   | NÃO  | NÃO  | Banco BS2 Pix    |
      | `CIELO`         | SIM    | NÃO    | NÃO | NÃO           | NÃO   | NÃO  | NÃO  | Cielo            |
      | `DRIP`          | NÃO    | NÃO    | NÃO | SIM           | NÃO   | NÃO  | NÃO  | Drip             |
      | `GETNETSEP`    | SIM    | NÃO    | NÃO | NÃO           | NÃO   | NÃO  | NÃO  | GetnetSep       |
      | `KLAP`          | SIM    | NÃO    | NÃO | NÃO           | NÃO   | NÃO  | NÃO  | Klap             |
      | `MERCADO_PAGO`  | SIM    | SIM    | SIM | NÃO           | NÃO   | NÃO  | NÃO  | Mercado pago     |
      | `PAGARME_V5`    | SIM    | SIM    | SIM | NÃO           | NÃO   | NÃO  | SIM  | Pagar.me V5      |
      | `PAGSEGURO`     | SIM    | NÃO    | SIM | NÃO           | NÃO   | NÃO  | NÃO  | PagSeguro        |
      | `PAYPAL`        | SIM    | NÃO    | NÃO | NÃO           | NÃO   | NÃO  | NÃO  | PayPal           |
      | `REDE`          | SIM    | NÃO    | NÃO | NÃO           | NÃO   | NÃO  | NÃO  | Rede             |
      | `SAFRAPAY`      | SIM    | NÃO    | SIM | NÃO           | NÃO   | NÃO  | NÃO  | Safrapay         |
      | `MAPINVEST`     | NÃO    | NÃO    | SIM | NÃO           | NÃO   | NÃO  | NÃO  | Mapinvest        |
      | `BOLT`          | SIM    | NÃO    | NÃO | NÃO           | NÃO   | NÃO  | NÃO  | Bolt             |
      | `STRIPE`        | SIM    | SIM    | NÃO | NÃO           | NÃO   | NÃO  | NÃO  | Stripe           |
      | `VR`            | NÃO    | NÃO    | NÃO | NÃO           | NÃO   | NÃO  | SIM  | VR               |
      | `WORLDPAY`      | SIM    | NÃO    | NÃO | NÃO           | NÃO   | NÃO  | NÃO  | Worldpay         | 
      | `ZOOP`          | SIM    | SIM    | SIM | NÃO           | SIM   | NÃO  | NÃO  | Zoop             |
      | `PICPAY`        | SIM    | NÃO    | SIM | NÃO           | NÃO   | NÃO  | NÃO  | Picpay           |

      # Provedores de AntiFraude
      | Provedor      | Realtime | Assíncrono |  Descrição    |
      | ------------  |---       |---         |---------      |
      | `CLEARSALE`   | SIM      | SIM        | Clearsale Realtime Decision e Behaviour Analytics    |
      | `B2E`         | NÃO      | SIM        | B2E Antifraude Análise de Risco    |

      # Tabela de código de negação para declinedCode

      | DeclinedCode             | ResponseMessage       | O que fazer (ABECS) |
      | --------------------------|-----------  | --------------- |
      | *card_not_supported*        | The card does not support this type of purchase	| UTILIZE FUNÇÃO DÉBITO |
      | *expired_card*              | The card expiration date is invalid	| VERIFIQUE OS DADOS DO CARTÃO |
      | *fraud_confirmed*           | The charge has been declined for confirmed fraud | 	TRANSAÇÃO NÃO PERMITIDA PARA O CARTÃO - NÃO TENTE NOVAMENTE |
      | *fraud_suspect*             | The charge has been declined for suspect it is fraudulent | 	CONTATE A CENTRAL DO SEU CARTÃO |
      | *generic*                   | The card has been declined for a unknown reason | 	CONTATE A CENTRAL DO SEU CARTÃO |
      | *insufficient_funds*        | The card has insufficient funds	|  NÃO AUTORIZADA |
      | *invalid_amount*            | The charge amount is not valid or exceeded maximum allowed	|  VALOR DA TRANSAÇÃO NÃO PERMITIDO |
      | *invalid_cvv*               | The security code is invalid	| SENHA INVÁLIDA |
      | *invalid_data*              | The card has been declined for invalid data	| VERIFIQUE OS DADOS DO CARTÃO |
      | *invalid_installment*       | The charge has been declined because invalid number of installments	| PARCELAMENTO INVÁLIDO |
      | *invalid_merchant*          | The charge has been declined because merchant is not valid	| CONTA ORIGEM INVÁLIDA |
      | *invalid_number*            | The card number is invalid	| VERIFIQUE OS DADOS DO CARTÃO |
      | *invalid_pin*               | The card has been declined because pin is invalid	| SENHA INVÁLIDA |
      | *issuer_not_available*      | The card issuer could not be reached, charge not authorized	| DADOS DO CARTÃO INVÁLIDO |
      | *lost_card*                 | The card has been declined because the card is reported lost	| TRANSAÇÃO NÃO PERMITIDA - NÃO TENTE NOVAMENTE |
      | *not_permitted*             | The charge is not permited to the card	| TRANSAÇÃO NÃO PERMITIDA PARA O CARTÃO |
      | *pickup_card*               | The card cannot be used to make this charges	| CONTATE A CENTRAL DO SEU CARTÃO |
      | *pin_try_exceeded*          | The card has been declined because exceeded maximum pin tries	| EXCEDIDAS TENTATIVAS DE SENHA. CONTATE A CENTRAL DO SEU CARTÃO |
      | *restricted_card*           | The card cannot be used to make this charge	| DESBLOQUEIE O CARTÃO |
      | *security_violation*        | The card has been declined for a unknown reason	| VERIFIQUE OS DADOS DO CARTÃO |
      | *service_not_allowed*       | The card has been declined because do not support international charge	| CARTÃO NÃO PERMITE TRANSAÇÃO INTERNACIONAL |
      | *stolen_card*               | The card has been declined because the card is reported stolen	| TRANSAÇÃO NÃO PERMITIDA - NÃO TENTE NOVAMENTE |
      | *transaction_not_allowed*   | The card has been declined for a unknown reason	| ERRO NO CARTÃO |
      | *try_again*                 | The card has been declined for a unknown reason	| REFAZER A TRANSAÇÃO |

      # Tabela de códigos MCC

      |MCC | Descrição |
      |--------|-----------------|
      |*742*  | VETERINARIA |
      |*744*  | Carefree Resorts |
      |*763*  | COOPERATIVA AGRÍCOLA |
      |*780*  | SERVIÇOS DE PAISAGISMO E HORTICULTURA |
      |*1520* |  EMPREITEIROS EM GERAL - COMERCIAL E RESIDENCIAL |
      |*1711* |  PREST. DE SERV. PARA AR COND., ENCANAMENTO E AQUEC. |
      |*1731* |  ELETRICISTAS E SERVIÇOS ELÉTRICOS |
      |*1740* |  PEDREIROS E SERVIÇOS DE INSTALAÇÃO |
      |*1750* |  MARCENEIROS E SERVIÇOS DE CARPINTARIA |
      |*1761* |  METALURGICOS |
      |*1771* |  EMPREITEIO PARA SERVIÇOS ESPECIALIZADO |
      |*1799* |  DEMAIS SVS DE REFORMA E CONSTRUÇÃO NÃO-CLASSIFICADOS |
      |*2741* |  EDITORAS - PUBLICAÇÕES E IMPRESSÕES |
      |*2791* |  TYPESETTING, PLATE MAKING AND RELATED SERVICES |
      |*2842* |  SERVIÇOS DE LIMPEZA E POLIMENTO |
      |*4011* |  TRANSPORTE FERROVIÁRIO DE CARGA |
      |*4111* |  TRANSPORTE LOCAL DE PASSAGEIROS, INCLUINDO BALSAS |
      |*4112* |  TRANSPORTE DE PASSAGEIROS EM TREM (LONGA DISTÂNCIA) |
      |*4119* |  AMBULANCIAS |
      |*4121* |  LIMUSINES E TÁXIS (TAXICABS AND LIMOUSINES) |
      |*4131* |  COMPANHIAS DE ONIBUS |
      |*4214* |  TRANSPORTE DE CARGA RODOVIÁRIO E ARMAZENAMENTO |
      |*4215* |  CORREIOS - AÉREO, TERRESTRE E TRANSITÓRIOS |
      |*4225* |  ARMAZENAM. PROD AGRÍCOLAS,MERCAD REFRIGERADAS,BENS DOMÉSTICO |
      |*4411* |  LINHAS DE CRUZEROS (CRUISE LINES) |
      |*4457* |  ALUGUEL E ARRENDAMENTO DE BARCOS, ESQUIS E IATES |
      |*4468* |  MARINAS, SERVIÇOS E FORNECEDORES |
      |*4511* |  OUTRAS CIAS AÉREAS |
      |*4582* |  AEROPORTOS E SERVIÇOS LIGADOS A AERONAVES |
      |*4722* |  AGÊNCIAS DE VIAGENS (TRAVEL AGENCIES) |
      |*4723* |  AGÊNCIAS DE VIAGEM TUI (TUI TRAVEL AGENCY) |
      |*4784* |  PEDÁGIOS |
      |*4789* |  SERVIÇOS DE TRANSPORTE |
      |*4812* |  TELEFONES E EQUIPAMENTOS DE TELECOMUN. |
      |*4813* |  SERVIÇOS DE TELEC.- CHAM. LOCAIS E LONGA DISTÂNCIA |
      |*4814* |  SERVIÇOS DE TELECOMUNICAÇÃO |
      |*4816* |  REDES DE COMPUTADORES / SERVIÇOS DE INFORMAÇÃO |
      |*4821* |  TELEGRAFO |
      |*4829* |  ORDENS DE PAGAMENTO POR TRANSFERÊNCIA BANCÁRIA |
      |*4899* |  SERVIÇOS DE TV A CABO/PAGA (CABLE/PAY TV SERVICES) |
      |*4900* |  UTILID./ELEC/GAS/AGUÁ/SANI (UT../ELEC/GAS/H2O/SANI) |
      |*5013* |  ATACADISTAS E DISTRIBUIDORES DE ACESSÓRIOS DE VEÍCULOS |
      |*5021* |  MÓVEIS PARA ESCRITÓRIOS (COMMERCIAL FURNITURE) |
      |*5039* |  MATERIAL PARA CONSTRUÇÃO E AFINS (CONST. MAT. - DEF) |
      |*5044* |  A/D DE EQUIPAMENTOS DE FOTOGRAFIA, CÓPIA E MICROFILME |
      |*5045* |  COMPUTADORES, EQUIPAMENTOS E SOFTWARES |
      |*5046* |  A/D DE MÁQUINAS E EQUIPAMENTOS PARA EC |
      |*5047* |  A/D DE EQUIPAMENTO HOSPITALARES, MÉDICOS E OFTÁLMICOS |
      |*5051* |  CENTROS DE SERVIÇOS DE METAIS (METAL SERVICE CENTERS) |
      |*5065* |  LOJA ARTIGOS ELETRÔNICOS |
      |*5072* |  EQUIP./DISTRIB. DE HARDWARE (HARDWARE EQUIP.SUPPLIES) |
      |*5074* |  EQUIP. DE AQUECIMENTO/ENCANAMENTO (PLUMB./HEAT. E.) |
      |*5085* |  A/D DE SUPRIMENTOS INDUSTRIAIS (NÃO CLASSIFICADO EM OUTRO) |
      |*5094* |  JOALHERIA, PEDRAS PRECIOSAS, METAIS |
      |*5099* |  ATACADISTAS E DISTRIBUIDORES DE MERCADORIAS DURÁVEIS |
      |*5111* |  A/D DE ARTIGOS DE PAPELARIA E SUPRIMENTOS PARA ESCRITÓRIO |
      |*5122* |  FARMACEUTICOS/DROGAS (DRUGS/DRUGGISTS SUNDRIES) |
      |*5131* |  A/D DE TECIDOS E PRODUTOS DE ARMARINHO |
      |*5137* |  ATACADISTAS E DISTRIBUIDORES DE ROUPAS |
      |*5139* |  ATACADISTAS E DISTRIBUIDORES DE CALÇADOS |
      |*5169* |  A/D DE PRODUTOS QUIMICOS E SEMELHANTES (N CLASSIF. EM OUTRO) |
      |*5172* |  PRODUTOS DE PETRÓLEO (PETROLEUM/PETROLEUM PRODUCTS) |
      |*5192* |  ATAC. E DISTRIB. DE LIVROS, PERIÓDICOS E JORNAIS |
      |*5193* |  ATACADISTAS E DISTRIBUIDORES DE FLORES, PLANTAS E SEMENTES |
      |*5198* |  PINTURA, POLIMENTO E SUPRIM. (PAN.,VARN. & SUPPLIES) |
      |*5199* |  A/D DE MERCADORIAS NÃO DURÁVEIS (NÃO CLASSIF. EM OUTRO) |
      |*5200* |  LOJAS DE MATERIAL DE CONSTRUÇÃO (PEQUENO/MÉDIO PORTE) |
      |*5211* |  LOJAS DE MATERIAL DE CONSTRUÇÃO-PRODUTOS BRUTOS (EX: TIJOLO) |
      |*5231* |  LOJAS DE VIDROS, TINTAS E PAPÉIS DE PAREDE |
      |*5251* |  VENDA DE EQUIPAMENTOS, INCLUINDO DE FERRAGEM |
      |*5261* |  JARDINAGEM |
      |*5271* |  CORRETORES DE RESIDÊNCIAS MÓVEIS |
      |*5300* |  VENDA POR ATACADO (WHOLESALE CLUBS) |
      |*5309* |  DUTY FREE STORES |
      |*5310* |  LOJAS DE DESCONTO |
      |*5311* |  LOJAS DE DEPARTAMENTOS (DEPARTMENT STORES) |
      |*5331* |  LOJAS DE VARIEDADES |
      |*5399* |  LOJA MERCADORIAS GERAIS |
      |*5411* |  MERCEARIAS/SUPERMERCADOS (GROCERY STORES/SUPERM.) |
      |*5422* |  AÇOGUEIRO (FREEZER/MEAT LOCKERS) |
      |*5441* |  LOJA DE DOCES |
      |*5451* |  LOJA DE PRODUTOS DE LACTICÍNIOS (DAIRY PROD. STORES) |
      |*5462* |  CONFEITARIAS (BAKERIES) |
      |*5499* |  LOJA DE ALIMENTOS VARIADOS (MISC FOOD S. - DEFAULT) |
      |*5511* |  VENDA DE CARROS E CAMINHÕES (NOVOS E USADOS) |
      |*5521* |  VENDA DE CARROS USADOS |
      |*5531* |  Lojas de Automóveis, Lojas de Acessórios Domésticos |
      |*5532* |  LOJA DE PNEUS |
      |*5533* |  LOJA DE PEÇAS E ACESSÓRIOS DE CARROS |
      |*5541* |  ESTAÇÕES DE SERVIÇOS (SERVICE STATIONS) |
      |*5551* |  VENDA DE BARCOS MOTORIZADOS |
      |*5561* |  ARTIGOS PARA ACAMPAMENTO |
      |*5571* |  LOJAS DE MOTOCICLETAS E ACESSÓRIOS |
      |*5592* |  VENDA DE TRAILLERS |
      |*5598* |  CONSECIONÁRIA DE SNOWMOBILE |
      |*5599* |  SERVIÇOS GERIAS PARA CARROS |
      |*5611* |  ARTIGOS MASCULINOS |
      |*5621* |  LOJA DE ROUPAS FEMININAS "PRONTA PARA USAR" |
      |*5631* |  ACESSORIOS FEMININOS E LINGERIES |
      |*5641* |  ARTIGOS PARA CRIANÇAS E BEBÊS |
      |*5651* |  ROUPAS MASCULINAS, FEMININAS E INFANTIS |
      |*5655* |  ROUPA ESPORTIVA |
      |*5661* |  LOJAS DE SAPATOS |
      |*5681* |  LOJA DE PELES |
      |*5691* |  OJA ROUPA UNISSEX |
      |*5697* |  COSTUREIRAS E ALFAIATES |
      |*5698* |  LOJAS DE PERUCA |
      |*5699* |  SERVIÇOS GERIAS PARA VESTIMENTA |
      |*5712* |  LOJA DE MÓVEIS |
      |*5713* |  Loja de Pisos |
      |*5714* |  LOJA DE ESTOFADOS (DRAPERY & UPHOLSTERY STORES) |
      |*5718* |  LAREIRAS E ACESSÓRIOS (FIREPLACES & ACCESSORIES) |
      |*5719* |  LOJA DE MÓVEIS ESPECIALIZADA (HOME FURNISHING SPEC.) |
      |*5722* |  LOJAS DE ELETRODOMÉSTICOS |
      |*5732* |  LOJA DE ELETRÔNICOS |
      |*5733* |  LOJA INSTRUMENTO MUSICAIS |
      |*5734* |  LOJA DE SOFTWARE |
      |*5735* |  LOJAS DE DISCOS |
      |*5811* |  DISTRIBUIÇÃO E PRODUÇÃO DE ALIMENTOS |
      |*5812* |  RESTAURANTES |
      |*5813* |  BARES, PUBS E CASA NOTURNAS |
      |*5814* |  LANCHONETES DE COMIDAS RÁPIDAS (FAST FOOD) |
      |*5815* |  Produtos Digitais - De comunicação social audiovisual, incluindo Livros, Filmes e Música |
      |*5816* |  Pordutos Digitais - Jogos |
      |*5817* |  Produtos Digitais - Aplicativos de Software (Exceto Jogos) |
      |*5818* |  Produtos Digitais - Diversas Categorias |
      |*5912* |  FARMÁCIAS (DRUG STORES & PHARMACIES) |
      |*5921* |  CERVEJAS, VINHOS E LICORES (STORE/BEER/WINE/LIQUOR) |
      |*5931* |  LOJAS DE ARTIGOS DE SEGUNDA MÃO / BRECHÓS |
      |*5932* |  LOJA DE ANTIGUIDADES (ANTIQUE SHOPS) |
      |*5933* |  LOJAS DE PENHORES |
      |*5935* |  DEMOLIÇÕES, SUCATAS, DESMANCHES DE AUTOMÓVEIS |
      |*5937* |  L. DE REPRODUÇÃO DE ANTIQUIDADES (ANT.REPROD. STORES) |
      |*5940* |  LOJA DE BICICLETAS - VENDAS E SERVIÇOS |
      |*5941* |  SERVIÇOS GERAIS PARA ESPORTES |
      |*5942* |  LIVRARIAS |
      |*5943* |  PAPELARIAS |
      |*5944* |  JOALHERIA (JEWERLY STORE) |
      |*5945* |  LOJA DE BRINQUEDOS |
      |*5946* |  LOJA DE FOTOGRAFIA |
      |*5947* |  LOJA DE PRESENTES |
      |*5948* |  ARTIGOS DE COURO |
      |*5949* |  ARMARINHOS E LOJAS DE TECIDO |
      |*5950* |  LOJA DE COPOS/CRISTAIS (GLASSWARE/CRYSTAL STORES) |
      |*5960* |  MARK.DIRETO DE SEGUROS (DIR. MARKET. INSURANCE SVC) |
      |*5962* |  SERV. DIRETOS DE VIAGENS (D. MKTG-TRAV. RELATED ARR) |
      |*5963* |  VENDA DIRETA (DIRECT SELL/DOOR-TO-DOOR) |
      |*5964* |  CATALOGO DE COMERCIOS (CATALOG MERCHANT) |
      |*5965* |  CATÁLOGO DE VAREJO (COMB.CATALOG & RETAIL) |
      |*5966* |  MARKETING DIRETO-SAÍDA (OUTB. TELEMARKETING M.) |
      |*5967* |  MARKETING DIRETO - ENTRADA (INB. TELEMARKETING M.) |
      |*5968* |  ASSINATURA COMERCIAL (CONTINUITY/SUBSCRIP. MERCHANT) |
      |*5969* |  OUTROS VENDEDORES DE MARKETING DIRETO |
      |*5970* |  PRODUTOS ARTESANAIS |
      |*5971* |  GALERIA DE ARTE (ART DEALERS & GALLERIES) |
      |*5972* |  LOJA DE MOEDAS E SELOS |
      |*5973* |  LOJA DE BENS RELIGIOSOS |
      |*5975* |  APARELHOS AUDITIVOS - VENDAS E SERVIÇOS |
      |*5976* |  BENS ORTOPÉDICOS - PRÓTESES |
      |*5977* |  LOJA DE COSMÉTICOS |
      |*5978* |  MÁQUINAS DE ESCREVER - VENDA, ALUGUEL E SERVIÇOS |
      |*5983* |  REVENDEDORES DE COMBUSTÍVEIS (FUEL DEALERS) |
      |*5992* |  FLORICULTURA |
      |*5993* |  TABACARIA |
      |*5994* |  BANCA DE JORNAL E PROVEDOR DE NOTÍCIAS |
      |*5995* |  PET SHOP |
      |*5996* |  PISCINAS E BANHEIRAS - SERVIÇOS, SUPRIMENTOS E VENDAS |
      |*5997* |  NAVALHA ELÉTRICA - VENDA E SERVIÇOS |
      |*5998* |  LOJAS DE BARRACAS E TOLDOS |
      |*5999* |  LOJAS ESPECIALIZADAS NÃO LISTADAS ANTERIOMENTE |
      |*6010* |  BANCOS / LOJAS DE POUPANÇA E INST. FINANCEIRA |
      |*6011* |  INSTIUIÇÃO FINANCEIRA - CAIXA ELETRÔNICO |
      |*6012* |  INSTIUIÇÃO FINANCEIRA - AGÊNCIAS E SERVIÇOS |
      |*6050* |  Similar a Dinheiro (Quase Cash) - Instituição Financeira Cliente |
      |*6051* |  CASAS DE CÂMBIO |
      |*6211* |  CORRETORES DE IMÓVEIS (SECURITIES BROKERS/DEALERS) |
      |*6300* |  VENDA DE SEGUROS(INSURANCE SALES/UNDERWRITE) |
      |*6513* |  CORRETOR DE IMÓVEIS (ALUGUEL) |
      |*6532* |  PAGTOS DE TRANSAÇÕES DE INST.FINANCEIRAS |
      |*6533* |  PAGTOS DE TRANSAÇÕES COMERCIAIS |
      |*7011* |  HOTEIS (HOTELS/MOTELS/RESORTS) |
      |*7012* |  TEMPO COMPARTILHADO (TIMESHARE) |
      |*7032* |  ACAMPAMENTOS RECREATIVOS E DEPORTIVOS |
      |*7033* |  SERVIÇOS DE ACAMPAMENTOS |
      |*7210* |  LAVANDARIA, LIMPEZA E SERVIÇOS DE VESTUÁRIO |
      |*7211* |  LAVANDERIA - FAMILIAR E COMERCIAL |
      |*7216* |  LAVANDERIA TINTURARIA |
      |*7217* |  LIMPEZA DE TAPETES E ESTOFADOS |
      |*7221* |  ESTÚDIOS DE FOTOGRAFIA |
      |*7230* |  SALAO DE BELEZA / BARBEARIA / DEPILAÇÃO / MANICURE |
      |*7251* |  LOJA/REPARO DE SAPATOS |
      |*7261* |  SERVIÇO FUNERÁRIO |
      |*7273* |  SERVIÇO DE ENCONTROS E ACOMPANHANTE |
      |*7276* |  SERVIÇOS DE PREP. IMPOST. DE RENDA (TAX PREP. SVCS) |
      |*7277* |  S. DE ACONSELHAMENTO DE DÍVIDAS, CASAMENTO E PESSOAL |
      |*7278* |  CLUBES DE COMPRAS |
      |*7296* |  ALUGUEL DE ROUPAS - FANTASIAS, UNIFORMES E ROUPAS SOCIAIS |
      |*7297* |  CENTRO DE SAUNAS E MASSAGENS |
      |*7298* |  CLÍNICAS DE ESTÉTICA FACIAL / CORPORAL |
      |*7299* |  OUTROS SERVIÇOS PESSOAIS |
      |*7311* |  PUBLICIDADES |
      |*7321* |  AGÊNCIAS DE ANÁLISE DE CRÉDITO DE CONSUMIDORES |
      |*7333* |  SERVIÇOS DE IMPRESSÃO E ARTE GRÁFICA |
      |*7338* |  COPIADORAS E FOTOCOPIADORAS |
      |*7339* |  SERVIÇO DE SECRETARIADO E ESTENOGRAFIA |
      |*7342* |  DEDETIZAÇÃO E DESINFECÇÃO |
      |*7343* |  SERVIÇO DE EXTERMINIO E DESINFETAÇÃO |
      |*7349* |  SERVIÇO LIMPEZA E MANUTENÇÃO |
      |*7361* |  AGÊNCIAS DE EMPREGO |
      |*7372* |  SERVIÇOS DE PROGRAMAÇÃO DE COMPUTADORES E PROCESS. DE DADOS |
      |*7375* |  SERVIÇO DE RECUPERAÇÃO DE INFORMAÇÃO |
      |*7379* |  COMPUTADORES: CONCERTOS E REPAROS |
      |*7392* |  CONSULTORIA EMPRESARIAL E SERVIÇOS DE RELAÇÕES PÚBLICAS |
      |*7393* |  AGÊNCIAS DE DETETIVES, PROTECÇÃO E DE SEGURANÇA |
      |*7394* |  ALUGUEL DE EQUIPAMENTO E MOBÍLIA DE ESCRITÓRIOS |
      |*7395* |  LABORATÓRIOS FOTOGRÁFICOS |
      |*7399* |  SERVIÇOS DE NEGÓCIOS |
      |*7511* |  PARADA DE CAMINHÕES (TRUCK STOP) |
      |*7512* |  ALUGUEL DE AUTOMÓVEIS (AUTOMOBILE RENTAL AGENCY) |
      |*7513* |  ALUGUEL DE CAMINHÕES (TRUCK/UTILITY TRAILER RENTALS) |
      |*7519* |  ALUGUEL DE MOTOR HOME (MOTOR HOME/RV RENTALS) |
      |*7523* |  ESTACIONAMENTOS E GARAGENS DE CARRO |
      |*7531* |  FUNILARIAS E PINTURA AUTOMOTIVA |
      |*7534* |  BORRACHARIAS |
      |*7535* |  LOJAS DE PINTURA DE AUTTOMÓVEIS |
      |*7538* |  SERVIÇOS PARA CARROS (NÃO CONCESIONARIA) |
      |*7542* |  LAVA JATO |
      |*7549* |  GUINCHO |
      |*7622* |  CONSERTO DE EQUIP. AUDIO E TV |
      |*7623* |  CONSERTO DE AR CONDICIONADO |
      |*7629* |  CONSERTO DE ELETRONICOS |
      |*7631* |  CONSERTO DE RELÓGIOS E JÓIAS |
      |*7641* |  RESTAURAÇÃO DE MÓVEIS (FURNITURE REPAIR) |
      |*7692* |  SERRALHEIROS E SOLDADORES |
      |*7699* |  LOJA DE CONSERTOS GERAIS E SERVIÇOS RELACIONADOS |
      |*7829* |  PRODUTORES E DISTRIBUIDORES DE FILMES |
      |*7832* |  CINEMAS, PRODUÇÕES CINEMATOGRÁFICAS |
      |*7841* |  LOJAS DE VIDEOS |
      |*7911* |  DANÇA (ESTUDIOS, ESCOLAS E SALÕES) |
      |*7922* |  TEATROS, PRODUC. TEATR. E ESPECTAC. |
      |*7929* |  BANDAS,ORQUESTRAS,ARTISTAS DIVERSOS(N CLASSIFICADO EM OUTRO) |
      |*7932* |  BARES DE SINUCA |
      |*7933* |  BOLICHE |
      |*7941* |  QUADRAS DE ESPORTE / PROPAGANDA ESPORTIVA |
      |*7991* |  ATRAÇÕES TURÍSTICAS E EXPOSIÇÕES |
      |*7992* |  AULAS DE GOLF PUBLICA |
      |*7993* |  FORNECEDORES DE MÁQUINAS DE VIDEOGAME OU JOGOS |
      |*7994* |  LOJAS DE DIVERSÃO / VIDEO GAME / LAN HOUSE / CIBER CAFÉ |
      |*7995* |  CASSINOS, LOTERIAS E JOGOS DE AZAR |
      |*7996* |  PARQUE DE DIVERSAO, CIRCO E AFINS |
      |*7997* |  ACADEMIAS / CLUBES |
      |*7998* |  AQUÁRIOS E ZOOLÓGICOS |
      |*7999* |  SERVIÇOS DE RECREAÇÃO E FESTAS |
      |*8011* |  MÉDICOS (CLÍNICAS E CONSULTÓRIOS) |
      |*8021* |  DENTISTAS E ORTODONTISTAS (CLÍNICAS E CONSULTÓRIOS) |
      |*8031* |  OSTEOPATAS |
      |*8041* |  QUIROPRAXIA |
      |*8042* |  OFTAMOLOGISTA E OPTOMETRISTAS |
      |*8043* |  OPTICIANS, OPTICAL GOODS, AND EYEGLASSES |
      |*8049* |  TRATAMENTOS PODIÁTRICOS |
      |*8050* |  CASAS DE REPOUSO, CLÍN. DE RECUPERAÇÃO E ENFERMAGEM |
      |*8062* |  HOSPITAIS |
      |*8071* |  ANALISES CLÍNICAS MÉDICAS E DENTAIS |
      |*8099* |  MEDICINA EM GERAL E PRATICANTES DE SERVIÇOS DE SAÚDE |
      |*8111* |  SERVIÇOS JURÍDICOS - ADVOGADOS |
      |*8211* |  EDUCAÇÃO PRIMÁRIA E SECUNDÁRIA (ELEM./SEC.S.) |
      |*8220* |  UNIVERSIDADES E FACULDADES (COLLEGES/UNIV/JC/PROF.) |
      |*8241* |  EDUACAÇÃO A DISTÂNCIA (CORRESPONDENCE SCHOOLS) |
      |*8244* |  ESCOLA DE COMÉRCIOS E SECRETARIADO (BUS./SEC. SCHOOL) |
      |*8249* |  ESCOLA DE NEGÓCIOS/VOCAÇÕES (TRADE/VOCATIONS S.) |
      |*8299* |  COLEGIOS (SCHOOLS) |
      |*8351* |  SERVIÇOS DE CUIDADOS DE CRIANÇAS (CHILD CARE SVCS) |
      |*8398* |  ORGANIZAÇÕES DE SERVIÇOS BENEFICENTES E SOCIAIS |
      |*8641* |  ASSOCIAÇÕES CÍVICAS E SOCIAIS |
      |*8651* |  ORGANIZAÇÕES POLITICAS |
      |*8661* |  ORGANIZAÇÕES RELIGIOSAS |
      |*8675* |  ASSOCIAÇÃO DE CARROS |
      |*8699* |  ORG. SIND., ASSOC. CULT. E OTRS ASSOC. NÃO CLASSIF. |
      |*8734* |  LABORATÓRIOS DE TESTE (PARA TESTES NÃO MÉDICOS) |
      |*8911* |  ARQUIRETURA, ENGENHARIA E AGRIMENSURA |
      |*8931* |  CONTABILIDADE, AUDITORIA E SERVIÇOS DE CONTABILIDADE |
      |*8999* |  OUTROS SERVIÇOS PROFISSIONAIS DE ESPECIALIZADOS |
      |*9211* |  PENSÃO ALIMENTÍCIA (COURT COSTS/ALIMONY/SUPPORT) |
      |*9222* |  MULTAS (FINES) |
      |*9223* |  PAGAMENTOS DE TÍTULOS E FINANÇAS (BAIL AND BOND P.) |
      |*9311* |  PAGAMENTOS DE IMPOSTOS (TAX PAYMENTS) |
      |*9399* |  SERVIÇOS GOVERNAMENTAIS (GOVT SERV - DEFAULT) |
      |*9402* |  POSTAGENS (POSTAGE STAMPS) |
      |*9405* |  COMPRAS GOVERNAMENTAIS (INTRA-GOVERNMENT PURCHASES) |
      |*9406* |  Loteria de Propriedade do Governo (Países Específicos |
      |*9950* |  DEPART. DE COMPRAS (INTRA- COMPANY PURCHASES) |

      # Tabela tipos de moedas aceitas

      | Currency Code | Currency |
      | ----- |----------------------- |
      | **BRL** | 	Brazilian real  |
      | *USD*  | 	United States dollar  |
      | *EUR*  | 	Euro  |
      | *YER*  | 	Yemeni rial |
      | *ZAR*  | 	South African rand  |
      | *AED*  | 	United Arab Emirates dirham |
      | *AFN*  | 	Afghan afghani  |
      | *ALL*  | 	Albanian lek  |
      | *AMD*  | 	Armenian dram |
      | *ANG*  | 	Netherlands Antillean guilder |
      | *AOA*  | 	Angolan kwanza  |
      | *ARS*  | 	Argentine peso  |
      | *AUD*  | 	Australian dollar |
      | *AWG*  | 	Aruban florin |
      | *AZN*  | 	Azerbaijani manat |
      | *BAM*  | 	Bosnia and Herzegovina convertible mark |
      | *BBD*  | 	Barbados dollar |
      | *BDT*  | 	Bangladeshi taka  |
      | *BGN*  | 	Bulgarian lev |
      | *BIF*  | 	Burundian franc |
      | *BMD*  | 	Bermudian dollar  |
      | *BND*  | 	Brunei dollar |
      | *BOB*  | 	Boliviano |
      | *BSD*  | 	Bahamian dollar |
      | *BWP*  | 	Botswana pula |
      | *BZD*  | 	Belize dollar |
      | *CAD*  | 	Canadian dollar |
      | *CDF*  | 	Congolese franc |
      | *CHF*  | 	Swiss franc |
      | *CLP*  | 	Chilean peso  |
      | *CNY*  | 	Chinese yuan[8] |
      | *COP*  | 	Colombian peso  |
      | *CRC*  | 	Costa Rican colon |
      | *CVE*  | 	Cape Verdean escudo |
      | *CZK*  | 	Czech koruna  |
      | *DJF*  | 	Djiboutian franc  |
      | *DKK*  | 	Danish krone  |
      | *DOP*  | 	Dominican peso  |
      | *DZD*  | 	Algerian dinar  |
      | *EGP*  | 	Egyptian pound  |
      | *ETB*  | 	Ethiopian birr  |
      | *ZMW*  | 	Zambian kwacha  |
      | *FJD*  | 	Fiji dollar |
      | *FKP*  | 	Falkland Islands pound  |
      | *GBP*  | 	Pound sterling  |
      | *GEL*  | 	Georgian lari |
      | *GIP*  | 	Gibraltar pound |
      | *GMD*  | 	Gambian dalasi  |
      | *GNF*  | 	Guinean franc |
      | *GTQ*  | 	Guatemalan quetzal  |
      | *GYD*  | 	Guyanese dollar |
      | *HKD*  | 	Hong Kong dollar  |
      | *HNL*  | 	Honduran lempira  |
      | *HRK*  | 	Croatian kuna |
      | *HTG*  | 	Haitian gourde  |
      | *HUF*  | 	Hungarian forint  |
      | *IDR*  | 	Indonesian rupiah |
      | *ILS*  | 	Israeli new shekel  |
      | *INR*  | 	Indian rupee  |
      | *ISK*  | 	Icelandic króna |
      | *JMD*  | 	Jamaican dollar |
      | *JPY*  | 	Japanese yen  |
      | *KES*  | 	Kenyan shilling |
      | *KGS*  | 	Kyrgyzstani som |
      | *KHR*  | 	Cambodian riel  |
      | *KMF*  | 	Comoro franc  |
      | *KRW*  | 	South Korean won  |
      | *KYD*  | 	Cayman Islands dollar |
      | *KZT*  | 	Kazakhstani tenge |
      | *LAK*  | 	Lao kip |
      | *LBP*  | 	Lebanese pound  |
      | *LKR*  | 	Sri Lankan rupee  |
      | *LRD*  | 	Liberian dollar |
      | *LSL*  | 	Lesotho loti  |
      | *MAD*  | 	Moroccan dirham |
      | *MDL*  | 	Moldovan leu  |
      | *MGA*  | 	Malagasy ariary |
      | *MKD*  | 	Macedonian denar  |
      | *MMK*  | 	Myanmar kyat  |
      | *MNT*  | 	Mongolian tögrög  |
      | *MOP*  | 	Macanese pataca |
      | *MRO*  | 	Macanese pataca |
      | *MUR*  | 	Mauritian rupee |
      | *MVR*  | 	Maldivian rufiyaa |
      | *MWK*  | 	Malawian kwacha |
      | *MXN*  | 	Mexican peso  |
      | *MYR*  | 	Malaysian ringgit |
      | *MZN*  | 	Mozambican metical  |
      | *NAD*  | 	Namibian dollar |
      | *NGN*  | 	Nigerian naira  |
      | *NIO*  | 	Nicaraguan córdoba  |
      | *NOK*  | 	Norwegian krone |
      | *NPR*  | 	Nepalese rupee  |
      | *NZD*  | 	New Zealand dollar  |
      | *PAB*  | 	Panamanian balboa |
      | *PEN*  | 	Peruvian sol  |
      | *PGK*  | 	Papua New Guinean kina  |
      | *PHP*  | 	Philippine peso[12] |
      | *PKR*  | 	Pakistani rupee |
      | *PLN*  | 	Polish złoty  |
      | *PYG*  | 	Paraguayan guaraní  |
      | *QAR*  | 	Qatari riyal  |
      | *RON*  | 	Romanian leu  |
      | *RSD*  | 	Serbian dinar |
      | *RUB*  | 	Russian ruble |
      | *RWF*  | 	Rwandan franc |
      | *SAR*  | 	Saudi riyal |
      | *SBD*  | 	Solomon Islands dollar  |
      | *SCR*  | 	Seychelles rupee  |
      | *SEK*  | 	Swedish krona/kronor  |
      | *SGD*  | 	Singapore dollar  |
      | *SHP*  | 	Saint Helena pound  |
      | *SLL*  | 	Sierra Leonean leone  |
      | *SOS*  | 	Somali shilling |
      | *SRD*  | 	Surinamese dollar |
      | *STD*  | 	South Sudanese pound  |
      | *SZL*  | 	Swazi lilangeni |
      | *THB*  | 	Thai baht |
      | *TJS*  | 	Tajikistani somoni  |
      | *TOP*  | 	Tongan paʻanga  |
      | *TRY*  | 	Turkish lira  |
      | *TTD*  | 	Trinidad and Tobago dollar  |
      | *TWD*  | 	New Taiwan dollar |
      | *TZS*  | 	Tanzanian shilling  |
      | *UAH*  | 	Ukrainian hryvnia |
      | *UGX*  | 	Ugandan shilling  |
      | *UYU*  | 	Uruguayan peso  |
      | *UZS*  | 	Uzbekistan som  |
      | *VND*  | 	Vietnamese đồng |
      | *VUV*  | 	Vanuatu vatu  |
      | *WST*  | 	Samoan tala |
      | *XAF*  | 	CFA franc BEAC  |
      | *XCD*  | 	East Caribbean dollar |
      | *XOF*  | 	CFA franc BCEAO |
      | *XPF*  | 	CFP franc (franc Pacifique) |

      # Tabela tipos de paises e documentos cadastro de Customer

      | Country Code | Document Type            | Group              | Country                | Meaning                                                                             |
      | ---- | --------------- | ------------------ | ---------------------- | ----------------------------------------------------------------------------------- |
      | *AL*   | *NIPT*            | Vat                | Albania                | Vat Identifier (Numri i Identifikimit për Personin e Tatueshëm)                     |
      | *AD*   | *NRT*             | Tax                | Andorra                | Tax Identifier (Número de Registre Tributari)                                       |
      | *AR*   | *CBU*             | Bank               | Argentina              | Bank Account (Clave Bancaria Uniforme)                                              |
      | *AR*   | *CUIT*            | Tax                | Argentina              | Tax Identity (Código Único de Identificación Tributaria)                            |
      | *AR*   | *DNI*             | Person             | Argentina              | National Identity (Documento Nacional de Identidad)                                 |
      | *AT*   | *Businessid*      | Company            | Austria                | Austrian Company Register Numbers                                                   |
      | *AT*   | *TIN*             | Tax                | Austria                | Austrian tax identification number (Abgabenkontonummer)                             |
      | *AT*   | *UID*             | VAT                | Austria                | Austrian VAT number (Umsatzsteuer-Identifikationsnummer)                            |
      | *AT*   | *VNR*             | Person             | Austria                | Austrian social security number(Versicherungsnummer)                                |
      | *AU*   | *ABN*             | Company            | Australia              | Australian Business Number                                                          |
      | *AU*   | *ACN*             | Company            | Australia              | Australian Company Number                                                           |
      | *AU*   | *TFN*             | Tax/Person/Company | Australia              | Australian Tax File Number                                                          |
      | *BA*   | *JMBG*            | Person             | Bosnia and Herzegovina | Unique Master Citizen Number                                                        |
      | *BZ*   | *TIN*             | Person/Company     | Belize                 | Brazilian Tax ID ()                                                                 |
      | *BE*   | *VAT*             | Company            | Belgium                | Belgian Enterprise Number                                                           |
      | *BG*   | *EGN*             | Person             | Bulgaria               | ЕГН, Единен граждански номер, Bulgarian personal identity codes                     |
      | *BG*   | *PNF*             | Person             | Bulgaria               | PNF (ЛНЧ, Личен номер на чужденец, Bulgarian number of a foreigner).                |
      | *BG*   | *VAT*             | Company            | Bulgaria               | Идентификационен номер по ДДС, Bulgarian VAT number                                 |
      | *BR*   | *CPF*             | Person             | Brazil                 | Brazilian identity number (Cadastro de Pessoas Físicas)                             |
      | *BR*   | *CNPJ*            | Company            | Brazil                 | Brazilian company number (Cadastro Nacional da Pessoa Jurídica)                     |
      | *BY*   | *UNP*             | Person/Company     | Belarus                | Учетный номер плательщика, the Belarus VAT number                                   |
      | *CA*   | *BN*              | Company            | Canada                 | Company Identifier (Canadian Business Number)                                       |
      | *CA*   | *SIN*             | Person             | Canada                 | Person Identifier (Social Insurance Number)                                         |
      | *CU*   | *NI*              | Person             | Cuba                   | Número de identidad, Cuban identity card numbers                                    |
      | *CY*   | *VAT*             | Company            | Cyprus                 | Αριθμός Εγγραφής Φ.Π.Α. (Cypriot VAT number)                                        |
      | *CZ*   | *DIC*             | Company            | Czech Republic         | Daňové identifikační číslo, Czech VAT number                                        |
      | *CZ*   | *RC*              | Person             | Czech Republic         | Rodné číslo, the Czech birth number                                                 |
      | *CH*   | *SSN*             | Person             | Swisserland            | Swiss social security number ("Sozialversicherungsnummer")                          |
      | *CH*   | *UID*             | Company            | Swisserland            | Unternehmens-Identifikationsnummer, Swiss business identifier                       |
      | *CH*   | *VAT*             | Company            | Swisserland            | Mehrwertsteuernummer, the Swiss VAT number                                          |
      | *CL*   | *RUT*             | Tax                | Chile                  | Tax Identifier (Rol Unico Tributario) [RUN]                                         |
      | *CN*   | *RIC*             | Person             | China                  | Person Identifier (Chinese Resident Identity Card Number)                           |
      | *CN*   | *USCC*            | Company            | China                  | Company Identifier (Unified Social Credit Code, 统一社会信用代码, China tax number) |
      | *CO*   | *NIT*             | Tax                | Columbia               | Tax Identifier (Número de Identificación Tributaria)                                |
      | *CR*   | *CPF*             | Person             | Costa Rica             | Person Identifier (Cédula de Persona Física)                                        |
      | *CR*   | *CPJ*             | Company            | Costa Rica             | Company Identifier (Cédula de Persona Jurídica)                                     |
      | *CR*   | *CR*              | Person             | Costa Rica             | Person Identifier (Cédula de Residencia)                                            |
      | *DE*   | *IDNR*            | Person             | Germany                | Steuerliche Identifikationsnummer, German personal tax number                       |
      | *DE*   | *STNR*            | Company            | Germany                | Steuernummer, German tax number                                                     |
      | *DE*   | *VAT*             | Company            | Germany                | Vat identifier                                                                      |
      | *DK*   | *VAT*             | Company            | Denmark                | Momsregistreringsnummer, Danish VAT number                                          |
      | *DO*   | *CEDULA*          | Person             | Dominican Republic     | Person Identifier (Cédula de Residencia)                                            |
      | *DO*   | *NCF*             | Vat                | Dominican Republic     | Tax Receipt Number (Números de Comprobante Fiscal)                                  |
      | *DO*   | *RNC*             | Tax                | Dominican Republic     | Person Identifier (Registro Nacional del Contribuyente)                             |
      | *EC*   | *CI*              | Person             | Ecuador                | Ecuadorian person identifier (Cédula de identidad)                                  |
      | *EE*   | *IK*              | Person             | Estonia                | Isikukood (Estonian Personcal ID number).                                           |
      | *EE*   | *KMKR*            | Company            | Estonia                | KMKR (Käibemaksukohuslase, Estonian VAT number)                                     |
      | *EE*   | *Registrikood*    | Company            | Estonia                | Registrikood (Estonian organisation registration code)                              |
      | *EC*   | *RUC*             | Tax/Vat            | Ecuador                | Ecuadorian company tax number (Registro Único de Contribuyentes)                    |
      | *SV*   | *NIT*             | Tax                | El Salvador            | Tax Identifier (Número de Identificación Tributaria)                                |
      | *GT*   | *CUI*             | Person             | Guatemala              | Guatemala person (Código Único de Identificación)                                   |
      | *GT*   | *NIT*             | Company            | Guatemala              | Guatemala company tax number (Número de Identificación Tributaria)                  |
      | *FI*   | *ALV*             | Company            | Finland                | ALV nro (Arvonlisäveronumero, Finnish VAT number)                                   |
      | *FI*   | *HETU*            | Person             | Finland                | HETU (Henkilötunnus, Finnish personal identity code)                                |
      | *FI*   | *YTUNNUS*         | Company            | Finland                | Y-tunnus (Finnish business identifier)                                              |
      | *FR*   | *NIF*             | Person             | France                 | NIF (Numéro d'Immatriculation Fiscale, French tax identification number)            |
      | *GB*   | *UTR*             | Person             | Great Brittan          | UTR (United Kingdom Unique Taxpayer Reference)                                      |
      | *GB*   | *VAT*             | Company            | Great Brittan          | VAT (United Kingdom (and Isle of Man) VAT registration number)                      |
      | *GR*   | *AMKA*            | Company            | Greece                 | AMKA (Αριθμός Μητρώου Κοινωνικής Ασφάλισης, Greek social security number)           |
      | *GR*   | *VAT*             | Company            | Greece                 | FPA, ΦΠΑ, ΑΦΜ (Αριθμός Φορολογικού Μητρώου, the Greek VAT number)                   |
      | *FR*   | *NIR*             | Person             | France                 | NIR (French personal identification number)                                         |
      | *FR*   | *SIREN*           | Company            | France                 | SIREN (a French company identification number)                                      |
      | *FR*   | *SIRET*           | Company            | France                 | SIRET (a French company establishment identification number)                        |
      | *FR*   | *TVA*             | Vat                | France                 | VAT Identifier                                                                      |
      | *HR*   | *OIB*             | Person             | Croatia                | Osobni identifikacijski broj, Croatian identification number                        |
      | *HK*   | *HKID*            | Person             | Hong Kong              | Hong Kong Identity Card                                                             |
      | *HU*   | *ANUM*            | Vat                | Hungaria               | ANUM (Közösségi adószám, Hungarian VAT number)                                      |
      | *IS*   | *KENNITALA*       | Person/Company     | Iceland                | Icelandic personal and organisation identity code                                   |
      | *IS*   | *VSK*             | Vat                | Iceland                | Virðisaukaskattsnúmer, Icelandic VAT number                                         |
      | *ID*   | *NPWP*            | Person/Company     | Indonesia              | NPWP (Nomor Pokok Wajib Pajak, Indonesian VAT Number).                              |
      | *IE*   | *PPS*             | Person             | Ireland                | Personal Public Service Number, Irish personal number                               |
      | *IE*   | *VAT*             | Tax/Vat            | Ireland                | Ireland Value Added Tax ID                                                          |
      | *IN*   | *AADHAAR*         | Company            | India                  | Indian digital resident personal identity number                                    |
      | *IN*   | *PAN*             | Person             | India                  | Permanent Account Number, Indian income tax identifier                              |
      | *IL*   | *IDNR*            | Person             | Israel                 | Identity Number (Mispar Zehut, מספר זהות, Israeli identity number)                  |
      | *IL*   | *HR*              | Company            | Israel                 | Company Number (מספר חברה, or short ח.פ. Israeli company number)                    |
      | *IT*   | *AIC*             | Drug               | Italy                  | Italian code for identification of drugs                                            |
      | *IT*   | *CODICEFISCALE*   | Person             | Italy                  | Codice Fiscale (Italian tax code for individuals)                                   |
      | *IT*   | *IVA*             | Vat                | Italy                  | Partita IVA (Italian VAT number)                                                    |
      | *LI*   | *PEID*            | Person/Company     | Liechtenstein          | Personenidentifikationsnummer                                                       |
      | *LT*   | *ASMENS*          | Person             | Lithuanian             | Asmens kodas (Person Number)                                                        |
      | *LT*   | *PVM*             | Vat                | Lithuanian             | Pridėtinės vertės mokestis mokėtojo kodas                                           |
      | *LU*   | *TVA*             | Vat                | Luxembourgian          | taxe sur la valeur ajoutée                                                          |
      | *LV*   | *PVN*             | Person/Vat         | Latvian                | Pievienotās vērtības nodokļa                                                        |
      | *MK*   | *JMBG*            | Person             | Macedonia              | Unique Master Citizen Number (Единствен матичен број на граѓанинот)                 |
      | *MC*   | *TVA*             | Vat                | Monaco                 | taxe sur la valeur ajoutée, Monacan VAT number                                      |
      | *MD*   | *IDNO*            | Vat                | Moldavia               | Moldavian VAT number                                                                |
      | *MT*   | *VAT*             | Vat                | Malta                  | Maltese VAT number                                                                  |
      | *MU*   | *NID*             | Person             | Mauritius              | ID number (Mauritian national identifier)                                           |
      | *JP*   | *CN*              | Company            | Japan                  | 法人番号, hōjin bangō, Japanese Corporate Number                                    |
      | *KR*   | *BRN*             | Company            | South Korea            | 사업자 등록 번호, South Korea Business Registration Number)                         |
      | *KR*   | *RRN*             | Person             | South Korea            | South Korean resident registration number                                           |
      | *MX*   | *RFC*             | Tax/Vat            | Mexico                 | Tax Identifier (Registro Federal de Contribuyentes)                                 |
      | *MX*   | *CURP*            | Person             | Mexico                 | Individual Identifier (Clave Única de Registro de Población)                        |
      | *MX*   | *CLABE*           | Bank               | Mexico                 | Bank Account (Clave Bancaria Estandarizada)                                         |
      | *ME*   | *JMBG*            | Person             | Montenegro             | Unique Master Citizen Number                                                        |
      | *MY*   | *NRIC*            | Person             | Malaysia               | Malaysian National Registration Identity Card Number                                |
      | *NL*   | *BSN*             | Person             | Netherlands            | Burgerservicenummer, the Dutch citizen identification number                        |
      | *NL*   | *BTW*             | Vat                | Netherlands            | Btw-identificatienummer (Omzetbelastingnummer, the Dutch VAT number)                |
      | *NL*   | *Onderwijsnummer* | Person             | Netherlands            | Onderwijsnummer (the Dutch student identification number)                           |
      | *NZ*   | *IRD*             | Person/Company     | New Zealand            | New Zealand Inland Revenue Department (Te Tari Tāke) number                         |
      | *NZ*   | *BANK*            | Bank               | New Zealand            | New Zealand Bank Account numbers - checkdigit                                       |
      | *NO*   | *Fodsels*         | Person             | Norway                 | Fødselsnummer (Norwegian birth number, the national identity number)                |
      | *NO*   | *Konto*           | Bank               | Norway                 | Konto nr. (Norwegian bank account number)                                           |
      | *NO*   | *MVA*             | Vat                | Norway                 | Merverdiavgift, Norwegian VAT number                                                |
      | *NO*   | *Orgnr*           | Company            | Norway                 | Organisasjonsnummer, Norwegian organisation number                                  |
      | *PY*   | *RUC*             | Tax/Vat            | Paraguay               | Tax Identifier (Registro Único de Contribuyentes)                                   |
      | *PE*   | *CUI*             | Person             | Peru                   | Person Identifier (Cédula Única de Identidad)                                       |
      | *PE*   | *RUC*             | Tax/Vat            | Peru                   | Tax Identifier (Registro Único de Contribuyentes)                                   |
      | *PE*   | *CE*              | Person             | Peru                   | Person Identifier (Carné de Extranjería)                                            |
      | *PK*   | *CNIC*            | Person             | Pakistan               | National Identity Card                                                              |
      | *PK*   | *NTN*             | Company            | Pakistan               | Tax Identification Number                                                           |
      | *PL*   | *NIP*             | Vat                | Poland                 | Numer Identyfikacji Podatkowej, Polish VAT number                                   |
      | *PL*   | *PESEL*           | Person             | Poland                 | Polish national identification number                                               |
      | *PL*   | *REGON*           | Company            | Poland                 | Rejestr Gospodarki Narodowej, Polish register of economic units                     |
      | *PT*   | *NIF*             | Vat                | Portugual              | Número de identificação fiscal, Portuguese VAT number                               |
      | *RU*   | *INN*             | Tax/Vat            | Russia                 | Tax Identifier (Идентификационный номер налогоплательщика)                          |
      | *RO*   | *CF*              | Vat                | Romania                | Cod de înregistrare în scopuri de TVA, Romanian VAT number                          |
      | *RO*   | *CNP*             | Person             | Romania                | Cod Numeric Personal, Romanian Numerical Personal Code)                             |
      | *RO*   | *CUI*             | Tax                | Romania                | Codul Unic de Înregistrare, Romanian company identifier                             |
      | *RO*   | *ONRC*            | Company            | Romania                | Ordine din Registrul Comerţului, Romanian Trade Register identifier                 |
      | *SM*   | *COE*             | Company            | San Marcos             | Codice operatore economico, San Marino national tax number                          |
      | *RS*   | *PIB*             | Vat                | Serbia                 | Poreski identifikacioni broj Tax identification number                              |
      | *RS*   | *JMBG*            | Person             | Serbia                 | Unique Master Citizen Number (Jedinstveni matični broj građana)                     |
      | *SE*   | *ORGNR*           | Company            | Sweden                 | Organisationsnummer, Swedish company number                                         |
      | *SE*   | *PERSONNUMMER*    | Person             | Sweden                 | Personnummer (Swedish personal identity number)                                     |
      | *SE*   | *VAT*             | Vat                | Sweden                 | VAT (Moms, Mervärdesskatt, Swedish VAT number)                                      |
      | *SG*   | *UEN*             | Company            | Singapore              | Singapore's Unique Entity Number                                                    |
      | *TH*   | *IDNR*            | Person             | Thailand               | Thai National ID (บัตรประจำตัวประชาชนไทย)                                           |
      | *TW*   | *UBN*             | Company            | Taiwan                 | Unified Business Number, 統一編號, Taiwanese tax number                             |
      | *TR*   | *TCKIMLIK*        | Person             | Turkey                 | Türkiye Cumhuriyeti Kimlik Numarası (Personal ID)                                   |
      | *TR*   | *VKN*             | Tax                | Turkey                 | Vergi Kimlik Numarası, Turkish tax identification number                            |
      | *SI*   | *DDV*             | Vatl               | Slovenia               | ID za DDV (Davčna številka, Slovenian VAT number)                                   |
      | *SI*   | *JMBG*            | Person             | Slovenia               | Unique Master Citizen Number (Enotna matična številka občana)                       |
      | *SK*   | *DPH*             | Vat                | Slovakia               | IČ DPH (IČ pre daň z pridanej hodnoty, Slovak VAT number)                           |
      | *SK*   | *RC*              | Person             | Slovakia               | RČ (Rodné číslo, the Slovak birth number)                                           |
      | *ES*   | *CIF*             | Tax/Vat            | Spain                  | Tax Identifier (Código de Identificación Fiscal)                                    |
      | *ES*   | *DNI*             | Person             | Spain                  | Identity code (Documento Nacional de Identidad)                                     |
      | *ES*   | *NIE*             | Person             | Spain                  | Identity code foreigner (Número de Identificación de Extranjero)                    |
      | *ES*   | *NIF*             | Tax                | Spain                  | Tax Identifier (Número de Identificación Fiscal)                                    |
      | *UY*   | *RUT*             | Tax/Vat            | Uruguay                | Tax Identifier (Registro Único Tributario)                                          |
      | *UY*   | *CEDULA*          | Person             | Uruguay                | Person Identifier (Cédula de Residencia)                                            |
      | *UY*   | *NIE*             | Person             | Uruguay                | ForeignersI identification Number                                                   |
      | *UA*   | *RNTRC*           | Person             | Ukraine                | КПП, RNTRC (Individual taxpayer registration number in Ukraine)                     |
      | *UA*   | *EDRPOU*          | Company            | Ukraine                | ЄДРПОУ, EDRPOU (Identifier for enterprises and organizations in Ukraine)            |
      | *US*   | *EIN*             | Tax/Company        | United States          | Tax Identifier (Employer Identification Number)                                     |
      | *US*   | *SSN*             | Tax/Individual     | United States          | Tax Identifier (Social Security Number)                                             |
      | *VE*   | *RIF*             | Vat                | Venezuelan             | Vat Identifier (Registro de Identificación Fiscal)                                  |
      | *VN*   | *MST*             | Company            | Vietnam                | Mã số thuế, Vietnam tax number                                                      |
      | *ZA*   | *IDNR*            | Person             | South Africa           | ID number (South African Identity Document number).                                 |
      | *ZA*   | *TIN*             | Person/Company     | South Africa           | TIN (South African Tax Identification Number).       
      |        | *noDocument*      | Document number    |                        | The document number is not provided

      # Tabela códigos dos principais bancos

      | Código | Banco |
      | ----- |----------------------- |
      | **001** |   Banco do Brasil S.A.  |
      | *033*   | 	Banco Santander (Brasil) S.A.  |
      | *104*   | 	Caixa Econômica Federal  |
      | *237*   | 	Banco Bradesco S.A.  |
      | *260*   | 	Nubank  |
      | *341*   | 	Banco Itaú S.A.  |
      | *356*   |   Banco Real S.A. (antigo)  |
      | *389*   |   Banco Mercantil do Brasil S.A.  |
      | *399*   |   HSBC Bank Brasil S.A. – Banco Múltiplo  |
      | *422*   |   Banco Safra S.A.  |
      | *453*   |   Banco Rural S.A.  |
      | *633*   |   Banco Rendimento S.A.  |
      | *652*   |   Itaú Unibanco Holding S.A.  |
      | *745*   |   Banco Citibank S.A.  |

x-tagGroups:
  - name: API Key
    tags:
      - Client-token
  - name: Cartões
    tags:
      - Tokens
      - Cards
  - name: Pagamentos
    tags:
      - Customers
      - Charges
      - Sessions
      - Sellers
      - Vendors
      - Split
      - 3DSecure2
      - Settings
  - name: Notificação e eventos
    tags:
      - Webhooks
  - name: Provedores
    tags:
      - Merchants
      - Providers
  - name: Gestão de pagamentos
    tags:
      - Flows
  - name: Exportar Dados
    tags:
      - Reports
  - name: Apêndice
    tags:
      - Tabelas de tipos
paths:
  /v1/auth:
    post:
      tags:
        - Client-token
      summary: Criar nova chave pública para uso no client-side
      operationId: create_auth_token
      requestBody:
        description: Creat authentication token
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AuthRequest"
            examples:
              AuthRequest:
                $ref: "#/components/examples/AuthRequest"
              AuthRequestGraphql:
                $ref: "#/components/examples/AuthRequestGraphql"
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthResponse"
              examples:
                AuthResponse:
                  $ref: "#/components/examples/AuthResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /v1/tokens:
    post:
      tags:
        - Tokens
      summary: Criar um novo token
      operationId: create_token
      requestBody:
        description: Tokenizar
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TokenRequest"
            examples:
              TokenRequestCard:
                $ref: "#/components/examples/TokenRequestCard"
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TokenResponse"
              examples:
                TokenResponse:
                  $ref: "#/components/examples/TokenResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      x-codeSamples:
        - lang: "Python"
          source: |
            import requests

            client_id = <YOUR CLIENT ID>
            public_key = <YOUR CLIENT TOKEN>

            request = requests.post('https://api.malga.io/v1/tokens', headers={
                "X-Client-Id": client_id,
                "X-Api-Key": publick_key
              }, json={
              "cardHolderName": "JOSE DAS NEVES",
              "cardNumber": "4019598346009339",
              "cardCvv": "123",
              "cardExpirationDate": "12/2026"
            })
            print(request.json().get('tokenId'))
  /v1/charges/3ds/setup:
    post:
      tags:
        - 3DS2 Malga
      summary: Criar um novo setup
      operationId: create_setup
      requestBody:
        description: Criar sessão no 3DS2 Malga
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SetupRequest"
            examples:
              SetupRequest:
                $ref: "#/components/examples/SetupRequest"
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SetupResponse"
              examples:
                SetupResponse:
                  $ref: "#/components/examples/SetupResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      x-codeSamples:
        - lang: "Python"
          source: |
            import requests

            client_id = <YOUR CLIENT ID>
            public_key = <YOUR CLIENT TOKEN>

            request = requests.post('https://api.malga.io/v1/charges/3ds/setup', headers={
                "X-Client-Id": client_id,
                "X-Api-Key": publick_key
              }, json={
              "sourceType": "card",
              "cardId": "4918cfd2-b14a-4db2-ade4-d1b8a6bd40e2",
            })
            print(request.json().get('id'))
  /v1/cards:
    post:
      tags:
        - Cards
      summary: Criar novo cartão a partir de token
      operationId: saveCard
      requestBody:
        description: Create credit card
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardRequest"
            examples:
              CardRequest:
                $ref: "#/components/examples/CardRequest"
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardToken"
              examples:
                Card:
                  $ref: "#/components/examples/Card"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "424":
          description: Faleid Dependency
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FailedDependencyItem"
      x-codeSamples:
        - lang: "Python"
          source: |
            import requests

            client_id = <YOUR CLIENT ID>
            public_key = <YOUR CLIENT TOKEN>

            request = requests.post('https://api.malga.io/v1/cards', headers={
                "X-Client-Id": client_id,
                "X-Api-Key": publick_key
              }, json={
              "tokenId": "4918cfd2-b14a-4db2-ade4-d1b8a6bd40e2"              
            })
            print(request.json().get('cardId'))
    get:
      tags:
        - Cards
      summary: Listar cartões
      operationId: getCards
      parameters:
        - in: query
          name: page
          schema:
            type: number
          required: false
          description: Número da página
        - in: query
          name: limit
          schema:
            type: number
          required: false
          description: Quantidade de itens por página
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardList"
              examples:
                CardList:
                  $ref: "#/components/examples/CardList"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /v1/cards/{id}:
    get:
      tags:
        - Cards
      summary: Recuperar detalhes de cartão
      operationId: getCardById
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
          description: ID do cartão
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Card"
              examples:
                Card:
                  $ref: "#/components/examples/Card"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "424":
          description: Failed Dependency"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FailedDependencyResponse"
  /v1/charges:
    post:
      tags:
        - Charges
      summary: Realizar nova cobrança
      operationId: charge
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChargeRequest"
            examples:
              ChargeCardExample:
                $ref: "#/components/examples/ChargeCardRequest"
              ChargePixExample:
                $ref: "#/components/examples/ChargePixRequest"
              ChargeBoletoExample:
                $ref: "#/components/examples/ChargeBoletoRequest"
              ChargeSplitExample:
                $ref: "#/components/examples/ChargeSplitRequest"
              ChargeSplitPixExample:
                $ref: "#/components/examples/ChargeSplitRequestPix"
              ChargeSplitBoletoExample:
                $ref: "#/components/examples/ChargeSplitRequestBoleto"
              ChargeVendorExample:
                $ref: "#/components/examples/ChargeVendorExample"
              Charge3DS2Example:
                $ref: "#/components/examples/Charge3DS2Request"
              Charge3DSMPIExterno:
                $ref: "#/components/examples/Charge3DSMPIExterno"
              Charge3DSMalgaExample:
                $ref: "#/components/examples/Charge3DSMalgaRequest"
              ChargeNupayExample:
                $ref: "#/components/examples/ChargeNupayRequest"
              ChargePicpayExample:
                $ref: "#/components/examples/ChargePicpayRequest"
              ChargeDripExample:
                $ref: "#/components/examples/ChargeDripRequest"
              ChargeVoucherExample:
                $ref: "#/components/examples/ChargeVoucherRequest"
              ChargeApplePayCardExample:
                $ref: "#/components/examples/ChargeApplePayRequest"
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Charge"
              examples:
                ChargeCard:
                  $ref: "#/components/examples/ChargeCard"
                ChargePix:
                  $ref: "#/components/examples/ChargePix"
                ChargeBoleto:
                  $ref: "#/components/examples/ChargeBoleto"
                ChargeSplit:
                  $ref: "#/components/examples/ChargeSplit"
                ChargeSplitPix:
                  $ref: "#/components/examples/ChargeSplitPix"
                ChargeSplitBoleto:
                  $ref: "#/components/examples/ChargeSplitBoleto"
                ChargeCard3DSecure2:
                  $ref: "#/components/examples/ChargeCard3DSecure2"
                ChargeCard3DSMalga:
                  $ref: "#/components/examples/ChargeCard3DSMalga"
                ChargeNupay:
                  $ref: "#/components/examples/ChargeNupay"
                ChargePicpay:
                  $ref: "#/components/examples/ChargePicpay"
                ChargeDrip:
                  $ref: "#/components/examples/ChargeDrip"
                ChargeVoucher:
                  $ref: "#/components/examples/ChargeVoucher"
                ChargeApplePayResponse:
                  $ref: "#/components/examples/ChargeApplePayResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    get:
      tags:
        - Charges
      summary: Listar cobranças
      operationId: getCharges
      parameters:
        - in: query
          name: page
          schema:
            type: number
          required: false
          description: Número da página ativa
        - in: query
          name: limit
          schema:
            type: number
          required: false
          description: Quantidade de registros por página 1-100
        - in: query
          name: sort
          schema:
            type: string
            enum:
              - ASC
              - DESC
          required: false
          description: Tipo de ordenação decrescente ou crescente
        - in: query
          name: merchantId
          schema:
            type: string
            format: uuid
          required: false
          description: Id do merchant processado na cobrança
        - in: query
          name: id
          schema:
            type: string
            format: uuid
          required: false
          description: Id da cobrança
        - in: query
          name: sessionId
          schema:
            type: string
            format: uuid
          required: false
          description: Id da sessão vinculada à cobrança
        - in: query
          name: originalAmount
          schema:
            type: number
          required: false
          description: Valor em centavos da cobrança
        - in: query
          name: status
          schema:
            type: string
            enum:
              - pending
              - pre_authorized
              - authorized
              - voided
              - refund_pending
              - canceled
              - charged_back
              - capture_pending
          required: false
          description: Status da cobrança
        - in: query
          name: paymentType
          schema:
            type: string
            enum:
              - credit
              - pix
              - boleto
          required: false
          description: Tipo de pagamento
        - in: query
          name: orderId
          schema:
            type: string
          required: false
          description: Id da cobrança gerado pelo cliente
        - in: query
          name: created
          schema:
            type: string
          required: false
          description: Registros criados em uma data específica
          example: "2022-03-12T12:43:53"
        - in: query
          name: created.gt
          schema:
            type: string
          required: false
          description: Registros com data maior que
          example: "2022-03-12T12:43:53"
        - in: query
          name: created.lt
          schema:
            type: string
          required: false
          description: Registros com data menor que
          example: "2022-03-12T12:43:53"
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChargeList"
              examples:
                ChargeList:
                  $ref: "#/components/examples/ChargeList"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /v1/charges/{id}:
    get:
      tags:
        - Charges
      summary: Recuperar detalhes de cobrança
      operationId: getChargesByid
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
          description: Id da cobrança que deseja recuperar
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Charge"
              examples:
                ChargeCard:
                  $ref: "#/components/examples/ChargeCard"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    post:
      tags:
        - Charges
      summary: Alterar o status de uma cobrança no ambiente de sandbox
      operationId: changeStatusTransaction
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
          description: Id da cobrança que deseja alterar no sandbox
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChangeStatusTransaction"
            example:
              status: "charged_back"
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Charge"
              examples:
                ChargeCard:
                  $ref: "#/components/examples/ChargeCard"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /v1/charges/{id}/antifraud:
    patch:
      tags:
        - Charges
      summary: Alterar o status do antifraude no ambiente de sandbox
      operationId: changeAntifraudStatusTransaction
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
          description: Id da cobrança que deseja alterar no sandbox
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChangeAntifraudStatusTransaction"
            example:
              status: "approved"
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Charge"
              examples:
                ChargeCard:
                  $ref: "#/components/examples/ChargeCard"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /v1/charges/{id}/capture:
    post:
      tags:
        - Charges
      summary: Capturar cobrança pre-autorizada
      operationId: captureCharge
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
          description: Id da cobrança que deseja capturar
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CaptureRequest"
            example:
              amount: 150
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Charge"
              examples:
                ChargeCard:
                  $ref: "#/components/examples/ChargeCard"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /v1/charges/{id}/void:
    post:
      tags:
        - Charges
      summary: Estornar cobrança aprovada
      operationId: refundCharge
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VoidRequest"
            example:
              amount: 150
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
          description: Id da cobrança que deseja estornar
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Charge"
              examples:
                ChargeCard:
                  $ref: "#/components/examples/ChargeCard"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /v1/sessions:
    get:
      summary: Listar sessões
      operationId: listSessions
      description: |
        Lista as sessões do cliente autenticado, com paginação e filtros opcionais.

        Sem o header `X-Client-Id`, a API responde `200` com `items` vazio e metadados de paginação padrão (não retorna erro).
      parameters:
        - in: query
          name: page
          schema:
            type: integer
            minimum: 1
            default: 1
          required: false
          description: Número da página a ser listada (mínimo 1)
        - in: query
          name: limit
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
          required: false
          description: Quantidade de registros por página (padrão 10; máximo 100)
        - in: query
          name: order
          schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
          required: false
          description: |
            Aceito como `asc` ou `desc` (padrão `desc`; valores inválidos caem para `desc`).
            A listagem atual ordena sempre por `createdAt` decrescente.
        - in: query
          name: id
          schema:
            type: string
            format: uuid
          required: false
          description: Filtra pelo identificador da sessão
        - in: query
          name: status
          schema:
            type: string
            enum:
              - created
              - paid
              - canceled
              - voided
          required: false
          description: Filtra por status da sessão. Aceita múltiplos valores separados por vírgula
        - in: query
          name: isActive
          schema:
            type: string
            enum:
              - "true"
              - "false"
          required: false
          description: Filtra sessões ativadas ou desativadas. Aceita múltiplos valores separados por vírgula (`true` e/ou `false`)
        - in: query
          name: merchantId
          schema:
            type: string
            format: uuid
          required: false
          description: Filtra pelo identificador do merchant
        - in: query
          name: orderId
          schema:
            type: string
            minLength: 2
          required: false
          description: Filtra pelo identificador do pedido. Se informado, deve ter no mínimo 2 caracteres Unicode após o trim
        - in: query
          name: multiplePayments.status
          schema:
            type: string
            enum:
              - active
              - disabled
              - canceled
          required: false
          description: |
            Filtra pela disponibilidade agregada do link (`multiplePayments.status`). Aceita múltiplos valores separados por vírgula.
            `disabled` cobre links temporariamente indisponíveis, incluindo expiração por `dueDate`.
        - in: query
          name: created.gt
          schema:
            type: string
            format: date-time
          required: false
          description: Filtra sessões com `createdAt` estritamente maior que o instante informado (RFC 3339 ou RFC 3339 com fração de segundos)
          example: "2026-03-24T03:00:00.000Z"
        - in: query
          name: created.lt
          schema:
            type: string
            format: date-time
          required: false
          description: Filtra sessões com `createdAt` estritamente menor que o instante informado (RFC 3339 ou RFC 3339 com fração de segundos)
          example: "2026-04-01T02:59:00.000Z"
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SessionList"
              examples:
                SessionList:
                  $ref: "#/components/examples/SessionList"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Sessions
    post:
      summary: Criar nova sessão
      operationId: createSession
      description: |
        Cria uma sessão de pagamento. Quando `maxPayments` é omitido, a sessão segue o fluxo 1:1 legado. Quando `maxPayments` é enviado, a sessão opera como link 1:N e a resposta completa retorna `multiplePayments` com a disponibilidade agregada para próximas cobranças.

        **Restrição pix/boleto em 1:N:** métodos `pix` e `boleto` não podem ser combinados com `maxPayments` finito maior que `1`. Nesse caso a API retorna `422` com `businessCode: "pix_boleto_multiple_payments_not_allowed"`. `maxPayments` omitido, `null`, `1` ou `-1` (ilimitado) continua permitido para pix/boleto. O bloqueio não se aplica a cartão de crédito.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateSession"
            examples:
              CreateSessionRequest:
                $ref: "#/components/examples/CreateSessionRequest"
              CreateSessionRequest1NFixed:
                $ref: "#/components/examples/CreateSessionRequest1NFixed"
              CreateSessionRequest1NUnlimited:
                $ref: "#/components/examples/CreateSessionRequest1NUnlimited"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SessionResponse"
              examples:
                Session:
                  $ref: "#/components/examples/Session"
                Session1N:
                  $ref: "#/components/examples/Session1N"
        "422":
          description: |
            Unprocessable Entity. Regras de negócio bloquearam a criação da sessão. O envelope segue o formato padrão de erro, com `businessCode` identificando a regra violada.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                PixBoletoMultiplePaymentsNotAllowed:
                  summary: Pix/boleto com maxPayments > 1
                  value:
                    error:
                      type: bad_request
                      code: 422
                      message: PIX and boleto payment methods do not support maxPayments greater than 1.
                      businessCode: pix_boleto_multiple_payments_not_allowed
                      details: []
                PlatformFeeExceedsLinkAmount:
                  summary: Taxa de plataforma maior ou igual ao valor do link
                  value:
                    error:
                      type: bad_request
                      code: 422
                      message: Calculated platform fee must be less than the link total amount.
                      businessCode: platform_fee_exceeds_link_amount
                      details: []
      tags:
        - Sessions
  /v1/sessions/{id}:
    get:
      summary: Recuperar detalhes de uma sessão
      operationId: getSession
      description: |
        Retorna a sessão completa. Use este endpoint como fonte do estado agregado de `multiplePayments` após criação, pagamento, atualização, cancelamento ou consulta de histórico.
      parameters:
        - name: id
          required: true
          description: Identificação da sessão a ser recuperada
          in: path
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SessionResponse"
              examples:
                Session:
                  $ref: "#/components/examples/Session"
      tags:
        - Sessions
    patch:
      summary: Atualizar relevância de uma sessão
      operationId: patchSession
      description: |
        Atualiza campos de relevância da sessão: `isActive` (obrigatório), `dueDate` e `maxPayments` (sessões 1:N). A resposta é parcial e devolve apenas `id` e `isActive`; após a atualização, consulte `GET /v1/sessions/{id}` para obter o estado completo (`status`, `dueDate`, `maxPayments`, `multiplePayments`, etc.).

        **Restrição de reativação pix/boleto 1:1 consumida:** `isActive: true` em uma sessão pix ou boleto 1:1 já paga (`maxPayments = 1` com `paymentCount = 1`, ou sessão legada sem `maxPayments` já `paid` com `paymentCount = 1`) retorna `422` com `businessCode: "pix_boleto_one_to_one_reactivation_blocked"`. O bloqueio ignora `maxPayments` enviado no PATCH.
      parameters:
        - name: id
          required: true
          description: Identificação da sessão a ser alterada
          in: path
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PatchSessionRequest"
            examples:
              PatchSessionRequest:
                $ref: "#/components/examples/PatchSessionRequest"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatchSession200Response"
              examples:
                PatchSession200Response:
                  $ref: "#/components/examples/PatchSession200Response"
        "422":
          description: |
            Unprocessable Entity. Regras de negócio bloquearam a atualização da sessão. O envelope segue o formato padrão de erro, com `businessCode` identificando a regra violada.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                PixBoletoOneToOneReactivationBlocked:
                  summary: Reativação de sessão pix/boleto 1:1 já consumida
                  value:
                    error:
                      type: bad_request
                      code: 422
                      message: Consumed one-to-one PIX or boleto sessions cannot be reactivated.
                      businessCode: pix_boleto_one_to_one_reactivation_blocked
                      details: []
      tags:
        - Sessions
  /v1/sessions/{id}/charge:
    post:
      summary: Pagar uma sessão
      operationId: paySession
      description: |
        Inicia uma cobrança para a sessão. Em sessões 1:N, cada chamada aceita representa uma tentativa individual dentro da capacidade configurada em `maxPayments`. A resposta é a cobrança criada e não retorna `multiplePayments`; consulte `GET /v1/sessions/{id}` para acompanhar o estado agregado atualizado.
      parameters:
        - name: id
          required: true
          description: Identificação da sessão a ser paga
          in: path
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaySessionRequest"
            examples:
              PaySessionCardRequest:
                $ref: "#/components/examples/PaySessionCardRequest"
              PaySessionCardRequestWithRecurrence:
                $ref: "#/components/examples/PaySessionCardRequestWithRecurrence"
              PaySessionPixRequest:
                $ref: "#/components/examples/PaySessionPixRequest"
              PaySessionDripRequest:
                $ref: "#/components/examples/PaySessionDripRequest"
              PaySessionBoletoRequest:
                $ref: "#/components/examples/PaySessionBoletoRequest"
              PaySessionNupayRequest:
                $ref: "#/components/examples/PaySessionNupayRequest"
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaySession201Response"
              examples:
                PaySession201CardResponse:
                  $ref: "#/components/examples/PaySession201CardResponse"
                PaySession201PixResponse:
                  $ref: "#/components/examples/PaySession201PixResponse"
                PaySession201DripResponse:
                  $ref: "#/components/examples/PaySession201DripResponse"
                PaySession201BoletoResponse:
                  $ref: "#/components/examples/PaySession201BoletoResponse"
                PaySession201NupayResponse:
                  $ref: "#/components/examples/PaySession201NupayResponse"
        "404":
          description: |
            Sessão não encontrada ou não pertencente ao cliente informado em `X-Client-Id`.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: |
            Unprocessable Entity. A cobrança não pode ser processada: sellers de split inválidos, ou sessão 1:N indisponível (link desativado ou limite de pagamentos atingido). Nos casos de indisponibilidade 1:N, o `businessCode` é `session_disabled` ou `multiple_payments_limit_reached`. O envelope segue o formato padrão de erro.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                InvalidSellers:
                  summary: Sellers de split inválidos
                  value:
                    error:
                      type: bad_request
                      code: 422
                      message: "session cannot be charged: sellers not found [9f8b2c1a-4d3e-4a2b-8c7d-1e2f3a4b5c6d]"
                      details: []
                MultiplePaymentsLimitReached:
                  summary: Limite de pagamentos 1:N atingido
                  value:
                    error:
                      type: bad_request
                      code: 422
                      message: multiple payments limit reached
                      businessCode: multiple_payments_limit_reached
                      details: []
      tags:
        - Sessions
  /v1/sessions/{id}/cancel:
    post:
      summary: Cancelar uma sessão
      operationId: cancelSession
      parameters:
        - name: id
          required: true
          description: Identificação da sessão a ser cancelada
          in: path
          schema:
            type: string
            format: uuid
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CancelSession201Response"
              examples:
                CancelSession201Response:
                  $ref: "#/components/examples/CancelSession201Response"
      tags:
        - Sessions
  /v1/sessions/{id}/history:
    get:
      summary: Recuperar o histórico da sessão
      operationId: getSessionHistory
      description: |
        Retorna a trilha de auditoria da sessão em ordem decrescente de criação, com os registros mais recentes primeiro: alterações de campos, tentativas de pagamento, confirmações assíncronas e expirações.

        Cada item representa um **registro de histórico** (`id` do evento), não o identificador da sessão. Use `action` (ação principal derivada) e `actions` (lista completa) junto com `diff` para entender o que ocorreu.

        O campo `status` em cada item segue a **semântica de produto** na leitura: expirações automáticas por `dueDate` ou limite 1:N podem aparecer como `disabled`, mesmo quando o status persistido no registro era `created`.

        Para o estado atual da sessão e de `multiplePayments`, consulte `GET /v1/sessions/{id}`. O histórico não substitui essa consulta.
      parameters:
        - name: id
          required: true
          description: Identificação da sessão
          in: path
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SessionHistoryResponse"
              examples:
                SessionHistoryResponse:
                  $ref: "#/components/examples/SessionHistoryResponse"
        "400":
          description: Header `X-Client-Id` ausente ou identificador da sessão ausente no path
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Sessão não encontrada para o par `id` + `X-Client-Id`
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Erro interno inesperado ao recuperar o histórico da sessão
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Sessions
  /v1/sessions/{id}/link:
    get:
      summary: Recupera sessão com os dados das configurações da empresa
      operationId: getSessionWithSettings
      description: |
        Retorna a sessão completa junto das configurações da empresa usadas no Link de Pagamento. Também inclui `multiplePayments` para indicar a disponibilidade agregada do link em sessões 1:1 e 1:N.
      parameters:
        - name: id
          required: true
          description: Identificação da sessão a ser recuperada
          in: path
          schema:
            type: string
            format: uuid
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SessionSettingsResponse"
      tags:
        - Sessions
  /v1/merchants:
    post:
      summary: Criação de novo merchant para cobrança
      operationId: createMerchant
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateMerchantDto"
            examples:
              MerchantRequest:
                $ref: "#/components/examples/MerchantRequest"
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Merchant"
              examples:
                Merchant:
                  $ref: "#/components/examples/Merchant"
      tags:
        - Merchants
    get:
      summary: Listagem de merchants cadastrados
      operationId: listMerchants
      parameters:
        - in: query
          name: page
          schema:
            type: number
          required: false
          description: Número da página
        - in: query
          name: limit
          schema:
            type: number
          required: false
          description: Quantidade de itens por página
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MerchantList"
              examples:
                MerchantList:
                  $ref: "#/components/examples/MerchantList"
      tags:
        - Merchants
  /v1/merchants/{id}:
    get:
      operationId: getMerchantById
      summary: Recuperar detalhes de merchant pelo id
      parameters:
        - name: id
          required: true
          description: Id do merchant
          in: path
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Merchant"
              examples:
                Merchant:
                  $ref: "#/components/examples/Merchant"
      tags:
        - Merchants
    patch:
      operationId: updateMerchant
      summary: Atualizar configurações de merchant
      parameters:
        - name: id
          required: true
          in: path
          description: Id do merchant
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateMerchantDto"
      responses:
        "200":
          description: ""
      tags:
        - Merchants
    delete:
      summary: Deletar merchant pelo id
      operationId: deleteMerchant
      parameters:
        - name: id
          required: true
          in: path
          description: Id do merchant
          schema:
            type: string
            format: uuid
      responses:
        "204":
          description: ""
      tags:
        - Merchants
  /v1/merchants/{merchantId}/platform-fee/enabled:
    patch:
      operationId: togglePlatformFeeEnabled
      summary: Ativar ou desativar platform fee do merchant
      parameters:
        - name: merchantId
          required: true
          in: path
          description: Identificador do merchant
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TogglePlatformFeeDto"
            examples:
              TogglePlatformFeeRequest:
                $ref: "#/components/examples/TogglePlatformFeeRequest"
      responses:
        "200":
          description: Platform fee atualizado com sucesso
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TogglePlatformFeeResponse"
              examples:
                TogglePlatformFeeResponse:
                  $ref: "#/components/examples/TogglePlatformFeeResponse"
        "404":
          description: Merchant não encontrado
      tags:
        - Merchants
  /v1/merchants/{merchantId}/platform-fee:
    post:
      operationId: createPlatformFeeRules
      summary: Criar regras de platform fee
      parameters:
        - name: merchantId
          required: true
          in: path
          description: Identificador do merchant
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/CreatePlatformFeeDto"
            examples:
              PlatformFeeRequest:
                $ref: "#/components/examples/PlatformFeeRequest"
      responses:
        "201":
          description: Regras criadas com sucesso
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PlatformFeeOutput"
              examples:
                PlatformFeeRulesArrayResponse:
                  $ref: "#/components/examples/PlatformFeeRulesArrayResponse"
        "400":
          description: Dados inválidos
        "404":
          description: Merchant não encontrado
        "409":
          description: Regra já existente para o método de pagamento informado
      tags:
        - Merchants
    get:
      operationId: listPlatformFeeRules
      summary: Listar regras de platform fee
      parameters:
        - name: merchantId
          required: true
          in: path
          description: Identificador do merchant
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Lista de regras de platform fee e flag de ativação do merchant
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlatformFeeListOutput"
              examples:
                PlatformFeeListResponse:
                  $ref: "#/components/examples/PlatformFeeListResponse"
        "404":
          description: Merchant não encontrado
      tags:
        - Merchants
    put:
      operationId: updatePlatformFeeRules
      summary: Atualizar regras de platform fee
      parameters:
        - name: merchantId
          required: true
          in: path
          description: Identificador do merchant
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/CreatePlatformFeeDto"
            examples:
              PlatformFeeRequest:
                $ref: "#/components/examples/PlatformFeeRequest"
      responses:
        "200":
          description: Regras atualizadas com sucesso
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PlatformFeeOutput"
              examples:
                PlatformFeeRulesArrayResponse:
                  $ref: "#/components/examples/PlatformFeeRulesArrayResponse"
        "400":
          description: Dados inválidos
        "404":
          description: Merchant ou regra não encontrada
        "409":
          description: Regra já existente para o método de pagamento informado
      tags:
        - Merchants
  /v1/merchants/{merchantId}/platform-fee/{platformFeeId}:
    delete:
      operationId: deletePlatformFeeRule
      summary: Deletar uma regra de platform fee pelo ID
      parameters:
        - name: merchantId
          required: true
          in: path
          description: Identificador do merchant
          schema:
            type: string
            format: uuid
        - name: platformFeeId
          required: true
          in: path
          description: Identificador da regra de platform fee
          schema:
            type: string
            format: uuid
      responses:
        "204":
          description: Regra deletada com sucesso
        "404":
          description: Merchant ou regra não encontrada
      tags:
        - Merchants
  /v1/providers/{id}:
    patch:
      operationId: updateProviders
      summary: Atualizar configurações de provedores do merchant
      parameters:
        - name: id
          required: true
          in: path
          description: Id do provedor
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateProvidersDto"
      responses:
        "200":
          description: ""
      tags:
        - Providers
  /v1/customers:
    post:
      summary: Criação de novo customer para cobrança
      operationId: createCustomer
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CreateCustomerRequest"
            examples:
              CustomerRequest:
                $ref: "#/components/examples/CustomerRequest"
      responses:
        "201":
          description: Created.
      tags:
        - Customers
    get:
      summary: Listagem de customers cadastrados
      operationId: ListCustomers
      parameters:
        - in: query
          name: page
          schema:
            type: number
          required: false
          description: Número da página
        - in: query
          name: limit
          schema:
            type: number
          required: false
          description: Quantidade de itens por página
        - in: query
          name: sort
          schema:
            type: string
            enum: ["ASC", "DESC"]
          required: false
          description: Ordenação dos itens
        - in: query
          name: id
          schema:
            type: string
          required: false
          description: Identificador de um customer
        - in: query
          name: document.type
          schema:
            type: string
          required: false
          description: Tipo de documento
        - in: query
          name: document.number
          schema:
            type: string
          required: false
          description: Número do documento
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: "#/components/schemas/Customer"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Customers
  /v1/customers/{id}:
    get:
      summary: Recuperar detalhes de customer
      operationId: getCustomer
      parameters:
        - name: id
          required: true
          description: Id do customers que deseja recuperar
          in: path
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Customer"
              examples:
                Customer:
                  $ref: "#/components/examples/Customer"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Customers
    delete:
      operationId: deleteCustomer
      summary: Deletar customer pelo id
      parameters:
        - name: id
          required: true
          in: path
          description: Id do customers que deseja deletar
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: ""
      tags:
        - Customers
    patch:
      operationId: updateCustomer
      summary: Atualizar customer pelo id
      parameters:
        - name: id
          required: true
          in: path
          description: Id do customers que deseja alterar
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UpdateCustomerRequest"
      responses:
        "200":
          description: The record has been successfully updated.
      tags:
        - Customers
  /v1/customers/{customer_id}/cards:
    post:
      operationId: linkCard
      summary: Adicionar cartão de crédito ao customer
      parameters:
        - name: customer_id
          required: true
          description: Id do customers que deseja alterar
          in: path
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/LinkCardRequest"
            examples:
              LinkCardRequest:
                $ref: "#/components/examples/LinkCardRequest"
      responses:
        "204":
          description: The card has been linked successfully.
      tags:
        - Customers
    get:
      summary: Listagem dos cartões do customer
      operationId: getCustomerCards
      parameters:
        - name: customer_id
          required: true
          in: path
          description: Id do customers que deseja alterar
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CustomerCardList"
              examples:
                CustomerCardList:
                  $ref: "#/components/examples/CustomerCardList"
      tags:
        - Customers

  /v1/settings:
    post:
      tags:
        - Settings
      summary: Configurações da empresa para personalização do checkout do link de pagamento, com imagem. O body deve ser enviado com form-data. Todos os campos são string com exceção do campo logo que é do tipo File.
      operationId: createSettings
      parameters:
        - in: header
          name: X-Merchant-Id
          schema:
            type: string
            format: uuid
          required: false
          description: Identificador do merchant. Quando informado, cria configuração específica para o merchant. Se omitido, cria a configuração padrão do cliente.
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/UserSettingsWithImage"
            examples:
              SettingsRequest:
                $ref: "#/components/examples/SettingsRequest"
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserSettings"
              examples:
                UserSettings:
                  $ref: "#/components/examples/UserSettings"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    patch:
      tags:
        - Settings
      summary: Atualiza configurações do link de pagamento (form-data ou JSON)
      description: |
        Atualiza a configuração do escopo informado (`X-Client-Id` e, opcionalmente, `X-Merchant-Id`).

        - **`multipart/form-data`:** todos os campos textuais e upload opcional de `logo` (File).
        - **`application/json`:** apenas campos textuais (sem upload de logo).

        Campos vazios (`""`) não são persistidos. Se nenhum campo efetivo for enviado (por exemplo `{}` ou somente `companyUrl` vazio) e não houver logo, retorna **422**.
      operationId: updateSettings
      parameters:
        - in: header
          name: X-Merchant-Id
          schema:
            type: string
            format: uuid
          required: false
          description: Identificador do merchant. Quando informado, atualiza a configuração específica do merchant. Se omitido, atualiza a configuração padrão do cliente.
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/UserSettingsWithImage"
            examples:
              SettingsRequest:
                $ref: "#/components/examples/SettingsRequest"
          application/json:
            schema:
              $ref: "#/components/schemas/UserSettingsPatch"
            examples:
              SettingsPatchCompanyUrl:
                $ref: "#/components/examples/SettingsPatchCompanyUrl"
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserSettings"
              examples:
                UserSettings:
                  $ref: "#/components/examples/UserSettings"
        "404":
          description: Configuração não encontrada para o escopo informado
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Nenhum campo efetivo para atualizar (body vazio ou apenas campos ignorados)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    get:
      tags:
        - Settings
      summary: Recupera configuração do link de pagamento personalizado do cliente
      operationId: getSetting
      parameters:
        - in: header
          name: X-Merchant-Id
          schema:
            type: string
            format: uuid
          required: false
          description: Identificador do merchant. Quando informado, busca primeiro a configuração do merchant; se não existir, retorna a configuração padrão do cliente (fallback automático).
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserSettings"
              examples:
                UserSettings:
                  $ref: "#/components/examples/UserSettings"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"

  /v1/webhooks:
    post:
      summary: Criação de novo webhook para notificação
      operationId: createWebhook
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CreateWebhookRequest"
            examples:
              CreateWebhookRequest:
                $ref: "#/components/examples/CreateWebhookRequest"
      responses:
        "201":
          description: Created.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Webhook"
              examples:
                Webhook:
                  $ref: "#/components/examples/Webhook"
        "409":
          description: Webhook Duplicado
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebhookError"
      tags:
        - Webhooks
    get:
      summary: Listagem de webhooks cadastrados
      operationId: ListWebhooks
      parameters:
        - in: query
          name: page
          schema:
            type: number
          required: false
          description: Número da página
        - in: query
          name: limit
          schema:
            type: number
          required: false
          description: Quantidade de itens por página
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: "#/components/schemas/Webhook"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Webhooks
  /v1/webhooks/{id}:
    get:
      summary: Recuperar detalhes de webhook
      operationId: getWebhook
      parameters:
        - name: id
          required: true
          description: Id do webhook que deseja recuperar
          in: path
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Webhook"
              examples:
                Webhook:
                  $ref: "#/components/examples/Webhook"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Webhooks
    delete:
      operationId: deleteWebhook
      summary: Deletar webhook pelo id
      parameters:
        - name: id
          required: true
          in: path
          description: Id do webhook que deseja deletar
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: ""
      tags:
        - Webhooks
    patch:
      operationId: updateWebhook
      summary: Atualizar webhook pelo id
      parameters:
        - name: id
          required: true
          in: path
          description: Id do webhook que deseja alterar
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CreateWebhookRequest"
      responses:
        "200":
          description: The record has been successfully updated.
      tags:
        - Webhooks
  /v1/subscriptions:
    post:
      summary: Criação de uma nova assinatura
      operationId: createSubscription
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateSubscriptionRequest"
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubscriptionResponse"
      tags:
        - Subscriptions
    get:
      summary: Listagem de assinaturas
      operationId: getSubscriptions
      parameters:
        - in: query
          name: page
          schema:
            type: number
          required: false
          description: Número da página ativa
        - in: query
          name: limit
          schema:
            type: number
          required: false
          description: Quantidade de registros por página 1-100
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubscriptionList"
      tags:
        - Subscriptions
  /v1/subscriptions/{id}:
    get:
      summary: Recuperar detalhes de assinatura
      operationId: getSubscription
      parameters:
        - name: id
          required: true
          in: path
          description: Id da assinatura que deseja recuperar
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubscriptionResponse"
      tags:
        - Subscriptions
    put:
      summary: Atualizar assinatura
      operationId: updateSubscription
      parameters:
        - name: id
          required: true
          in: path
          description: Id da assinatura que deseja atualizar
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateSubscriptionRequest"
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubscriptionResponse"
  /v1/subscriptions/{id}/cancel:
    patch:
      summary: Cancelar assinatura
      operationId: cancelSubscription
      parameters:
        - name: id
          required: true
          in: path
          description: Id da assinatura que deseja cancelar
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CancelSubscriptionResponse"
      tags:
        - Subscriptions
  /v1/subscriptions/{id}/pause:
    patch:
      summary: Pausar assinatura
      operationId: pauseSubscription
      parameters:
        - name: id
          required: true
          in: path
          description: Id da assinatura que deseja pausar
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PauseSubscriptionResponse"
      tags:
        - Subscriptions
  /v1/subscriptions/{id}/resume:
    patch:
      summary: Reativar assinatura
      operationId: resumeSubscription
      parameters:
        - name: id
          required: true
          in: path
          description: Id da assinatura que deseja reativar
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ResumeSubscriptionResponse"
      tags:
        - Subscriptions
  /v1/subscriptions/{id}/cycles:
    get:
      summary: Listar cycles de uma assinatura
      operationId: listSubscriptionCycles
      parameters:
        - name: id
          required: true
          in: path
          description: Id da assinatura
          schema:
            type: string
            format: uuid
        - name: limit
          in: query
          description: Número máximo de items por página
          schema:
            type: integer
            default: 10
            minimum: 1
            maximum: 100
        - name: page
          in: query
          description: Número da página
          schema:
            type: integer
            default: 1
            minimum: 1
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CycleList"
      tags:
        - Subscriptions
  /v1/subscriptions/{id}/cycles/{cycleId}:
    get:
      summary: Recuperar detalhes de um cycle específico
      operationId: getSubscriptionCycle
      parameters:
        - name: id
          required: true
          in: path
          description: Id da assinatura
          schema:
            type: string
            format: uuid
        - name: cycleId
          required: true
          in: path
          description: Id do cycle
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CycleDetailResponse"
      tags:
        - Subscriptions
  /v1/subscriptions/settings:
    get:
      summary: Obter configurações do cliente
      description: Recupera as configurações atuais do cliente para assinaturas (retry policy, statement descriptor, etc.)
      operationId: getClientSettings
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClientSettingsResponse"
        "404":
          description: Configurações não encontradas
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Subscriptions
    patch:
      summary: Atualizar configurações do cliente
      description: Atualiza as configurações do cliente para assinaturas (retry policy, statement descriptor, etc.)
      operationId: updateClientSettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateClientSettingsRequest"
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClientSettingsResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Subscriptions
  /v1/sellers:
    post:
      summary: Criação de um novo recebedor
      operationId: postSeller
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Seller"
            examples:
              SellerRequestBusiness:
                $ref: "#/components/examples/SellerRequestBusiness"
              SellerRequestOwner:
                $ref: "#/components/examples/SellerRequestOwner"
              SellerRequestIspbOnly:
                $ref: "#/components/examples/SellerRequestIspbOnly"
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SellerCreadtedResponse"
              examples:
                SellerResponseBusiness:
                  $ref: "#/components/examples/SellerResponseBusiness"
                SellerResponseOwner:
                  $ref: "#/components/examples/SellerResponseOwner"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                BankIdentifierRequiredError:
                  $ref: "#/components/examples/BankIdentifierRequiredError"
      tags:
        - Sellers
    get:
      operationId: getSellerPaginate
      summary: Consultar recebedores por listagem paginada
      parameters:
        - name: id
          required: false
          description: Identificador do seller
          in: query
          schema:
            type: string
            format: uuid
        - name: email
          required: false
          description: E-mail do seller (busca em `owner.email` ou `business.email`)
          in: query
          schema:
            type: string
        - name: status
          required: false
          description: Status do seller. Aceita múltiplos valores separados por vírgula (ex. `pending,active`).
          in: query
          schema:
            type: string
            enum:
              - active
              - partial
              - inactive
              - pending
              - blocked
        - name: businessName
          required: false
          description: Nome do estabelecimento (busca parcial, mínimo 3 caracteres)
          in: query
          schema:
            type: string
            minLength: 3
            maxLength: 100
        - name: merchantId
          required: false
          description: Identificador do merchant
          in: query
          schema:
            type: string
            format: uuid
        - name: limit
          required: false
          description: Limite de itens retornados na consulta (máximo 100)
          in: query
          schema:
            type: number
            default: 10
            minimum: 1
            maximum: 100
        - name: page
          required: false
          description: Página da consulta
          in: query
          schema:
            type: number
            default: 1
            minimum: 1
        - name: sort
          required: false
          description: Ordenação por data de criação
          in: query
          schema:
            type: string
            enum:
              - ASC
              - DESC
            default: DESC
      responses:
        "200":
          description: Lista paginada de recebedores
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SellerPaginatedListResponse"
              examples:
                SellerPaginatedResponse:
                  $ref: "#/components/examples/SellerPaginatedResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Sellers
  /v1/sellers/{id}:
    patch:
      operationId: updateSellerById
      summary: Atualização de recebedor pelo ID
      description: |
        Atualização **parcial** do recebedor. Envie apenas os campos que deseja alterar; campos omitidos permanecem inalterados.

        **Atenção (Provedor Pagar.me V5):**
        Ao atualizar a conta bancária (`bankAccount`) de um seller, o IP do servidor que realiza a requisição **deve** estar previamente cadastrado na **Allow List** (Lista de Permissões) no dashboard da Pagar.me.
        [Saiba como configurar a Allow List aqui.](https://docs.pagar.me/reference/atualizar-conta-banc%C3%A1ria-do-recebedor-1)
      parameters:
        - name: id
          required: true
          description: Identificador do seller
          in: path
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SellerUpdatedBody"
            examples:
              SellerRequestBusiness:
                $ref: "#/components/examples/SellerRequestBusiness"
              SellerRequestOwner:
                $ref: "#/components/examples/SellerRequestOwner"
              SellerPatchBankIdentifierSwap:
                $ref: "#/components/examples/SellerPatchBankIdentifierSwap"
      responses:
        "200":
          description: Updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SellerUpdatedResponse"
              examples:
                SellerResponseBusiness:
                  $ref: "#/components/examples/SellerResponseBusiness"
                SellerResponseOwner:
                  $ref: "#/components/examples/SellerResponseOwner"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                BankIdentifierRequiredError:
                  $ref: "#/components/examples/BankIdentifierRequiredError"
      tags:
        - Sellers
    delete:
      operationId: deleteSellerById
      summary: Deletar recebedor por ID
      parameters:
        - name: id
          required: true
          description: ID do seller
          in: path
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DeleteSellerRequest"
      responses:
        "204":
          description: Recebedor removido com sucesso
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Sellers
    get:
      operationId: getSellerById
      summary: Consultar um recebedor pelo ID
      parameters:
        - name: id
          required: true
          description: Identificador do seller
          in: path
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SellerCreadtedResponse"
              examples:
                SellerResponseBusiness:
                  $ref: "#/components/examples/SellerResponseBusiness"
                SellerResponseOwner:
                  $ref: "#/components/examples/SellerResponseOwner"
      tags:
        - Sellers
  /v1/sellers/{id}/status:
    post:
      operationId: changeSellerStatusSandbox
      summary: Alterar o status de um recebedor no ambiente de sandbox
      description: |
        Altera manualmente o status de um recebedor no ambiente de **sandbox**, disparando o webhook `seller.<status>` correspondente à mudança.

        <Info>Este endpoint está disponível apenas no ambiente de sandbox.</Info>
      parameters:
        - name: id
          required: true
          description: Identificador do seller que deseja alterar no sandbox
          in: path
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - status
              properties:
                status:
                  type: string
                  enum:
                    - pending
                    - active
                    - inactive
                    - failed
                  description: Novo status do recebedor
            example:
              status: "inactive"
      responses:
        "201":
          description: Status alterado com sucesso
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SellerCreadtedResponse"
              examples:
                SellerResponseBusiness:
                  $ref: "#/components/examples/SellerResponseBusiness"
                SellerResponseOwner:
                  $ref: "#/components/examples/SellerResponseOwner"
        "404":
          description: Not Found (fora do ambiente de sandbox ou recebedor inexistente)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Sellers
  /v1/sellers/documents:
    post:
      summary: Upload de documento
      operationId: uploadSellerDocument
      description: |
        Faz upload de um documento (imagem ou PDF) para posterior associação a um seller.
        O arquivo fica armazenado temporariamente por 7 dias. Após esse prazo, o documento expira e não pode mais ser utilizado.

        **Tipos aceitos:** SELFIE, CNH_FULL, CNH_FRONT, CNH_BACK, RG_FRONT, RG_BACK

        **Formatos aceitos:**
        - SELFIE e CNH_FULL: PNG, JPEG, BMP, WebP, HEIC, HEIF, PDF
        - CNH_FRONT, CNH_BACK, RG_FRONT, RG_BACK: PNG, JPEG, BMP, WebP, HEIC, HEIF (sem PDF)

        **Tamanho máximo:** 3MB
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - SELFIE
                    - CNH_FULL
                    - CNH_FRONT
                    - CNH_BACK
                    - RG_FRONT
                    - RG_BACK
                  description: Tipo do documento
                file:
                  type: string
                  format: binary
                  description: Arquivo do documento
              required:
                - type
                - file
      responses:
        "201":
          description: Documento enviado com sucesso
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UploadedDocumentResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "413":
          description: Arquivo excede o tamanho máximo de 3MB
      tags:
        - Seller Documents
    get:
      summary: Listar documentos
      operationId: listSellerDocuments
      description: |
        Lista os documentos do cliente autenticado. Documentos expirados não são retornados.
      parameters:
        - name: status
          in: query
          required: false
          description: Filtrar por status do documento
          schema:
            type: string
            enum:
              - uploaded
              - attached
              - sent
        - name: type
          in: query
          required: false
          description: Filtrar por tipo do documento
          schema:
            type: string
            enum:
              - SELFIE
              - CNH_FULL
              - CNH_FRONT
              - CNH_BACK
              - RG_FRONT
              - RG_BACK
        - name: createdAt
          in: query
          required: false
          description: Filtrar documentos criados a partir desta data (ISO 8601)
          schema:
            type: string
            format: date-time
        - name: limit
          in: query
          required: false
          description: Itens por página (máximo 50)
          schema:
            type: number
            default: 10
        - name: page
          in: query
          required: false
          description: Número da página
          schema:
            type: number
            default: 1
        - name: sort
          in: query
          required: false
          description: Ordenação por data de criação
          schema:
            type: string
            enum:
              - ASC
              - DESC
            default: DESC
      responses:
        "200":
          description: Lista de documentos
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UploadedDocumentListResponse"
      tags:
        - Seller Documents
  /v1/sellers/documents/{documentId}:
    get:
      summary: Consultar documento
      operationId: getSellerDocument
      description: Retorna os detalhes de um documento. Documentos expirados retornam 404.
      parameters:
        - name: documentId
          in: path
          required: true
          description: ID do documento
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Detalhes do documento
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UploadedDocumentResponse"
        "404":
          description: Documento não encontrado ou expirado
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Seller Documents
    delete:
      summary: Deletar documento
      operationId: deleteSellerDocument
      description: |
        Remove um documento. Apenas documentos com status `uploaded` podem ser deletados.
        Documentos já associados a um seller (status `attached` ou `sent`) não podem ser removidos.
      parameters:
        - name: documentId
          in: path
          required: true
          description: ID do documento
          schema:
            type: string
            format: uuid
      responses:
        "204":
          description: Documento removido com sucesso
        "400":
          description: Documento já associado a um seller
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Documento não encontrado
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Seller Documents
  /v1/sellers/registration-reviews:
    get:
      summary: Listar processos de revisão cadastral
      operationId: getRegistrationReviews
      description: |
        Retorna os processos de revisão cadastral abertos pelos provedores para os seus recebedores, do mais recente para o mais antigo.

        Use esta rota para montar a fila de trabalho: os processos em `pending` e `overdue` aguardam o envio dos dados coletados.
      parameters:
        - name: status
          required: false
          description: Situação do processo. Aceita múltiplos valores separados por vírgula (ex. `pending,overdue`).
          in: query
          schema:
            type: string
            enum:
              - unmatched
              - pending
              - overdue
              - submitting
              - submit_failed
              - expired
              - finished
              - canceled
        - name: reviewType
          required: false
          description: Tipo da revisão — `acp` para a periódica e `aci` para a motivada por inconsistência.
          in: query
          schema:
            type: string
            enum:
              - acp
              - aci
        - name: page
          required: false
          description: Página da consulta
          in: query
          schema:
            type: number
            default: 1
            minimum: 1
        - name: limit
          required: false
          description: Limite de itens retornados na consulta (máximo 100)
          in: query
          schema:
            type: number
            default: 100
            minimum: 1
            maximum: 100
      responses:
        "200":
          description: Lista paginada de processos de revisão cadastral
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RegistrationReviewPaginatedListResponse"
              examples:
                RegistrationReviewPaginatedResponse:
                  $ref: "#/components/examples/RegistrationReviewPaginatedResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Seller Registration Reviews
  /v1/sellers/{sellerId}/registration-reviews:
    get:
      summary: Listar processos de revisão cadastral de um recebedor
      operationId: getSellerRegistrationReviews
      description: |
        Mesma listagem da rota anterior, restrita a um recebedor.

        Um recebedor com mais de um vínculo ao provedor recebe um item por vínculo, distinguidos pelo campo `providerId`.
      parameters:
        - name: sellerId
          required: true
          description: Identificador do seller
          in: path
          schema:
            type: string
            format: uuid
        - name: status
          required: false
          description: Situação do processo. Aceita múltiplos valores separados por vírgula (ex. `pending,overdue`).
          in: query
          schema:
            type: string
            enum:
              - unmatched
              - pending
              - overdue
              - submitting
              - submit_failed
              - expired
              - finished
              - canceled
        - name: reviewType
          required: false
          description: Tipo da revisão — `acp` para a periódica e `aci` para a motivada por inconsistência.
          in: query
          schema:
            type: string
            enum:
              - acp
              - aci
        - name: page
          required: false
          description: Página da consulta
          in: query
          schema:
            type: number
            default: 1
            minimum: 1
        - name: limit
          required: false
          description: Limite de itens retornados na consulta (máximo 100)
          in: query
          schema:
            type: number
            default: 100
            minimum: 1
            maximum: 100
      responses:
        "200":
          description: Lista paginada de processos de revisão cadastral do recebedor
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RegistrationReviewPaginatedListResponse"
              examples:
                RegistrationReviewPaginatedResponse:
                  $ref: "#/components/examples/RegistrationReviewPaginatedResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Seller Registration Reviews
  /v1/sellers/{sellerId}/registration-reviews/{processId}/submit:
    post:
      summary: Enviar os dados coletados de uma revisão cadastral
      operationId: submitRegistrationReview
      description: |
        Envia ao provedor os dados que você coletou do recebedor para encerrar o processo.

        O bloco `data` deve conter **exatamente** os campos listados em `requestedFields.fields` do processo: nem um a menos, nem um que não tenha sido pedido. O bloco `collection` registra como você obteve esses dados.

        A resposta é `202`: o envio ao provedor acontece em segundo plano e o desfecho chega pelos eventos `seller.registration_review.finished` e `seller.registration_review.failed`.
      parameters:
        - name: sellerId
          required: true
          description: Identificador do seller
          in: path
          schema:
            type: string
            format: uuid
        - name: processId
          required: true
          description: Identificador do processo no provedor
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SubmitRegistrationReviewRequest"
            examples:
              SubmitRegistrationReviewRequest:
                $ref: "#/components/examples/SubmitRegistrationReviewRequest"
      responses:
        "202":
          description: Coleta aceita e envio ao provedor iniciado
        "400":
          description: |
            Evidência de coleta incompleta, ou dados que não correspondem aos campos pedidos pelo provedor. Todos os problemas encontrados vêm juntos em `details`.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                RegistrationReviewFieldMismatchError:
                  $ref: "#/components/examples/RegistrationReviewFieldMismatchError"
        "404":
          description: Processo não encontrado para esse recebedor
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "409":
          description: |
            Processo em situação que não aceita envio, ou processo cuja lista de campos ainda não está utilizável.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                RegistrationReviewAlreadySubmittedError:
                  $ref: "#/components/examples/RegistrationReviewAlreadySubmittedError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Seller Registration Reviews
  /v1/flows:
    get:
      summary: Recuperar todos os fluxos paginado
      operationId: getAllFlows
      parameters:
        - in: query
          name: page
          schema:
            type: number
          required: false
          description: Número da página
        - in: query
          name: limit
          schema:
            type: number
          required: false
          description: Quantidade de itens por página
        - in: query
          name: merchantId
          schema:
            type: string
          required: false
          description: Usado para filtrar os fluxos por merchantId
        - in: query
          name: paymentMethod
          schema:
            type: string
          required: false
          description: Usado para filtrar os fluxos por método de pagamento
      responses:
        "200":
          description: "Response de flow"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AllFlowResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Flows
  /v1/flows/{id}:
    get:
      operationId: getFlowById
      summary: Consultar um fluxo pelo id
      parameters:
        - name: id
          required: true
          description: Flow id
          in: path
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: "Response de flow"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Flows
  /v1/vendors:
    get:
      operationId: getVendorPaginate
      summary: Listagem de vendedores paginada
      parameters:
        - name: limit
          description: Limite de itens retornados na consulta
          in: query
          schema:
            type: number
            default: 10
        - name: page
          description: Páginas da consulta
          in: query
          schema:
            type: number
            default: 1
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VendorResponse"
              examples:
                VendorPaginatedResponse:
                  $ref: "#/components/examples/VendorPaginatedResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Vendors

    post:
      summary: Criação de um novo vendedor
      operationId: postVendors
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VendorRequest"
            examples:
              VendorRequest:
                $ref: "#/components/examples/VendorRequest"
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VendorResponse"
              examples:
                VendorResponse:
                  $ref: "#/components/examples/VendorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Vendors
  /v1/vendors/{id}:
    get:
      summary: Recuperar detalhes de um vendedor
      parameters:
        - name: id
          required: true
          description: Id do vendedor
          in: path
          schema:
            type: string
            format: uuid
      operationId: getVendor
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VendorResponse"
              examples:
                VendorResponse:
                  $ref: "#/components/examples/VendorResponse"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Vendors
    patch:
      summary: Atualizar um vendedor
      operationId: updateVendor
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
          description: Id do vendedor que deseja alterar
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VendorUpdateRequest"
            examples:
              VendorUpdateRequest:
                $ref: "#/components/examples/VendorUpdateRequest"
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VendorResponse"
              examples:
                VendorResponse:
                  $ref: "#/components/examples/VendorResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Vendors
    delete:
      summary: Deletar vededor pelo id
      operationId: deleteVendor
      parameters:
        - name: id
          required: true
          in: path
          description: Id do vendedor
          schema:
            type: string
            format: uuid
      responses:
        "204":
          description: "Nenhum conteúdo"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Vendors
  /v1/payouts/balance:
    get:
      operationId: getPayoutBalance
      summary: Consultar saldo
      description: |
        Retorna o saldo disponível e a receber da nossa subadquirente
      parameters:
        - name: sellerId
          in: query
          required: false
          description: Filtra o saldo por seller específico
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Saldo retornado com sucesso
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PayoutBalanceResponse"
              examples:
                PayoutBalanceResponse:
                  $ref: "#/components/examples/PayoutBalanceResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Payouts
  /v1/payouts/payment-batches:
    get:
      operationId: listPayoutPaymentBatches
      summary: Listar repasses
      description: |
        Listagem paginada dos repasses realizados na subadquirente
      parameters:
        - name: page
          in: query
          required: false
          description: Número da página
          schema:
            type: integer
            default: 1
        - name: limit
          in: query
          required: false
          description: Quantidade de itens por página (máx. 100)
          schema:
            type: integer
            default: 10
        - name: order
          in: query
          required: false
          description: Ordenação por data de criação
          schema:
            type: string
            enum: [asc, desc]
            default: desc
        - name: sellerId
          in: query
          required: false
          description: Filtra por seller
          schema:
            type: string
            format: uuid
        - name: status
          in: query
          required: false
          description: Status separados por vírgula (ex. `pending,paid`)
          schema:
            type: string
            example: "pending,paid"
        - name: startDate
          in: query
          required: false
          description: Data inicial em RFC 3339 (ex. `2026-04-01T00:00:00Z`)
          schema:
            type: string
            format: date-time
        - name: endDate
          in: query
          required: false
          description: Data final em RFC 3339 (ex. `2026-04-30T23:59:59Z`)
          schema:
            type: string
            format: date-time
        - name: paymentDate
          in: query
          required: false
          description: Data de pagamento no formato `YYYY-MM-DD`
          schema:
            type: string
            format: date
      responses:
        "200":
          description: Lista paginada de repasses
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PayoutPaymentBatchListResponse"
              examples:
                PayoutPaymentBatchListResponse:
                  $ref: "#/components/examples/PayoutPaymentBatchListResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Payouts
  /v1/payouts/payment-batches/{id}:
    get:
      operationId: getPayoutPaymentBatch
      summary: Consultar repasse pelo ID
      parameters:
        - name: id
          in: path
          required: true
          description: Identificador do repasse
          schema:
            type: string
            format: uuid
        - name: sellerId
          in: query
          required: false
          description: Filtra o repasse por seller
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Detalhes do repasse
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PayoutPaymentBatchResponse"
              examples:
                PayoutPaymentBatchResponse:
                  $ref: "#/components/examples/PayoutPaymentBatchResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Repasse não encontrado
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Payouts
  /v1/payouts/payment-batches/{id}/orders:
    get:
      operationId: listPayoutPaymentBatchOrders
      summary: Listar ordens de pagamento de um repasse
      description: Lista paginada das ordens de pagamento que compõem um repasse.
      parameters:
        - name: id
          in: path
          required: true
          description: Identificador do repasse
          schema:
            type: string
            format: uuid
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
        - name: limit
          in: query
          required: false
          description: Quantidade de itens por página (máx. 100)
          schema:
            type: integer
            default: 10
        - name: order
          in: query
          required: false
          schema:
            type: string
            enum: [asc, desc]
            default: desc
      responses:
        "200":
          description: Lista paginada de ordens de pagamento do repasse
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PayoutOrderListResponse"
              examples:
                PayoutOrderListResponse:
                  $ref: "#/components/examples/PayoutOrderListResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Payouts
  /v1/payouts/orders:
    get:
      operationId: listPayoutOrders
      summary: Listar ordens de pagamento
      description: |
        Lista paginada das ordens de pagamento da nossa subadquirente.
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
        - name: limit
          in: query
          required: false
          description: Quantidade de itens por página (máx. 100)
          schema:
            type: integer
            default: 10
        - name: order
          in: query
          required: false
          schema:
            type: string
            enum: [asc, desc]
            default: desc
        - name: sellerId
          in: query
          required: false
          schema:
            type: string
            format: uuid
        - name: startDate
          in: query
          required: false
          description: Data inicial em RFC 3339 (ex. `2026-04-01T00:00:00Z`)
          schema:
            type: string
            format: date-time
        - name: endDate
          in: query
          required: false
          description: Data final em RFC 3339 (ex. `2026-04-30T23:59:59Z`)
          schema:
            type: string
            format: date-time
        - name: chargeId
          in: query
          required: false
          description: Filtra ordens de pagamento por cobrança específica
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Lista paginada das ordens de pagamento
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PayoutOrderListResponse"
              examples:
                PayoutOrderListResponse:
                  $ref: "#/components/examples/PayoutOrderListResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Payouts
  /v1/payouts/orders/{id}:
    get:
      operationId: getPayoutOrder
      summary: Consultar ordem de pagamento pelo ID
      parameters:
        - name: id
          in: path
          required: true
          description: Identificador da ordem de pagamento
          schema:
            type: string
            format: uuid
        - name: sellerId
          in: query
          required: false
          description: Filtra a ordem de pagamento por seller
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Detalhes da ordem de pagamento
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PayoutOrderResponse"
              examples:
                PayoutOrderResponse:
                  $ref: "#/components/examples/PayoutOrderResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ordem de pagamento não encontrada
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Payouts
  /v1/subacquirer/prepayment/receivables:
    get:
      operationId: listPrepaymentReceivables
      summary: Consultar recebíveis disponíveis para antecipação
      description: |
        > **🚧 Beta** — esta API está em fase Beta e detalhes do contrato podem evoluir nas próximas versões.

        Lista os recebíveis disponíveis para antecipação avulsa e retorna um resumo com o valor total disponível e a quantidade de recebíveis.

        Quando `sellerId` é informado, a consulta é feita sobre os recebíveis do recebedor correspondente. Sem `sellerId`, opera sobre a conta principal.
      parameters:
        - name: sellerId
          in: query
          required: false
          description: ID do recebedor para consultar os recebíveis dele.
          schema:
            type: string
      responses:
        "200":
          description: Recebíveis disponíveis retornados com sucesso
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentReceivablesResponse"
              examples:
                PrepaymentReceivablesResponse:
                  $ref: "#/components/examples/PrepaymentReceivablesResponse"
        "400":
          description: Header `X-Client-Id` ausente
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Conta ainda não habilitada para antecipação. Entre em contato com o suporte.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Prepayment
  /v1/subacquirer/prepayment:
    get:
      operationId: listPrepayments
      summary: Listar antecipações
      description: |
        > **🚧 Beta** — esta API está em fase Beta e detalhes do contrato podem evoluir nas próximas versões.

        Lista as simulações e antecipações da sua conta, da mais recente para a mais antiga, com paginação.

        Cada item da lista traz exatamente o mesmo conteúdo retornado por `GET /v1/subacquirer/prepayment/{id}`, então não é preciso consultar cada antecipação individualmente para ver os detalhes.

        Simulações com status `pending` que já passaram do `expiresAt` são retornadas com o status `expired`, seguindo a mesma regra da consulta por identificador.
      parameters:
        - name: page
          in: query
          required: false
          description: Página a ser retornada.
          schema:
            type: integer
            minimum: 1
            default: 1
        - name: limit
          in: query
          required: false
          description: Quantidade de itens por página. Valores acima de 100 são limitados a 100.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
      responses:
        "200":
          description: Antecipações retornadas com sucesso
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentListResponse"
              examples:
                PrepaymentListResponse:
                  $ref: "#/components/examples/PrepaymentListResponse"
        "400":
          description: Header `X-Client-Id` ausente ou parâmetro de paginação inválido
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Prepayment
    post:
      operationId: simulatePrepayment
      summary: Simular antecipação
      description: |
        > **🚧 Beta** — esta API está em fase Beta e detalhes do contrato podem evoluir nas próximas versões.

        Cria uma simulação de antecipação para o **período que termina em `endDate`**. A Malga inclui **todos os recebíveis elegíveis com data prevista de recebimento até `endDate` (inclusive)** e calcula o valor líquido a ser recebido pelo cliente, junto com o desconto aplicado.

        A simulação fica válida até as **15h (horário de Brasília)** do dia em que foi criada (campo `expiresAt`). Para receber em D+1, o aceite precisa acontecer dentro desse prazo.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PrepaymentSimulateRequest"
            examples:
              PrepaymentSimulateRequest:
                $ref: "#/components/examples/PrepaymentSimulateRequest"
      responses:
        "201":
          description: Simulação criada com sucesso
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentResponse"
              examples:
                PrepaymentResponse:
                  $ref: "#/components/examples/PrepaymentResponse"
        "400":
          description: Body inválido ou header obrigatório ausente
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Conta ainda não habilitada para antecipação. Entre em contato com o suporte.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentError"
        "404":
          description: Conta sem recebíveis associados ao provedor Malga
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentError"
        "422":
          description: Nenhum recebível disponível para o período informado (até `endDate`)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Prepayment
  /v1/subacquirer/prepayment/{id}:
    get:
      operationId: getPrepayment
      summary: Recuperar detalhes de uma antecipação
      description: |
        > **🚧 Beta** — esta API está em fase Beta e detalhes do contrato podem evoluir nas próximas versões.

        Retorna os detalhes de uma simulação ou antecipação pelo seu identificador.

        Se a simulação ainda está com status `pending` mas o horário atual já passou do `expiresAt` (15h, horário de Brasília), o `status` retornado vem como `expired` automaticamente. Nesse caso, basta criar uma nova simulação.
      parameters:
        - name: id
          in: path
          required: true
          description: Identificador da antecipação.
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Detalhes da antecipação
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentResponse"
              examples:
                PrepaymentResponse:
                  $ref: "#/components/examples/PrepaymentResponse"
        "400":
          description: Header obrigatório ausente
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Antecipação não encontrada
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Prepayment
  /v1/subacquirer/prepayment/{id}/commit:
    post:
      operationId: commitPrepayment
      summary: Confirmar antecipação (aceite)
      description: |
        > **🚧 Beta** — esta API está em fase Beta e detalhes do contrato podem evoluir nas próximas versões.

        Confirma o aceite de uma simulação, efetivando a antecipação.

        Para receber em D+1, o aceite precisa acontecer até as **15h (horário de Brasília)** do dia em que a simulação foi criada. Após esse horário, a simulação fica expirada e é preciso simular novamente.
      parameters:
        - name: id
          in: path
          required: true
          description: Identificador da antecipação a ser aceita.
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Antecipação confirmada com sucesso
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentResponse"
              examples:
                PrepaymentCommittedResponse:
                  $ref: "#/components/examples/PrepaymentCommittedResponse"
        "400":
          description: Header obrigatório ausente
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Antecipação não encontrada
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentError"
        "409":
          description: Antecipação não está mais pendente ou simulação expirou (passou de 15h do dia da criação)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentError"
        "422":
          description: Os recebíveis mudaram desde a simulação. Faça uma nova simulação.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrepaymentError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      tags:
        - Prepayment
security:
  - X-Client-ID: []
    X-Api-Key: []
components:
  securitySchemes:
    X-Client-ID:
      type: apiKey
      in: header
      name: X-Client-Id
    X-Api-Key:
      type: apiKey
      in: header
      name: X-Api-Key
  schemas:
    MerchantAcquirerSingleMid:
      type: object
      description: "Informações do adquirente"
      title: "MID único"
      required:
        - merchantId
      properties:
        merchantId:
          type: string
          description: "ID do merchant. Obrigatório se não estiver em cada BIN. Caso esteja aqui no nível superior ele irá usar esse merchantId para todas as bandeiras."
          example: "1234567890"
        bin:
          type: array
          description: "BINs do adquirente"
          items:
            type: object
            required:
              - merchantId
            properties:
              brand:
                type: string
                description: "Bandeira do BIN"
                example: "Mastercard"
              value:
                type: string
                description: "Valor do BIN"
                example: "550259"
    MerchantAcquirerMultipleMid:
      type: object
      description: "Informações do adquirente"
      title: "Múltiplos MID's"
      properties:
        bin:
          type: array
          description: "BINs do adquirente"
          items:
            type: object
            required:
              - merchantId
            properties:
              merchantId:
                type: string
                description: "ID do merchant. Obrigatório se não estiver cadastrado no nível superior. Caso esteja nesse nível ele irá usar o merchantId para cada respectivo BIN."
                example: "1234567890"
              brand:
                type: string
                description: "Bandeira do BIN"
                example: "Mastercard"
              value:
                type: string
                description: "Valor do BIN"
                example: "550259"
    PaySession201Response:
      properties:
        id:
          type: string
          description: Identificador da transação
        clientId:
          type: string
          format: uuid
          description: Identificador do cliente na Malga
        merchantId:
          type: string
          format: uuid
          description: Identificador do merchant id utilizado na transação
        description:
          type: string
          description: Descrição da cobrança para consulta futura
        orderId:
          type: string
          description: Identificador único da cobrança do lado do cliente para conciliação futura
        createdAt:
          type: string
          description: Data de criação do cartão
        amount:
          type: number
          description: Valor da transação em centavos, exemplo 100 para cobrar R$ 1,00
        originalAmount:
          type: number
          description: Valor original da transação em centavos, exemplo 100 para cobrar R$ 1,00
        currency:
          type: string
          description: Identificador da moeda para processamento da cobrança, formato ISO 4217.
          default: BRL
        statementDescriptor:
          type: string
          description: Descrição a ser exibida na fatura do comprador
        status:
          type: string
          enum: [created, paid, canceled, voided]
          description: Status da sessão
        paymentMethod:
          oneOf:
            - $ref: "#/components/schemas/PaymentMethodCardObject"
            - $ref: "#/components/schemas/PaymentMethodPixObject"
            - $ref: "#/components/schemas/PaymentMethodBoletoObject"
            - $ref: "#/components/schemas/PaySessionPaymentMethodDripObjectResponse"
            - $ref: "#/components/schemas/PaymentMethodNupayObjectRequest"
        paymentSource:
          oneOf:
            - $ref: "#/components/schemas/SourceTypeCardObject"
            - $ref: "#/components/schemas/SourceTypeTokenObject"
            - $ref: "#/components/schemas/SourceTypeCustomerObject"
        transactionRequests:
          type: array
          items:
            $ref: "#/components/schemas/TransactionRequest"
        platformFee:
          allOf:
            - $ref: "#/components/schemas/PlatformFeeAppliedOutput"
          description: >
            Detalhes da taxa de plataforma aplicada na cobrança quando há `splitRules` e o merchant tem platform fee habilitado.
            Ausente quando não há aplicação de platform fee.
    PaySessionRequest:
      description: >
        Corpo para pagamento da sessão (`paymentMethod` e `paymentSource`).
        Se existir split, as regras foram definidas na **criação da sessão** (`splitRules` em POST /v1/sessions)
        e são aplicadas ao processar esta cobrança; não envie `splitRules` aqui.
      properties:
        customerId:
          type: string
          format: uuid
          description: Identificador de comprador na Malga para consulta futura - Integração com a API de customer.
        paymentMethod:
          description: Define o método de cobrança
          oneOf:
            - $ref: "#/components/schemas/PaymentMethodCard"
            - $ref: "#/components/schemas/PaymentMethodPixObjectRequest"
            - $ref: "#/components/schemas/PaymentMethodBoleto"
            - $ref: "#/components/schemas/PaySessionPaymentMethodDripObjectRequest"
            - $ref: "#/components/schemas/PaymentSessionNuPay"
            - $ref: "#/components/schemas/PaymentMethodClickToPay"
        paymentSource:
          oneOf:
            - $ref: "#/components/schemas/SourceTypeCard"
            - $ref: "#/components/schemas/SourceTypeCardOneShot"
            - $ref: "#/components/schemas/SourceTypeToken"
            - $ref: "#/components/schemas/SourceTypeCustomer"
            - $ref: "#/components/schemas/SourceTypeCustomerData"
            - $ref: "#/components/schemas/SourceTypeClickToPay"
        fraudAnalysis:
          description: Parâmetros adicionais para análise de fraude. Alguns destes campos podem ser necessários para processar com provedores específicos.
          allOf:
            - $ref: "#/components/schemas/FraudAnalysisRequest"
      required:
        - paymentMethod
        - paymentSource
    PatchSessionRequest:
      type: object
      properties:
        isActive:
          type: boolean
          description: Ativa ou desativa o link de pagamento da sessão. Sessões já pagas, canceladas ou expiradas não podem ser reativadas.
        dueDate:
          type: string
          nullable: true
          description: |
            Atualiza a data limite da sessão, em ISO 8601 (com horário, ex.: `2026-01-17T20:00:00Z`, ou apenas data, ex.: `2026-02-20`).
            Quando informado, o dia calendário em **America/Sao_Paulo** deve ser **hoje ou no futuro**.
            Enviar `null` remove a `dueDate`: a sessão deixa de expirar por vencimento.
        maxPayments:
          oneOf:
            - type: integer
              enum: [-1]
              description: Link 1:N ilimitado.
            - type: integer
              minimum: 1
              maximum: 99999
              description: Link 1:N com limite finito de pagamentos.
          description: |
            Atualiza a capacidade de pagamentos em sessões 1:N.
            Aceita `-1` (ilimitado) ou um valor inteiro entre `1` e `99999`.
            `0`, valores menores que `-1` e valores acima de `99999` são inválidos.
      required:
        - isActive
    PatchSession200Response:
      properties:
        id:
          type: string
          description: Identificação da sessão
        isActive:
          type: boolean
          description: Estado de ativação da sessão após a atualização
    CancelSession201Response:
      properties:
        id:
          type: string
          description: Identificação da sessão
        status:
          type: string
          enum: [created, paid, canceled, voided]
          description: Status da sessão
    SessionResponse:
      properties:
        id:
          type: string
          description: Identificação da sessão
        name:
          type: string
          description: Nome que identifica a sessão
        status:
          type: string
          enum: [created, paid, canceled, voided]
          description: Status da sessão
        isActive:
          type: boolean
          description: Determina se a sessão está ativa
        clientId:
          type: string
          description: Identificador do cliente na Malga
        orderId:
          type: string
          description: Identificador único da cobrança do lado do cliente para conciliação futura
        amount:
          type: number
          description: Valor da transação em centavos, exemplo 100 para cobrar R$ 1,00
        currency:
          type: string
          description: Identificador da moeda para processamento da cobrança, formato ISO 4217.
        capture:
          type: boolean
          description: Determina se a transação deve ser capturada automaticamente
        merchantId:
          type: string
          description: Identificação do merchant id a ser utilizado
        dueDate:
          type: string
          nullable: true
          description: |
            Data limite da sessão, em ISO 8601. Pode estar ausente (`omitempty`) quando a sessão foi criada sem data de vencimento.
        description:
          type: string
          description: Descrição da sessão
        statementDescriptor:
          type: string
          description: Descrição a ser exibida fatura do comprador
        captchaEnabled:
          type: boolean
          description: Indica se a sessão usa verificação por CAPTCHA no Link de Pagamento.
        items:
          type: array
          description: Itens do pedido
          items:
            $ref: "#/components/schemas/SessionItemObject"
        paymentLink:
          type: string
          description: Link para acessar o Link de Pagamento desta sessão
        vendor:
          allOf:
            - $ref: "#/components/schemas/VendorCharge"
        paymentMethods:
          type: array
          description: Métodos de pagamento disponíveis na sessão
          items:
            anyOf:
              - $ref: "#/components/schemas/PaymentMethodCardObject"
              - $ref: "#/components/schemas/PaymentMethodPixObject"
              - $ref: "#/components/schemas/PaymentMethodBoletoObject"
              - $ref: "#/components/schemas/PaymentMethodDripObjectRequest"
              - $ref: "#/components/schemas/PaymentMethodNupayObjectRequest"
        createdAt:
          type: string
          description: Data de criação da sessão
        updatedAt:
          type: string
          description: Data da atualização da sessão
        publicKey:
          type: string
          description: Chave de acesso com escopo restrito, usada para pagar a sessão
        providerReferenceKey:
          type: string
          description: Chave de referência da sessão no provedor
        splitRules:
          type: array
          description: Regras de split persistidas nesta sessão (definidas na criação quando informadas).
          items:
            $ref: "#/components/schemas/SplitRule"
        multiplePayments:
          allOf:
            - $ref: "#/components/schemas/MultiplePayments"
          description: |
            Estado conceitual de **disponibilidade do link** para receber uma próxima cobrança.
            Retornado em respostas completas de sessão. Em respostas parciais de atualização ou pagamento, consulte `GET /v1/sessions/{id}` para obter o estado agregado atualizado.
      example:
        id: "c1db83fa-723c-4e1f-9722-bc19d1be6791"
        name: "Pedido 1"
        status: "created"
        isActive: true
        captchaEnabled: false
        clientId: "39d2d314-5412-431a-b34b-74f9f0fbe7e1"
        orderId: "b84b7694-d22f-4083-bee7-c1274b16eb4a"
        amount: 100
        currency: "BRL"
        capture: true
        merchantId: "9930c8d9-a7a8-4039-9faf-3715ad87baf8"
        dueDate: "2022-10-26T19:32:08.000Z"
        description: "Pedido Black Friday"
        statementDescriptor: "LOJA JOAO"
        items:
          - id: "5f9c9d1e-1c17-4c65-9e0e-1a4a1a2b3c4d"
            name: "Item 1"
            description: "Item do carrinho"
            unitPrice: 1000
            quantity: 1
            tangible: false
        paymentLink: "https://link.malga.io/7648b72d-a79f-43e1-843d-eb0133bd2438"
        paymentMethods:
          - paymentType: "pix"
            expiresIn: 30
        createdAt: "2022-10-25T22:49:06.588Z"
        updatedAt: "2022-10-25T22:49:06.588Z"
        publicKey: "8be71cdf-01dc-4b1a-823a-4c58be6e4cf1"
        multiplePayments:
          allow: false
          maxPayments: null
          paymentCount: 0
          pendingCount: 0
          status: "active"

    GetSession:
      properties:
        id:
          type: string
          description: Identificação da sessão a ser utilizada
        name:
          type: string
          description: Nome que identifica a sessão
        status:
          type: string
          enum: [created, paid, canceled, voided]
          description: Status da sessão
        isActive:
          type: boolean
          description: Determina se a sessão está ativa
        clientId:
          type: string
          description: Identificador do cliente na Malga
        orderId:
          type: string
          description: Identificador único da cobrança do lado do cliente para conciliação futura
        amount:
          type: number
          description: Valor da transação em centavos, exemplo 100 para cobrar R$ 1,00
        currency:
          type: string
          description: Identificador da moeda para processamento da cobrança, formato ISO 4217.
        capture:
          type: boolean
          description: Determina se a transação deve ser capturada automaticamente
        merchantId:
          type: string
          description: Identificação do merchant id a ser utilizado
        dueDate:
          type: string
          nullable: true
          description: |
            Data limite da sessão, em ISO 8601. Pode estar ausente (`omitempty`) quando a sessão foi criada sem data de vencimento.
        description:
          type: string
          description: Descrição da sessão
        statementDescriptor:
          type: string
          description: Descrição a ser exibida fatura do comprador
        captchaEnabled:
          type: boolean
          description: Indica se a sessão usa verificação por CAPTCHA no Link de Pagamento.
        items:
          type: array
          description: Itens do pedido
          items:
            $ref: "#/components/schemas/SessionItemObject"
        paymentLink:
          type: string
          description: Link para acessar o Link de Pagamento desta sessão
        paymentMethods:
          type: array
          description: Métodos de pagamento disponíveis na sessão
          items:
            anyOf:
              - $ref: "#/components/schemas/PaymentMethodCardObject"
              - $ref: "#/components/schemas/PaymentMethodPixObject"
              - $ref: "#/components/schemas/PaymentMethodBoletoObject"
              - $ref: "#/components/schemas/PaymentMethodDripObjectRequest"
              - $ref: "#/components/schemas/PaymentMethodNupayObjectRequest"
        createdAt:
          type: string
          description: Data de criação da sessão
        updatedAt:
          type: string
          description: Data da atualização do cartão
        publicKey:
          type: string
          description: Chave de acesso com escopo restrito, usada para pagar a sessão
        splitRules:
          type: array
          description: Regras de split persistidas nesta sessão (quando informadas na criação).
          items:
            $ref: "#/components/schemas/SplitRule"
        multiplePayments:
          allOf:
            - $ref: "#/components/schemas/MultiplePayments"
          description: |
            Estado conceitual de **disponibilidade do link** para receber uma próxima cobrança.
            Retornado em respostas completas de sessão. Em respostas parciais de atualização ou pagamento, consulte `GET /v1/sessions/{id}` para obter o estado agregado atualizado.
    CreateSession:
      properties:
        orderId:
          type: string
          description: Identificador único da cobrança do lado do cliente para conciliação futura
        amount:
          type: integer
          minimum: 0
          description: Valor da transação em centavos, exemplo 100 para cobrar R$ 1,00
        currency:
          type: string
          default: "BRL"
          description: Identificador da moeda para processamento da cobrança, formato ISO 4217.
        isActive:
          type: boolean
          description: Determina se a sessão está ativa
        capture:
          type: boolean
          description: Determina se a transação deve ser capturada automaticamente
        merchantId:
          type: string
          format: uuid
          description: Identificação do merchant id a ser utilizado
        dueDate:
          type: string
          description: |
            Data limite da sessão, em ISO 8601 (com horário, ex.: `2026-01-17T20:00:00Z`, ou apenas data, ex.: `2026-02-20`).
            **Opcional**: quando omitido, a sessão não possui data de vencimento e não entra no job de expiração por `dueDate`.
            Quando informado, o dia calendário em **America/Sao_Paulo** deve ser **no mínimo amanhã** (a data de hoje e datas passadas são rejeitadas).
        name:
          type: string
          description: Nome que identifica a sessão
        description:
          type: string
          description: Descrição da sessão
        statementDescriptor:
          type: string
          minLength: 3
          description: Descrição a ser exibida fatura do comprador
        createLink:
          type: boolean
          description: Determina se a sessão terá um Link de Pagamento
        captchaEnabled:
          type: boolean
          description: Habilita verificação por CAPTCHA no Link de Pagamento da sessão.
        maxPayments:
          oneOf:
            - type: integer
              enum: [-1]
              description: Link 1:N ilimitado.
            - type: integer
              minimum: 1
              maximum: 99999
              description: Link 1:N com limite finito de pagamentos.
          description: |
            Configura a sessão como link de **múltiplos pagamentos** (1:N).
            Aceita `-1` (ilimitado) ou um valor inteiro entre `1` e `99999`.
            `0`, valores menores que `-1` e valores acima de `99999` são inválidos.
            Quando omitido, a sessão é tratada como 1:1 (legado).

            **Restrição pix/boleto:** quando `paymentMethods` contém `pix` e/ou `boleto`, `maxPayments` só é aceito como omitido, `null`, `1` ou `-1` (ilimitado). Valores finitos maiores que `1` retornam `422` com `businessCode: "pix_boleto_multiple_payments_not_allowed"`. Cartão de crédito continua aceito em qualquer valor de `maxPayments` suportado.
        providerReferenceKey:
          type: string
          description: Chave de referência da sessão no provedor
        paymentMethods:
          type: array
          minItems: 1
          description: Métodos de pagamento disponíveis na sessão
          items:
            anyOf:
              - $ref: "#/components/schemas/PaymentMethodCardObjectRequest"
              - $ref: "#/components/schemas/PaymentMethodPixObjectRequest"
              - $ref: "#/components/schemas/PaymentMethodBoletoObjectRequest"
              - $ref: "#/components/schemas/PaymentMethodDripObjectRequest"
              - $ref: "#/components/schemas/PaymentMethodNupayObjectRequest"
              - $ref: "#/components/schemas/PaymentMethodClickToPayObjectRequest"
        items:
          type: array
          minItems: 1
          description: Itens do pedido
          items:
            $ref: "#/components/schemas/SessionItemObject"
        splitRules:
          type: array
          description: Regras de split da sessão, persistidas para o pagamento. Não reenviar em POST /v1/sessions/{id}/charge.
          items:
            $ref: "#/components/schemas/SplitRule"
        vendor:
          allOf:
            - $ref: "#/components/schemas/VendorCharge"
      required:
        - merchantId
        - paymentMethods
        - items
    Session:
      properties:
        id:
          type: string
          description: Identificação da sessão a ser utilizada
        name:
          type: string
          description: Nome que identifica a sessão
        status:
          type: string
          enum: [created, paid, canceled, voided]
          description: Status da sessão
        isActive:
          type: boolean
          description: Determina se a sessão está ativa
        clientId:
          type: string
          description: Identificador do cliente na Malga
        orderId:
          type: string
          description: Identificador único da cobrança do lado do cliente para conciliação futura
        amount:
          type: number
          description: Valor da transação em centavos, exemplo 100 para cobrar R$ 1,00
        currency:
          type: string
          description: Identificador da moeda para processamento da cobrança, formato ISO 4217.
        capture:
          type: boolean
          description: Determina se a transação deve ser capturada automaticamente
        merchantId:
          type: string
          description: Identificação do merchant id a ser utilizado
        dueDate:
          type: string
          nullable: true
          description: |
            Data limite da sessão, em ISO 8601. Pode estar ausente quando a sessão foi criada sem data de vencimento.
        description:
          type: string
          description: Descrição da sessão
        statementDescriptor:
          type: string
          description: Descrição a ser exibida fatura do comprador
        captchaEnabled:
          type: boolean
          description: Indica se a sessão usa verificação por CAPTCHA no Link de Pagamento.
        items:
          type: array
          description: Itens do pedido
          items:
            $ref: "#/components/schemas/SessionItemObject"
        paymentLink:
          type: string
          description: Link para acessar o Link de Pagamento desta sessão
        paymentMethods:
          type: array
          description: Métodos de pagamento disponíveis na sessão
          items:
            anyOf:
              - $ref: "#/components/schemas/PaymentMethodCardObject"
              - $ref: "#/components/schemas/PaymentMethodPixObject"
              - $ref: "#/components/schemas/PaymentMethodBoletoObject"
              - $ref: "#/components/schemas/PaymentMethodDripObjectRequest"
              - $ref: "#/components/schemas/PaymentMethodNupayObjectRequest"
        createdAt:
          type: string
          description: Data de criação da sessão
        updatedAt:
          type: string
          description: Data da atualização da sessão
        publicKey:
          type: string
          description: Chave de acesso com escopo restrito, usada para pagar a sessão
        splitRules:
          type: array
          description: Regras de split persistidas nesta sessão (quando informadas na criação).
          items:
            $ref: "#/components/schemas/SplitRule"
        multiplePayments:
          allOf:
            - $ref: "#/components/schemas/MultiplePayments"
          description: |
            Estado conceitual de **disponibilidade do link** para receber uma próxima cobrança.
            Retornado em respostas completas de sessão. Em respostas parciais de atualização ou pagamento, consulte `GET /v1/sessions/{id}` para obter o estado agregado atualizado.
    MultiplePayments:
      type: object
      description: |
        Estado do link de pagamento para receber uma próxima cobrança.

        - **Sessões 1:1** retornam `allow=false`, `maxPayments=null` e `status` derivado da disponibilidade do link.
        - **Sessões 1:N** (criadas com `maxPayments`) retornam `allow=true` e `status` reflete capacidade restante e estado da sessão.
      properties:
        allow:
          type: boolean
          description: |
            `true` em sessões 1:N (com `maxPayments` configurado); `false` em sessões 1:1.
        maxPayments:
          type: integer
          nullable: true
          description: |
            Limite configurado para a sessão.
            `-1` indica ilimitado, valores entre `1` e `99999` indicam limite finito; `null` em sessões 1:1.
        paymentCount:
          type: integer
          description: Quantidade de pagamentos já autorizados neste link.
        pendingCount:
          type: integer
          description: |
            Quantidade de reservas pendentes de confirmação assíncrona neste link (ex.: Pix em aberto).
        status:
          type: string
          enum: [active, disabled, canceled]
          description: |
            Disponibilidade conceitual do link para próxima cobrança:

            - `active`: link disponível.
            - `disabled`: link temporariamente indisponível (ex.: `isActive=false`, expiração por `dueDate`, ou limite atingido em 1:N). Estado reversível.
            - `canceled`: link cancelado ou anulado, estado terminal.

            O campo raiz `status` da sessão segue mantendo apenas `created`, `paid`, `canceled` ou `voided`.
    SessionItemObject:
      properties:
        id:
          type: string
          format: uuid
          nullable: true
          description: |
            Identificador estável do item, gerado pela Malga na criação da sessão. Retornado em respostas de sessão (`GET /v1/sessions/{id}`, criação e Link de Pagamento). Ignorado em requests — não é necessário enviar em `POST /v1/sessions`.
        name:
          type: string
          description: Nome do item da sessão
        description:
          type: string
          description: Descrição do item da sessão
        unitPrice:
          type: integer
          minimum: 0
          description: Preço unitário em centavos do item, exemplo 100 para cobrar R$ 1,00
        quantity:
          type: integer
          minimum: 1
          description: Define a quantidade de itens
        tangible:
          type: boolean
          description: Determina se o item é tangível
        categoryId:
          type: string
          description: Identificador da categoria do item
      required:
        - name
        - unitPrice
        - quantity
    SessionHistoryResponse:
      type: array
      items:
        $ref: "#/components/schemas/SessionHistoryItem"
    SessionHistoryItem:
      type: object
      description: |
        Registro de auditoria de um evento na sessão. O item não retorna campos de nível raiz como `chargeId` nem metadados de sistema.
      properties:
        id:
          type: string
          format: uuid
          description: Identificador do registro de histórico (não confundir com o `id` da sessão no path).
        status:
          type: string
          enum: [created, paid, canceled, voided, disabled]
          description: |
            Status da sessão na leitura do produto no momento do evento. O valor `disabled` indica desativação automática por `dueDate` ou limite de pagamentos 1:N; cancelamento manual permanece `canceled`.
        createdAt:
          type: string
          format: date-time
          description: Data de criação do registro (RFC 3339, com precisão de milissegundos).
        updatedAt:
          type: string
          format: date-time
          description: Data da última atualização do registro.
        clientId:
          type: string
          format: uuid
          description: Identificador do cliente Malga associado ao registro, quando preenchido.
        merchantId:
          type: string
          format: uuid
          description: Identificador do merchant associado ao registro, quando preenchido.
        action:
          type: string
          nullable: true
          description: |
            Ação principal derivada de `actions`, com prioridade documentada (ex.: `statusChanged`, `sessionExpiredByDueDate`, `paymentSucceeded`). Pode ser omitida (`null`) quando o `diff` indica expiração por `dueDate` mas `actions` não lista `sessionExpiredByDueDate`.
        actions:
          type: array
          items:
            type: string
          description: |
            Lista completa de ações semânticas do evento. Valores possíveis incluem `statusChanged`, `amountChanged`, `isActiveChanged`, `paymentSucceeded`, `paymentPending`, `paymentExpired`, `sessionExpiredByDueDate`, `sessionExpiredByMaxPayments`, `splitRulesChanged`, entre outros.
        diff:
          type: object
          additionalProperties: true
          description: |
            Objeto JSON com mudanças (`changes.*`), razões estáveis (`reason`, `changes.isActive.reason`) e contexto (ex.: `maxPaymentsContext`, resposta da tentativa de cobrança em `changes.response`). A estrutura varia conforme o fluxo.
      required:
        - id
        - status
        - createdAt
        - updatedAt
    SessionSettingsResponse:
      properties:
        id:
          type: string
          description: Identificação da sessão a ser utilizada
        name:
          type: string
          description: Nome que identifica a sessão
        status:
          type: string
          enum: [created, paid, canceled, voided]
          description: Status da sessão
        isActive:
          type: boolean
          description: Determina se a sessão está ativa
        clientId:
          type: string
          description: Identificador do cliente na Malga
        orderId:
          type: string
          description: Identificador único da cobrança do lado do cliente para conciliação futura
        amount:
          type: number
          description: Valor da transação em centavos, exemplo 100 para cobrar R$ 1,00
        currency:
          type: string
          description: Identificador da moeda para processamento da cobrança, formato ISO 4217.
        capture:
          type: boolean
          description: Determina se a transação deve ser capturada automaticamente
        merchantId:
          type: string
          description: Identificação do merchant id a ser utilizado
        dueDate:
          type: string
          nullable: true
          description: |
            Data limite da sessão, em ISO 8601. Pode estar ausente quando a sessão foi criada sem data de vencimento.
        description:
          type: string
          description: Descrição da sessão
        statementDescriptor:
          type: string
          description: Descrição a ser exibida fatura do comprador
        items:
          type: array
          description: Itens do pedido
          items:
            $ref: "#/components/schemas/SessionItemObject"
        paymentLink:
          type: string
          description: Link para acessar o Link de Pagamento desta sessão
        paymentMethods:
          type: array
          description: Métodos de pagamento disponíveis na sessão
          items:
            anyOf:
              - $ref: "#/components/schemas/PaymentMethodCardObject"
              - $ref: "#/components/schemas/PaymentMethodPixObject"
              - $ref: "#/components/schemas/PaymentMethodBoletoObjectRequest"
              - $ref: "#/components/schemas/PaymentMethodDripObjectRequest"
              - $ref: "#/components/schemas/PaymentMethodNupayObjectRequest"
        createdAt:
          type: string
          description: Data de criação da sessão
        updatedAt:
          type: string
          description: Data da atualização da sessão
        publicKey:
          type: string
          description: Chave de acesso com escopo restrito, usada para pagar a sessão
        multiplePayments:
          allOf:
            - $ref: "#/components/schemas/MultiplePayments"
          description: |
            Estado conceitual de **disponibilidade do link** para receber uma próxima cobrança.
            Retornado em respostas completas de sessão. Em respostas parciais de atualização ou pagamento, consulte `GET /v1/sessions/{id}` para obter o estado agregado atualizado.
        settings:
          allOf:
            - type: object
            - description: Configurações da empresa
            - $ref: "#/components/schemas/UserSettings"
      example:
        id: "1b0c6960-702a-4074-95c2-eed2790c16a1"
        name: "Nome da sessão"
        status: "created"
        isActive: true
        clientId: "1b0c6960-702a-4074-95c2-eed2790c16a1"
        orderId: null
        amount: 100
        currency: "BRL"
        capture: true
        merchantId: "69aea152-ba70-49a3-a31c-044ac1651146"
        dueDate: "2022-10-25T09:28:45.000Z"
        description: "Promoção Black Friday"
        statementDescriptor: "LOJA JOAO"
        paymentMethods:
          - paymentType: "credit"
            installments: 1
        items:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            name: "Item 1"
            description: "Descrição do item"
            unitPrice: 10000
            quantity: 1
            tangible: false
        createdAt: "2022-10-25T09:28:45.000Z"
        updatedAt: "2022-10-25T09:28:45.000Z"
        publicKey: "1b0c6960-702a-4074-95c2-eed2790c16a1"
        multiplePayments:
          allow: true
          maxPayments: 5
          paymentCount: 1
          pendingCount: 0
          status: "active"
        settings:
          id: "78601913-a176-4d71-b7e8-abb6fc49a340"
          email: "company@email.com"
          phone: "5551996225566"
          statementDescription: "LOJA JOAO"
          logo: "https://logo.com/images/logo.png"
          mainColor: "#fff000"
          secondaryColor: "#fff000"
          attentionColor: "#333333"
          errorColor: "#ff0000"
          successColor: "#00FF00"
          backgroundColor: "#fff000"
          companyName: "Company Name"
          clientId: "1b0c6960-702a-4074-95c2-eed2790c16a1"
          documentNumber: "011001001001000010"
          language: "pt_BR"

    UserSettings:
      properties:
        id:
          type: string
          format: uuid
          description: Identificador das configurações da empresa
        logo:
          type: string
          format: uri
          description: URL do logo da empresa
        mainColor:
          type: string
          description: Cor primária
        secondaryColor:
          type: string
          description: Cor secundária
        attentionColor:
          type: string
          description: Cor utilizada para alertas
        errorColor:
          type: string
          description: Cor utilizada para as mensagens de erro
        successColor:
          type: string
          description: Cor utilizada nas mensagens de sucesso
        backgroundColor:
          type: string
          description: Cor de fundo
        clientId:
          type: string
          description: Identificador do cliente na Malga
        companyUrl:
          type: string
          description: "Url que deve ser utilizada no link de pagamento. Ex: https://www.company.com"
        mastercardClickToPayDpaid:
          type: string
          description: "Digital Payment Application ID (dpaId) para habilitar Mastercard Click to Pay no Link de Pagamento. Campo opcional."
        merchantId:
          type: string
          description: "Indica se a configuração retornada é específica de um merchant (id do merchant) ou a configuração padrão do cliente (nesse caso sem valor)."
    UserSettingsWithImage:
      description: Configurações da empresa com imagem. Esse body deve ser enviado com form-data. Todos os campos são string (Text) com excessão do campo logo que é do tipo File.
      properties:
        logo:
          type: string
          format: binary
          description: Arquivo de imagem do logo da empresa. Esse campo é do tipo "File" e deve ser configurado assim no form-data que for enviado. Mande imagens de até 1000px de largura e altura e apenas em formato .png ou .jpg
        mainColor:
          type: string
          description: Cor primária
        secondaryColor:
          type: string
          description: Cor secundária
        attentionColor:
          type: string
          description: Cor utilizada para alertas
        errorColor:
          type: string
          description: Cor utilizada para as mensagens de erro
        successColor:
          type: string
          description: Cor utilizada nas mensagens de sucesso
        backgroundColor:
          type: string
          description: Cor de fundo
        companyUrl:
          type: string
          description: "Url que deve ser utilizada no link de pagamento. Ex: https://www.company.com"
        mastercardClickToPayDpaid:
          type: string
          description: "Digital Payment Application ID (dpaId) para habilitar Mastercard Click to Pay no Link de Pagamento. Campo opcional."
    UserSettingsPatch:
      description: |
        Body JSON para PATCH /v1/settings (sem upload de logo). Todos os campos são opcionais;
        campos omitidos não são alterados. Campos enviados vazios (`""`) são ignorados e não persistidos.
      type: object
      properties:
        mainColor:
          type: string
          description: Cor primária
        secondaryColor:
          type: string
          description: Cor secundária
        attentionColor:
          type: string
          description: Cor utilizada para alertas
        errorColor:
          type: string
          description: Cor utilizada para as mensagens de erro
        successColor:
          type: string
          description: Cor utilizada nas mensagens de sucesso
        backgroundColor:
          type: string
          description: Cor de fundo
        companyUrl:
          type: string
          description: "Url que deve ser utilizada no link de pagamento. Ex: https://www.company.com"
        mastercardClickToPayDpaid:
          type: string
          description: "Digital Payment Application ID (dpaId) para habilitar Mastercard Click to Pay no Link de Pagamento. Campo opcional."
    GetCard:
      properties:
        cardHolderName:
          type: string
          description: Card number
        cardBrand:
          type: string
          description: Card brand
        cardNumber:
          type: string
          description: Card number
        cardExpirationDate:
          type: string
          description: Card expiration MM/YYYY
    TokenResponse:
      properties:
        tokenId:
          type: string
          format: uuid
          description: Identificador do token gerado
    SetupResponse:
      properties:
        id:
          type: string
          format: uuid
          description: Identificador do setup
        token:
          type: string
          description: Token gerado no provedor 3DS, será utilizado na coleta de dados
        collectUrl:
          type: string
          format: url
          description: URL do provedor 3DS, será utilizado na coleta de dados
        providerType:
          type: string
          description: Informa qual provedor 3DS2 está sendo utilizado
        error:
          properties:
            type:
              type: string
              enum:
                [api_error, bad_request, invalid_request_error, card_declined]
            declinedCode:
              type: string
              description: Código de retorno da transação em caso de falha na autorização
            message:
              type: string
              description: Descrição breve do erro
            details:
              type: array
              description: Lista contendo objetos que detalham o erro de validação
    Charge:
      properties:
        id:
          type: string
          description: Identificador da transação
        clientId:
          type: string
          format: uuid
          description: Identificador do cliente na Malga
        merchantId:
          type: string
          format: uuid
          description: Identificador do merchant id utilizado na transação
        customerId:
          type: string
          format: uuid
          description: Identificador do customer id
        description:
          type: string
          description: Descrição da cobrança para consulta futura
        amount:
          type: number
          description: Valor da transação em centavos, exemplo 100 para cobrar R$ 1,00
        originalAmount:
          type: number
          description: Valor da transação em centavos, exemplo 100 para cobrar R$ 1,00
        currency:
          type: string
          description: Identificador da moeda para processamento da cobrança, formato ISO 4217.
          default: BRL
        statementDescriptor:
          type: string
          description: Descrição a ser exibida na fatura do comprador
        capture:
          type: boolean
          description: Determina se a transação deve ser capturada automaticamente
        isDispute:
          type: boolean
          description: Determina se a transação está em disputa
        status:
          type: string
          description: Status da transação na Malga
          enum:
            [
              pending,
              pre_authorized,
              authorized,
              failed,
              canceled,
              voided,
              charged_back,
              refund_pending,
              capture_pending,
            ]
        orderId:
          type: string
          description: Identificador único da cobrança do lado do cliente para conciliação futura
        responsibleProviderType:
          type: string
          description: Nome do provedor de pagamento responsável pela transação
        paymentMethod:
          oneOf:
            - $ref: "#/components/schemas/PaymentMethodCardObject"
            - $ref: "#/components/schemas/PaymentMethodPixObject"
            - $ref: "#/components/schemas/PaymentMethodBoletoObject"
            - $ref: "#/components/schemas/PaymentMethodNuPayObject"
            - $ref: "#/components/schemas/PaymentMethodDripObject"
            - $ref: "#/components/schemas/PaymentMethodVoucherObject"
            - $ref: "#/components/schemas/PaymentMethodApplePayObject"
        paymentSource:
          oneOf:
            - $ref: "#/components/schemas/SourceTypeCardObject"
            - $ref: "#/components/schemas/SourceTypeTokenObject"
            - $ref: "#/components/schemas/SourceTypeCustomerObject"
            - $ref: "#/components/schemas/SourceTypeWalletObject"
        createdAt:
          type: string
          description: Data de criação do cartão
        updatedAt:
          type: string
          description: Data de atualização do cartão
        fraudAnalysisMetadata:
          description: Parâmetros adicionais para analise de fraude
          allOf:
            - $ref: "#/components/schemas/FraudAnalysisMetadata"
        paymentFlow:
          type: object
          description: Campos adicionais para uso em condicionais dos fluxos inteligentes
          properties:
            metadata:
              type: object
              description: Campos adicionais da transação enviados na criação da mesma
          required:
            - metadata
        transactionRequests:
          type: array
          items:
            $ref: "#/components/schemas/TransactionRequest"
        threeDSecure2:
          type: object
          allOf:
            - $ref: "#/components/schemas/3DSecure2Response"
        appInfo:
          type: object
          description: Informações sobre a rastreabilidade da cobrança
          allOf:
            - $ref: "#/components/schemas/AppInfoObject"
        splitRules:
          type: array
          description: Parâmetros adicionais para transacionar com `Split`
          items:
            $ref: "#/components/schemas/ChargeSplitRules"
        platformFee:
          allOf:
            - $ref: "#/components/schemas/PlatformFeeAppliedOutput"
          description: >
            Detalhes da taxa de plataforma aplicada na cobrança quando há `splitRules` e o merchant tem platform fee habilitado.
            Ausente quando não há aplicação de platform fee.
    Charge3DS2Response:
      properties:
        id:
          type: string
          description: Identificador da transação
        clientId:
          type: string
          format: uuid
          description: Identificador do cliente na Malga
        merchantId:
          type: string
          format: uuid
          description: Identificador do merchant id utilizado na transação
        customerId:
          type: string
          format: uuid
          description: Identificador do customer id
        description:
          type: string
          description: Descrição da cobrança para consulta futura
        amount:
          type: number
          description: Valor da transação em centavos, exemplo 100 para cobrar R$ 1,00
        currency:
          type: string
          description: Identificador da moeda para processamento da cobrança, formato ISO 4217.
          default: BRL
        statementDescriptor:
          type: string
          description: Descrição a ser exibida na fatura do comprador
        capture:
          type: boolean
          description: Determina se a transação deve ser capturada automaticamente
        isDispute:
          type: boolean
          description: Determina se a transação está em disputa
        status:
          type: string
          description: Status da transação na Malga
          enum:
            [
              pending,
              pre_authorized,
              authorized,
              failed,
              canceled,
              voided,
              refund_pending,
              charged_back,
              capture_pending,
            ]
        orderId:
          type: string
          description: Identificador único da cobrança do lado do cliente para conciliação futura
        paymentMethod:
          oneOf:
            - $ref: "#/components/schemas/PaymentMethodCardObject"
            - $ref: "#/components/schemas/PaymentMethodPixObject"
            - $ref: "#/components/schemas/PaymentMethodBoletoObject"
            - $ref: "#/components/schemas/PaymentMethodNuPayObject"
        paymentSource:
          oneOf:
            - $ref: "#/components/schemas/SourceTypeCardObject"
            - $ref: "#/components/schemas/SourceTypeTokenObject"
            - $ref: "#/components/schemas/SourceTypeCustomerObject"
        createdAt:
          type: string
          description: Data de criação do cartão
        updatedAt:
          type: string
          description: Data de atualização do cartão
        paymentFlow:
          type: object
          description: Campos adicionais para uso em condicionais dos fluxos inteligentes
          properties:
            metadata:
              type: object
              description: Campos adicionais da transação enviados na criação da mesma
          required:
            - metadata
        transactionRequests:
          type: array
          items:
            $ref: "#/components/schemas/TransactionRequest"
        threeDSecure2:
          type: object
          description: Parâmetros adicionais para transacionar com 3D Secure 2
          allOf:
            - $ref: "#/components/schemas/3DSecure2Request"
    TransactionRequest:
      properties:
        id:
          type: string
          description: Identificador único do request feito ao provedor
        providerId:
          type: string
          format: uuid
          description: Identificador do provider que processou a requisiçao, consulte a lista de providers configurados na sua conta
        providerType:
          type: string
          description: Código que identifica o provedor, consultar tabela de provedores suportados pela Malga
        idempotencyKey:
          type: string
          description: Chave única de referência gerada pela Malga para cada requisição, utilizada para garantir idempotência e evitar duplicidade no provedor, pode ser também consultada na API ou dashboard do provedor como orderId ou referenceKey no provedor.
        authorizationNsu:
          type: string
          description: Identificador único da transação retornado pelo provider
        transactionId:
          type: string
          description: Identificador único da transação retornado pelo provider, txId, pode ser usado para recuperar a transação nas APIs ou dashboard do provedor
        requestStatus:
          type: string
          enum: [running, failed, success, timeout, internal_error, processing]
          description: Status do processamento da requisição no provider
        requestType:
          type: string
          enum:
            [
              pending,
              authorization,
              pre_authorization,
              void,
              capture,
              probe,
              charge_back,
              zero_dollar,
              anti_fraud,
              dispute,
            ]
          description: Identifica o tipo da requisição feita para o provider
        tokenizedPayment:
          type: boolean
          description: Identifica se a transação foi processada usando um token externo
        amount:
          type: number
          description: Valor da transação enviada para processamento do provider, em casos de estorno ou captura parcial o valor pode ser diferente do amount original da transação
        responseTs:
          type: string
          description: Tempo de duração do processamento da requisição no provider
        providerError:
          type: object
          description: Detalhes do erro em caso de falha no processamento da transação
          properties:
            message:
              type: string
              description: Mensagem de erro mapeado pela Malga que descreve o motivo de rejeição retornad
            declinedCode:
              type: string
              description: Codigo de erro mapeado pela Malga com base no tipo de erro apresentado pelo provedor
            retryable:
              type: boolean
              description: Identifica se o tipo de erro permite ou não retentativa
            networkDeniedReason:
              type: string
              description: Código retornado pelo provider que identitifica o motivo da rejeição, consultar o provedor
            networkDeniedMessage:
              type: string
              description: Mensagem de erro retornado pelo provider, consultar o provedor
        providerAuthorization:
          type: object
          description: Dados adicionais do retorno da autorização do provider no processamento da transação
          properties:
            networkAuthorizationCode:
              type: string
              description: Código de autorização da transação conforme retornado pelo provider
            networkResponseCode:
              type: string
              description: Código de resposta da requisição conforme retornado pelo provider
        createdAt:
          type: string
          description: Data de criação do request feito ao provedor
        updatedAt:
          type: string
          description: Data de atualização do request feito ao provedor
    ChargeRequest:
      properties:
        merchantId:
          type: string
          format: uuid
          description: Identificação do merchant id a ser utilizado
        amount:
          type: number
          description: Valor da transação em centavos, exemplo 100 para cobrar R$ 1,00
        currency:
          type: string
          description: Identificador da moeda para processamento da cobrança, formato ISO 4217.
          default: BRL
        statementDescriptor:
          type: string
          description: Descrição a ser exibida fatura do comprador
        capture:
          type: boolean
          description: Determina se a transação deve ser capturada automaticamente
          default: false
        orderId:
          type: string
          description: Identificador único da cobrança do lado do cliente para conciliação futura
        description:
          type: string
          description: Descrição da cobrança para consulta futura
        customerId:
          type: string
          format: uuid
          description: Identificador de comprador na Malga para consulta futura - Integração com a API de customer
        paymentMethod:
          description: Define o método de cobrança
          oneOf:
            - $ref: "#/components/schemas/PaymentMethodCard"
            - $ref: "#/components/schemas/PaymentMethodPix"
            - $ref: "#/components/schemas/PaymentMethodBoleto"
            - $ref: "#/components/schemas/PaymentMethodNuPay"
            - $ref: "#/components/schemas/PaymentMethodDrip"
            - $ref: "#/components/schemas/PaymentMethodVoucher"
            - $ref: "#/components/schemas/PaymentMethodPicpay"
            - $ref: "#/components/schemas/PaymentMethodApplePay"
            - $ref: "#/components/schemas/PaymentMethodClickToPay"
        paymentSource:
          oneOf:
            - $ref: "#/components/schemas/SourceTypeCard"
            - $ref: "#/components/schemas/SourceTypeCardOneShot"
            - $ref: "#/components/schemas/SourceTypeToken"
            - $ref: "#/components/schemas/SourceTypeCustomer"
            - $ref: "#/components/schemas/SourceTypeCustomerData"
            - $ref: "#/components/schemas/SourceTypeCardCvv"
            - $ref: "#/components/schemas/SourceTypeApplePay"
            - $ref: "#/components/schemas/SourceTypeClickToPay"
        fraudAnalysis:
          description: Parâmetros adicionais para análise de fraude, necessários para processamento com provedores específicos
          allOf:
            - $ref: "#/components/schemas/FraudAnalysisRequest"
        splitRules:
          description: Parâmetros adicionais para transacionar com `Split`
          type: array
          items:
            $ref: "#/components/schemas/SplitRule"
        vendor:
          allOf:
            - $ref: "#/components/schemas/VendorCharge"
        paymentFlow:
          type: object
          description: Campos adicionais para uso em condicionais dos fluxos inteligentes
          properties:
            metadata:
              type: object
              description: Campos adicionais da transação enviados na criação da mesma
          required:
            - metadata
        threeDSecure2:
          type: object
          description: Parâmetros adicionais para transacionar com 3D Secure 2
          allOf:
            - $ref: "#/components/schemas/3DSecure2Request"
        appInfo:
          type: object
          description: Informações sobre a rastreabilidade da cobrança
          allOf:
            - $ref: "#/components/schemas/AppInfoObject"
      required:
        - amount
        - merchantId
        - paymentMethod
        - paymentSource
    AppInfoObject:
      properties:
        platform:
          description: Informações sobre produto das transações (checkout-sdk, vtex, etc..)
          allOf:
            - $ref: "#/components/schemas/AppInfoPlatform"
        device:
          description: Informações sobre o dispositivo (ios, android, windows, linux)
          allOf:
            - $ref: "#/components/schemas/AppInfoDevice"
        system:
          description: Informações sobre o sistema proprietário de captura do merchant
          allOf:
            - $ref: "#/components/schemas/AppInfoSystem"
    AppInfoPlatform:
      properties:
        integrator:
          type: string
          description: Nome do parceiro que implementou a integração
        name:
          type: string
          description: Nome do produto
        version:
          type: string
          description: Versão do produto
      required:
        - name
        - version
    AppInfoDevice:
      properties:
        sessionId:
          type: string
          description: ID da sessão
        name:
          type: string
          description: Nome do sistema operacional
        version:
          type: string
          description: Versão do sistema operacional
      required:
        - name
        - version
    AppInfoSystem:
      properties:
        name:
          type: string
          description: Nome da empresa e/ou plataforma
        version:
          type: string
          description: Versão do software da plataforma
      required:
        - name
        - version
    FraudAnalysisRequest:
      properties:
        sla:
          type: number
          description: Valor em Minutos de SLA máximo de Análise do Pedido, se houver
        customer:
          description: Dados do comprador
          type: object
          properties:
            name:
              type: string
              description: Nome do usuario
            email:
              type: string
              description: Email do usuario
            phone:
              type: string
              description: Telefone de contato do usuario
            identityType:
              type: string
              description: Tipo de documento, consultar tabela de tipos suportados
            identity:
              type: string
              description: Número do documento formato conforme tipo selecionado
            maritalStatus:
              type: string
              description: Estado civil do usuario
            education:
              type: string
              description: Nível de escolaridade do usuario
            registrationDate:
              type: string
              description: Data de registro do cliente
            deliveryAddress:
              description: Endereço de entrega
              allOf:
                - $ref: "#/components/schemas/FraudAnalysisAddress"
            billingAddress:
              description: Endereço de cobrança
              allOf:
                - $ref: "#/components/schemas/FraudAnalysisAddress"
            browser:
              description: Informações sobre o navegador do usuário
              allOf:
                - $ref: "#/components/schemas/FraudAnalysisCustomerBrowser"
        mfa:
          description: Dados de Multi factor authentication
          type: object
          properties:
            smsOtpUsed:
              type: boolean
              description: Usuario utilizou OTP via SMS
            emailOtpUsed:
              type: boolean
              description: Usuario utilizou OTP via email
        cart:
          description: Detalhe do carrinho de produtos
          type: object
          properties:
            items:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: Nome do item/evento
                  quantity:
                    type: integer
                    description: Quantidade de itens do pedido
                  sku:
                    type: string
                    description: Identificador único do item na loja
                  unitPrice:
                    type: integer
                    description: Valor unitário do item/evento em centavos
                  risk:
                    type: string
                    description: Definição do indice de risco do item
                    enum:
                      - High
                      - Low
                  description:
                    type: string
                    description: Descrição do item/evento
                  categoryId:
                    type: string
                    description: Categoria a qual o item/evento pertence
                  locality:
                    type: string
                    description: Definição de local, em caso de evento
                  date:
                    type: string
                    description: Definição de data, em caso de evento
                  type:
                    type: number
                    description: Definição de tipo, em caso de evento
                  genre:
                    type: string
                    description: Definição de gênero, em caso de evento
                  tickets:
                    type: object
                    description: Informações relacionadas aos ingressos, em caso de evento
                    properties:
                      quantityTicketSale:
                        type: number
                        description: Quantidade total de ingressos à venda
                      quantityEventHouse:
                        type: number
                        description: Quantidade de vezes que o evento será realizado na casa
                      convenienceFeeValue:
                        type: number
                        description: Taxa de Conveniência
                      quantityFull:
                        type: number
                        description: Quantidade de ingressos com valor integral
                      quantityHalf:
                        type: number
                        description: Quantidade de ingresso com desconto (meia entrada)
                      batch:
                        type: number
                        description: Lote do Ingresso
                  location:
                    description: Definição de endereço, em caso de evento
                    allOf:
                      - $ref: "#/components/schemas/FraudAnalysisAddress"
        device:
          description: Detalhes do aparelho do consumidor
          type: object
          properties:
            id:
              type: string
              description: Id do dispositivo
            sessionId:
              type: string
              description: ID da sessão
            os:
              type: object
              properties:
                type:
                  type: string
                  description: Tipo do sistema operacional
                version:
                  type: string
                  description: Versão do sistema operacional
            model:
              type: string
              description: Modelo do aparelho
            ramCapacity:
              type: integer
              description: Capacidade da memória RAM do aparelho
            diskCapacity:
              type: integer
              description: Capacidade de armazenamento do aparelho
            freeDiskSpace:
              type: integer
              description: Quantidade de memória livre
            resolution:
              type: integer
              description: Resolução do aparelho
            vendors:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: Name do atributo do fornecedor
                  value:
                    type: string
                    description: Valor do atributo do fornecedor
            vendorAttributes:
              description: Atributos do aparelho fornecidos pelo fornecedor
              type: object
              properties:
                flash:
                  type: boolean
                  description: Aparelho possui flash
                phoneCalls:
                  type: boolean
                  description: Aparelho pode realizar chamadas
                sendSms:
                  type: boolean
                  description: Aparelho pode enviar sms
                videoCamera:
                  type: boolean
                  description: Aparelho possui camera de video
                cpuCount:
                  type: integer
                  description: Quantidade de cpus
                simulator:
                  type: boolean
                  description: Aparelho possui simulador
                language:
                  type: string
                  description: Lingua do aparelho
                idiom:
                  type: string
                  description: Idioma do aparelho
                platform:
                  type: string
                  description: Plataforma do sistema
                name:
                  type: string
                  description: Nome do aparelho
                family:
                  type: string
                  description: Família do aparelho
                retinaDisplay:
                  type: boolean
                  description: Aparelho possui display de retina
                camera:
                  type: boolean
                  description: Aparelho possui camera
                model:
                  type: string
                  description: Modelo do aparelho
                frontCamera:
                  type: boolean
                  description: Aparelho possui camera frontal
        airline:
          description: Detalhes da reserva de passagem aérea
          type: object
          properties:
            passengers:
              type: array
              description: Informações sobre os passageiros
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: Nome do passageiro
                  companyMileCard:
                    type: string
                    description: Cartão de Milhas da empresa
                  mileCard:
                    type: string
                    description: Cartão de Milhas
                  identityType:
                    type: string
                    description: Tipo de identidade
                  identityNumber:
                    type: string
                    description: Número de identidade
                  gender:
                    type: string
                    description: Gênero do passageiro
                    enum:
                      - male
                      - female
                  birthdate:
                    type: string
                    description: Data de nascimento do passageiro
            connections:
              type: array
              description: Detalhes das conexões de voo
              items:
                type: object
                properties:
                  company:
                    type: string
                    description: Companhia aérea
                  identificationNumber:
                    type: integer
                    description: Número de identificação do voo
                  date:
                    type: string
                    description: Data do voo
                  seatClass:
                    type: string
                    description: Classe do assento
                  origin:
                    type: string
                    description: Aeroporto de origem
                  destination:
                    type: string
                    description: Aeroporto de destino
                  boarding:
                    type: string
                    description: Data de embarque
                  arriving:
                    type: string
                    description: Data de chegada
                  fareClass:
                    type: string
                    description: Classe tarifária
            reservation:
              type: string
              description: Data da reserva de passagem aérea
        orderOrigin:
          type: string
          description: Origem do pedido
          enum:
            - app
            - web
            - telesales
            - social_network
            - other
        operationalSystem:
          type: string
          description: Tipo de sistema operacional do cliente
        marketplaceType:
          type: string
          description: Tipo de mercado
          enum:
            - b2b
            - b2c
        purchaseInformation:
          type: object
          description: Informações sobre o canal de compra
          properties:
            lastDateInsertedMail:
              type: string
              description: Última data de inserção de e-mail
            lastDateChangePassword:
              type: string
              description: Última data de alteração de senha
            lastDateChangePhone:
              type: string
              description: Última data de alteração de telefone
            lastDateChangeMobilePhone:
              type: string
              description: Última data de alteração de telefone móvel
            lastDateInsertedAddress:
              type: string
              description: Última data de inserção de endereço
            purchaseLogged:
              type: boolean
              description: Indica se a compra foi registrada
            email:
              type: string
              description: Endereço de e-mail do comprador
            login:
              type: string
              description: Nome de usuário do comprador
        socialNetwork:
          type: object
          description: Informações da rede social do comprador
          properties:
            optInCompreConfie:
              type: boolean
              description: Opt-in para Compre Confie
            socialNetworkType:
              type: string
              description: Tipo de rede social
              enum:
                - facebook
                - twitter
                - linkedin
                - google
                - other
            authenticationToken:
              type: string
              description: Token de autenticação
        giftList:
          type: object
          description: Lista de presentes
          properties:
            type:
              type: string
              description: Tipo de lista
              enum:
                - wishlist
                - wedding_list
                - birthday_list
                - other
            id:
              type: string
              description: Identificador da lista de presentes
        hotels:
          type: array
          description: Informações sobre reservas de hotéis
          items:
            type: object
            properties:
              name:
                type: string
                description: Nome do hotel
              city:
                type: string
                description: Cidade do hotel
              state:
                type: string
                description: Estado do hotel
              country:
                type: string
                description: País do hotel
              reservationDate:
                type: string
                description: Data da reserva
              reserveExpirationDate:
                type: string
                description: Data de expiração da reserva
              checkInDate:
                type: string
                description: Data de check-in
              checkOutDate:
                type: string
                description: Data de check-out
    VoucherAddress:
      type: object
      properties:
        country:
          type: string
          description: Padrão ISO 3166-1 alpha-2
        state:
          type: string
          description: Estado
        city:
          type: string
          description: Cidade
        district:
          type: string
          description: Bairro
        zipCode:
          type: string
          description: Código postal CEP
        street:
          type: string
          description: Nome da rua/avenida/travessa
        number:
          type: string
          description: Número da rua
        complement:
          type: string
          description: Complemento caso exista
    FraudAnalysisAddress:
      type: object
      properties:
        country:
          type: string
          description: Padrão ISO 3166-1 alpha-2
        state:
          type: string
          description: Estado
        city:
          type: string
          description: Cidade
        district:
          type: string
          description: Bairro
        zipCode:
          type: string
          description: Codigo postal CEP
        street:
          type: string
          description: Nome da rua/avenida/travessa
        number:
          type: string
          description: Número da rua
        complement:
          type: string
          description: Complemento caso exista
    FraudAnalysisMetadata:
      type: object
      properties:
        sla:
          type: number
          description: Valor em Minutos de SLA máximo de Análise do Pedido, se houver
        customer:
          description: Dados do comprador
          type: object
          properties:
            name:
              type: string
              description: Nome do usuario
            email:
              type: string
              description: E-mail do usuario
            phone:
              type: string
              description: Telefone de contato do usuario
            identityType:
              type: string
              description: Tipo de documento, consultar tabela de tipos suportados
            identity:
              type: string
              description: Número do documento formato conforme tipo selecionado
            registrationDate:
              type: string
              description: Data de registro do cliente
            deliveryAddress:
              description: Endereço de entrega
              allOf:
                - $ref: "#/components/schemas/FraudAnalysisAddress"
            billingAddress:
              description: Endereço de cobrança
              allOf:
                - $ref: "#/components/schemas/FraudAnalysisAddress"
        cart:
          description: Detalhe do carrinho de produtos
          type: object
          properties:
            items:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: Nome do item/evento
                  quantity:
                    type: integer
                    description: Quantidade de itens do pedido
                  sku:
                    type: string
                    description: Identificador único do item na loja
                  unitPrice:
                    type: integer
                    description: Valor unitário do item/evento em centavos
                  risk:
                    type: string
                    description: Definição do indice de risco do item
                    enum:
                      - High
                      - Low
                  description:
                    type: string
                    description: Descrição do item/evento
                  categoryId:
                    type: string
                    description: Categoria a qual o item/evento pertence
                  locality:
                    type: string
                    description: Definição de local, em caso de evento
                  date:
                    type: string
                    description: Definição de data, em caso de evento
                  type:
                    type: number
                    description: Definição de tipo, em caso de evento
                  genre:
                    type: string
                    description: Definição do gênero, em caso de evento
                  tickets:
                    type: object
                    description: Informações relacionadas aos ingressos, em caso de evento
                    properties:
                      quantityTicketSale:
                        type: number
                        description: Quantidade total de ingressos à venda
                      quantityEventHouse:
                        type: number
                        description: Quantidade de vezes que o evento será realizado na casa
                      convenienceFeeValue:
                        type: number
                        description: Taxa de Conveniência
                      quantityFull:
                        type: number
                        description: Quantidade de ingressos com valor integral
                      quantityHalf:
                        type: number
                        description: Quantidade de ingresso com desconto (meia entrada)
                      batch:
                        type: number
                        description: Lote do Ingresso
                  location:
                    description: Definição de endereço, em caso de evento
                    allOf:
                      - $ref: "#/components/schemas/FraudAnalysisAddress"
    FraudAnalysisCustomerBrowser:
      type: object
      properties:
        browserFingerprint:
          type: string
          description: Fingerprint gerado do navegador
        cookiesAccepted:
          type: boolean
          description: Indica se os cookies foram aceitados
        email:
          type: string
          description: E-mail logado no navegador
        hostName:
          type: string
          description: Nome do host do usuário
        ipAddress:
          type: string
          description: Endereço de ip do usuário
        type:
          type: string
          description: User-agent do browser
    VoidRequest:
      properties:
        amount:
          type: number
          description: Valor do estorno em centavos não podendo ser maior que o valor da transação, exemplo 100 para cobrar R$ 1,00
        delayToCompose:
          type: number
          description: Número de dias para compor o valor a ser estornado. Utilizado apenas pela NuPay.
        splitRules:
          type: array
          description: Parâmetro que indica o valor a ser estornado e seu respectivo recebedor
          items:
            $ref: "#/components/schemas/SplitRulesVoid"
    ChangeStatusTransaction:
      properties:
        status:
          type: string
          description: Status da transação
          enum: [authorized, voided, charged_back, refund_pending, failed]
    ChangeAntifraudStatusTransaction:
      properties:
        status:
          type: string
          description: Status do antifraude
          enum: [approved, reproved, failed]
    CaptureRequest:
      properties:
        amount:
          type: number
          description: Valor da captura em centavos não podendo ser maior que o valor da transação, exemplo 100 para cobrar R$ 1,00
    SourceTypeCard:
      title: Cartão tokenizado
      type: object
      description: Dados para cobrança por cartão de crédito salve
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança, usar `card` para cobrança em cartão tokenizado
          enum: [card]
        cardId:
          type: string
          format: uuid
          description: Identificador do cartão quando source tipo card
        cardCvv:
          type: string
          description: Código de verificação cobrança sem tokenização, deve ser enviado sempre que o comprador estiver presente no momento da compra (opcional)
      required:
        - sourceType
        - cardId
    SourceTypeCardCvv:
      title: Cartão com tokenCvv
      type: object
      description: Dados para cobrança por cartão de crédito passando o tokenCvv
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança, usar `card` para cobrança em cartão tokenizado
          enum: [card]
        cardId:
          type: string
          format: uuid
          description: Identificador do cartão quando source tipo card (opcional)
        tokenCvv:
          type: string
          description: Código de verificação da tokenização do cvv do cartão
      required:
        - sourceType
        - cardId
        - tokenCvv
    SourceTypeApplePay:
      title: Apple Pay
      type: object
      description: Dados para cobrança por Apple Pay
      properties:
        sourceType:
          type: string
          description: Origem da cobrança, usar "wallet" para cobrança com carteiras
          enum: [wallet]
        walletPayment:
          type: string
          description: Tipo de pagamento, usar `credit` para cobrança por cartão de crédito
          enum: [credit]
        paymentData:
          type: object
          description: Dados do pagamento disponibilizados pela carteira digital
          properties:
            data:
              type: string
              description: Base64 com os dados do pagamento criptografados
            signature:
              type: string
              description: Assinatura do pagamento
            header:
              type: object
              description: Cabeçalho do pagamento
              properties:
                ephemeralPublicKey:
                  type: string
                  description: Ephemeral Public Key
            version:
              type: string
              description: Versão dos tokens de pagamento
    SourceTypeToken:
      title: Token
      type: object
      description: Dados para cobrança única de token de cartão
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança, usar `token` para cobrança no token gerado
          enum: [token]
        tokenId:
          type: string
          format: uuid
          description: Identificador do token quando source tipo token (opcional)
      required:
        - sourceType
        - tokenId
    SourceTypeCustomer:
      title: Cartão com Customer salvo
      type: object
      description: Identificador do comprador para cobrança
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança, usar `customer` para cobrança no cartão default do comprador
          enum: [customer]
        customerId:
          type: string
          format: uuid
          description: Identificador do cliente quando source tipo customer, debitando o cartão default do comprador
        cardCvv:
          type: string
          description: Código de verificação cobrança sem tokenização, deve ser enviado sempre que o comprador estiver presente no momento da compra (opcional)
      required:
        - sourceType
        - customerId
    SourceTypeClickToPay:
      title: Click to Pay
      type: object
      description: Dados do Click to Pay
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança, usar `click_to_pay` para cobrança via Click to Pay
          enum: [wallet]
        walletPayment:
          type: string
          description: Tipo de pagamento, usar `credit` para cobrança por cartão de crédito
          enum: [credit]
        walletClickToPay:
          type: object
          description: Informações sobre o Click to Pay obtidas pelo SDK da Mastercard
          properties:
            dpaId:
              type: string
              description: Identificador do Click to Pay
            correlationId:
              type: string
              description: Identificador da correlação do Click to Pay
            flowId:
              type: string
              description: Identificador do fluxo do Click to Pay
            merchantTransactionId:
              type: string
              description: Identificador da transação do Click to Pay
      required:
        - sourceType
        - walletPayment
        - walletClickToPay
    SourceTypeCustomerData:
      title: Pagamentos com dados de Customer
      type: object
      description: Dados do customer para cobrança via Cartão, Pix ou Boleto
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança, usar `customer` para cobrança via Cartão, Pix ou Boleto
          enum: [customer]
        customer:
          type: object
          properties:
            name:
              type: string
              description: Nome do usuario
            email:
              type: string
              description: Email do usuario
            phoneNumber:
              type: string
              description: Telefone de contato do usuario
            document:
              allOf:
                - $ref: "#/components/schemas/Document"
            address:
              allOf:
                - $ref: "#/components/schemas/Address"
          required:
            - email
            - phoneNumber
            - document
      required:
        - sourceType
        - customer
    SourceTypeCardOneShot:
      title: Cartão one shot
      type: object
      description: Dados do cartão para cobrança direta
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança, usar `card` para cobrança direta no cartão
          enum: [card]
        card:
          type: object
          properties:
            cardHolderName:
              type: string
              description: Nome do portador do cartão quando cobrança sem tokenização
            cardNumber:
              type: string
              description: Número do cartão quando cobrança sem tokenização
            cardCvv:
              type: string
              description: Código de verificação cobrança sem tokenização
            cardExpirationDate:
              type: string
              description: Mês e ano de validade no formato MM/YYYY quando cobrança sem tokenização
      required:
        - sourceType
        - cardHolderName
        - cardNumber
        - cardCvv
        - cardExpirationDate
    PaymentMethodCard:
      type: object
      title: Cartão
      properties:
        paymentType:
          type: string
          enum: [credit, voucher]
          description: Método da cobrança via Cartão Crédito/Débito/Voucher
        installments:
          type: number
          description: Quantidade de parcelas para cobrança do tipo credito
        recurrence:
          type: string
          enum: [initial, subsequent, unscheduled]
          description: Indica se a transação é recorrente. Pode assumir o valor `initial` (primeira transação recorrente), `subsequent` (transação recorrente que não é a primeira) ou `unscheduled` (cobrança avulsa dentro de contexto de assinatura recorrente para ajustar débitos).
      required:
        - paymentType
    PaymentMethodPix:
      title: Pix
      properties:
        paymentType:
          type: string
          enum: [pix]
          description: Método da cobrança via PIX, o source deve ser um customer válido
        expiresIn:
          type: number
          description: Tempo em segundos que define a validade da cobrança
        additionalInfo:
          type: array
          description: Informações adicionais sobre o pagamento
          items:
            $ref: "#/components/schemas/PixAdditionalInfo"
        items:
          type: array
          description: Informações sobre itens que estão sendo pagos
          items:
            $ref: "#/components/schemas/PixItem"
      required:
        - paymentType
        - expiresIn
    PaymentMethodBoleto:
      title: Boleto
      properties:
        paymentType:
          type: string
          enum: [boleto]
          description: Método da cobrança via Boleto, o source deve ser um customer válido
        expiresDate:
          type: string
          description: Data de vencimento do boleto em ISO-Date, ex 2017-01-31
          default: 7 dias contados da data atual
        instructions:
          type: string
          nullable: true
          maxLength: 255
          description: |
            Campo instruções do boleto. Opcional. Quando informado, deve ter entre 1 e 255 caracteres (não é permitida string vazia). Utilize `\n` para quebra de linha. Valores em branco ou acima do limite retornam `400 Bad Request`.
        interest:
          type: object
          description: Informações opcionais da condição de juros para pagamento em atraso
          properties:
            days:
              type: integer
              description: Dias após a expiração do boleto quando o juros deve ser cobrado.
            amount:
              type: integer
              description: Valor em centavos da taxa de juros que será cobrado ao dia.
            percentage:
              type: number
              description: Valor em porcentagem da taxa de juros que será cobrado ao mês.
        fine:
          type: object
          description: Informações opcionais da condição de multa para pagamento em atraso
          properties:
            days:
              type: integer
              description: Dias após a expiração do boleto quando a multa deve ser cobrada.
            amount:
              type: integer
              description: Valor em centavos da multa.
            percentage:
              type: number
              description: Valor em porcentagem da multa.
        items:
          type: object
          description: Informações dos itens de pedido
          properties:
            id:
              type: string
              description: Identificador do item
            title:
              type: string
              description: Descrição do item
            unitPrice:
              type: integer
              description: Valor unitário do item.
            quantity:
              type: integer
              description: Quantidade do item
      required:
        - paymentType
    PaymentMethodNuPay:
      title: NuPay
      type: object
      properties:
        paymentType:
          type: string
          enum: [nupay]
          description: Método da cobrança via NuPay
        delayToAutoCancel:
          type: integer
          default: 30
          description: Tempo em minutos para a expiração de uma cobrança criada que não tenha sido paga
        orderUrl:
          type: string
          description: URL da cobrança
        returnUrl:
          type: string
          description: URL para a qual o cliente será redirecionado após finalizar o pagamento
        cancelUrl:
          type: string
          description: URL para onde o cliente será direcionado caso escolha não finalizar o pagamento e cancele o pedido
        taxValue:
          type: integer
          description: Montante do total de taxas aplicadas em centavos
        recipients:
          type: array
          description: Beneficiários finais da transação NuPay (PLDFT). Campo opcional.
          items:
            $ref: "#/components/schemas/NupayRecipient"
      required:
        - paymentType
    PaymentMethodClickToPay:
      title: Click to Pay
      type: object
      properties:
        paymentType:
          type: string
          enum: [click_to_pay]
          description: Método da cobrança via Click to Pay
        installments:
          type: number
          description: Quantidade de parcelas para cobrança do tipo Click to Pay
      required:
        - paymentType
    PaymentSessionNuPay:
      title: NuPay
      type: object
      properties:
        paymentType:
          type: string
          enum: [nupay]
          description: Método da cobrança via NuPay
      required:
        - paymentType
    PaymentMethodPicpay:
      type: object
      title: Picpay
      properties:
        paymentType:
          type: string
          enum: [picpay]
          description: Método da cobrança via Picpay
      required:
        - paymentType
    PaymentMethodApplePay:
      title: Apple Pay
      type: object
      properties:
        paymentType:
          type: string
          enum: [apple_pay]
          description: Método da cobrança via Apple Pay
        installments:
          type: number
          description: Quantidade de parcelas para cobrança do tipo Apple Pay crédito
      required:
        - paymentType
    PaymentMethodVoucher:
      type: object
      title: Voucher
      properties:
        paymentType:
          type: string
          enum: [voucher]
          description: Método da cobrança via Voucher
        items:
          type: array
          description: Informações sobre itens do pedido
          items:
            $ref: "#/components/schemas/VoucherItem"
        customer:
          type: object
          description: Informações sobre o cliente
          allOf:
            - $ref: "#/components/schemas/VoucherCustomer"
      required:
        - paymentType
    PaymentMethodDrip:
      type: object
      title: Drip
      properties:
        paymentType:
          type: string
          enum: [drip]
          description: Método da cobrança via Drip
        maxInstallments:
          type: number
          description: Quantidade de parcelas máxima a serem pagos com a Drip
        browser:
          description: Informações sobre o navegador do usuário
          allOf:
            - $ref: "#/components/schemas/DripBrowser"
        items:
          type: array
          description: Informações sobre itens que estão sendo pagos
          items:
            $ref: "#/components/schemas/DripItem"
        cancelRedirectUrl:
          type: string
          description: Link de redirecionamento em caso de cancelamento do pagamento no ambiente de checkout da Drip
        successRedirectUrl:
          type: string
          description: Link de redirecionamento em caso de aprovação do pagamento no ambiente de checkout da Drip
        firstInstallmentsDate:
          type: string
          description: Data para realizar o pagamento da primeira parcela
        totalInstallments:
          type: number
          description: Número total de parcelas para o pagamento
        finePercentage:
          type: number
          description: Porcentagem da multa
        interestPercentage:
          type: number
          description: Porcentagem do juros
        cancellationFeePercentage:
          type: number
          description: Porcentagem para a taxa de cancelamento
        minutesToExpire:
          type: integer
          description: Tempo em minutos para expiração da transação após sua criação
      required:
        - paymentType
    PaymentMethodCardObject:
      title: Cartão de crédito
      type: object
      properties:
        paymentType:
          type: string
          enum: [credit, debit]
          description: Método da cobrança via Cartão Crédito/Débito
        installments:
          type: number
          description: Quantidade de parcelas para cobrança do tipo credito
        recurrence:
          type: string
          enum: [initial, subsequent, unscheduled]
          description: Indica se a transação é recorrente. Pode assumir o valor `initial` (primeira transação recorrente), `subsequent` (transação recorrente que não é a primeira) ou `unscheduled` (cobrança avulsa dentro de contexto de assinatura recorrente para ajustar débitos).
        threeDS:
          type: object
          description: Informações sobre o 3DS2
          properties:
            enabled:
              type: boolean
              description: Indica se o 3DS2 deve ser utilizado
            liabilityShiftRequired:
              type: boolean
              default: true
              description: Se verdadeiro, só continuará a cobrança caso haja transferência de responsabilidade pro banco emissor
      required:
        - paymentType
    PaymentMethodCardObjectRequest:
      title: Cartão de crédito
      type: object
      properties:
        paymentType:
          type: string
          enum: [credit]
          description: Método da cobrança via cartão de crédito.
        installments:
          type: integer
          minimum: 1
          description: Quantidade de parcelas da cobrança.
        recurrence:
          type: string
          enum: [initial, subsequent, unscheduled]
          description: Indica se a transação é recorrente. Pode assumir o valor `initial` (primeira transação recorrente), `subsequent` (transação recorrente que não é a primeira) ou `unscheduled` (cobrança avulsa em contexto de assinatura recorrente).
        threeDS:
          type: object
          description: Configurações de autenticação 3DS2.
          properties:
            enabled:
              type: boolean
              description: Indica se o 3DS2 deve ser utilizado.
            liabilityShiftRequired:
              type: boolean
              default: true
              description: Indica se a autenticação deve exigir transferência de responsabilidade.
      required:
        - paymentType
        - installments
    PaymentMethodApplePayObject:
      title: ApplePay
      type: object
      properties:
        paymentType:
          type: string
          enum: [apple_pay]
          description: Método da cobrança via Apple Pay
        installments:
          type: number
          description: Quantidade de parcelas para cobrança do tipo apple pay crédito
      required:
        - paymentType
    PaymentMethodPixObject:
      title: Pix
      properties:
        paymentType:
          type: string
          enum: [pix]
          description: Método da cobrança via PIX, o source deve ser um customer válido.
        expiresIn:
          type: number
          description: Tempo em segundos que define a validade da cobrança.
        qrCodeData:
          type: string
          description: Código copia e cola para o QR code dinâmico gerado, pronto para ser pago.
        qrCodeImageUrl:
          type: string
          description: Link para download da imagem do QR code dinâmico gerado, pronto para ser scaneado e pago.
      required:
        - paymentType
        - expiresIn
        - qrCodeData
        - qrCodeImageUrl
    PaymentMethodPixObjectRequest:
      title: Pix
      properties:
        paymentType:
          type: string
          enum: [pix]
          description: Método da cobrança via PIX, o source deve ser um customer válido.
        expiresIn:
          type: integer
          minimum: 1
          maximum: 2147483647
          description: Tempo em segundos que define a validade da cobrança.
      required:
        - paymentType
        - expiresIn
    PaymentMethodBoletoObject:
      title: Boleto
      properties:
        paymentType:
          type: string
          enum: [boleto]
          description: Método da cobrança via Boleto, o source deve ser um customer válido
        expiresDate:
          type: string
          description: Data de vencimento do boleto em ISO-Date, ex 2017-01-31
          default: 7 dias contados da data atual
        instructions:
          type: string
          nullable: true
          maxLength: 255
          description: Campo instruções do boleto. Máximo de 255 caracteres. Obs. Utilizar \\n para quebra de linha
        barcodeData:
          type: string
          description: Código copia e cola do boleto registrado gerado, pronto para pagamento;
        barcodeImageUrl:
          type: string
          description: Link para download do do boleto registrado gerado, pronto para pagamento;
      required:
        - paymentType
        - expiresDate
        - barcodeData
        - barcodeImageUrl
    PaymentMethodBoletoObjectRequest:
      title: Boleto
      properties:
        paymentType:
          type: string
          enum: [boleto]
          description: Método da cobrança via Boleto, o source deve ser um customer válido
        expiresDate:
          type: string
          description: Data de vencimento do boleto em ISO-Date, ex 2017-01-31
          default: 7 dias contados da data atual
        instructions:
          type: string
          nullable: true
          maxLength: 255
          description: |
            Campo instruções do boleto. Opcional. Quando informado, deve ter entre 1 e 255 caracteres (string vazia não é aceita). Utilize `\\n` para quebra de linha. Valores em branco ou acima do limite retornam `400 Bad Request`.
        interest:
          type: object
          description: Informações opcionais da condição de juros para pagamento em atraso
          properties:
            days:
              type: integer
              description: Dias após a expiração do boleto quando o juros deve ser cobrado.
            amount:
              type: integer
              description: Valor em centavos da taxa de juros que será cobrado ao dia.
            percentage:
              type: number
              description: Valor em porcentagem da taxa de juros que será cobrado ao mês.
        fine:
          type: object
          description: Informações opcionais da condição de multa para pagamento em atraso
          properties:
            days:
              type: integer
              description: Dias após a expiração do boleto quando a multa deve ser cobrada.
            amount:
              type: integer
              description: Valor em centavos da multa.
            percentage:
              type: number
              description: Valor em porcentagem da multa.
      required:
        - paymentType
        - expiresDate
    PaymentMethodDripObjectRequest:
      title: Drip
      type: object
      properties:
        paymentType:
          type: string
          enum: [drip]
          description: Método da cobrança via Drip
        cancelRedirectUrl:
          type: string
          description: Link de redirecionamento em caso de cancelamento do pagamento no ambiente de checkout da Drip
        successRedirectUrl:
          type: string
          description: Link de redirecionamento em caso de aprovação do pagamento no ambiente de checkout da Drip
      required:
        - paymentType
    PaySessionPaymentMethodDripObjectRequest:
      title: Drip
      type: object
      properties:
        paymentType:
          type: string
          enum: [drip]
          description: Método da cobrança via Drip
        browser:
          description: Informações sobre o navegador do usuário
          allOf:
            - $ref: "#/components/schemas/DripBrowser"
      required:
        - paymentType
    PaySessionPaymentMethodDripObjectResponse:
      type: object
      properties:
        paymentType:
          type: string
          enum: [drip]
          description: Método da cobrança via Drip
        browser:
          description: Informações sobre o navegador do usuário
          allOf:
            - $ref: "#/components/schemas/DripBrowser"
        paymentUrl:
          type: string
          description: URL para pagamento da cobrança Drip
        cancelRedirectUrl:
          type: string
          description: Link de redirecionamento em caso de cancelamento do pagamento no ambiente de checkout da Drip
        successRedirectUrl:
          type: string
          description: Link de redirecionamento em caso de aprovação do pagamento no ambiente de checkout da Drip
        checkoutId:
          type: string
          description: Id do checkout gerado na drip
        paymentQrCode:
          type: string
          description: Link do qrcode para pagamento
        paymentQrCodeText:
          type: string
          description: Texto do qrcode para pagamento
        upfrontPaymentAmount:
          type: number
          description: Valor para pagamento do qrcode gerado
      required:
        - paymentType
    PaymentMethodNupayObjectRequest:
      title: NuPay
      type: object
      properties:
        paymentType:
          type: string
          enum: [nupay]
          description: Método da cobrança via Nupay
        orderUrl:
          type: string
          description: URL da cobrança
        delayToAutoCancel:
          type: integer
          description: Tempo em minutos para a expiração de uma cobrança criada que não tenha sido paga
        returnUrl:
          type: string
          description: URL para a qual o cliente será redirecionado após finalizar o pagamento
        cancelUrl:
          type: string
          description: URL para onde o cliente será direcionado caso escolha não finalizar o pagamento e cancele o pedido
        recipients:
          type: array
          description: Beneficiários finais da transação NuPay (PLDFT). Campo opcional.
          items:
            $ref: "#/components/schemas/NupayRecipient"
      required:
        - paymentType
    NupayRecipient:
      title: Beneficiário final NuPay
      type: object
      properties:
        referenceId:
          type: string
          description: Identificador único do beneficiário final
        name:
          type: string
          description: Nome ou razão social do beneficiário final
        document:
          allOf:
            - $ref: "#/components/schemas/Document"
        amount:
          type: integer
          description: Valor atribuído ao beneficiário final, em centavos
      required:
        - referenceId
        - name
        - document
        - amount
    PaymentMethodClickToPayObjectRequest:
      title: Click to Pay
      type: object
      properties:
        paymentType:
          type: string
          enum: [click_to_pay]
          description: Método da cobrança via Click to Pay
        installments:
          type: integer
          minimum: 1
          description: Quantidade de parcelas para cobrança do tipo Click to Pay
      required:
        - paymentType
        - installments
    PaymentMethodNuPayObject:
      title: NuPay
      properties:
        paymentType:
          type: string
          enum: [nupay]
          description: Método da cobrança via NuPay, o source deve ser um customer válido
        taxValue:
          type: integer
          description: Montante do total de taxas aplicadas em centavos
        delayToAutoCancel:
          type: integer
          default: 30
          description: Tempo em minutos para a expiração de uma cobrança criada que não tenha sido paga
        orderUrl:
          type: string
          description: URL da cobrança
        returnUrl:
          type: string
          description: URL para a qual o cliente será redirecionado após finalizar o pagamento
        cancelUrl:
          type: string
          description: URL para onde o cliente será direcionado caso escolha não finalizar o pagamento e cancele o pedido
      required:
        - paymentType
    PaymentMethodDripObject:
      title: Drip
      type: object
      properties:
        paymentType:
          type: string
          enum: [drip]
          description: Método da cobrança via Drip
        browser:
          description: Informações sobre o navegador do usuário
          allOf:
            - $ref: "#/components/schemas/DripBrowser"
        items:
          type: array
          description: Informações sobre itens que estão sendo pagos
          items:
            $ref: "#/components/schemas/DripItem"
        cancelRedirectUrl:
          type: string
          description: Link de redirecionamento em caso de cancelamento do pagamento no ambiente de checkout da Drip
        successRedirectUrl:
          type: string
          description: Link de redirecionamento em caso de aprovação do pagamento no ambiente de checkout da Drip
        paymentUrl:
          type: string
          description: URL para pagamento da cobrança Drip
      required:
        - paymentType
    PaymentMethodVoucherObject:
      title: Voucher
      type: object
      properties:
        paymentType:
          type: string
          enum: [voucher]
          description: Método da cobrança via Voucher
        items:
          type: array
          description: Informações sobre itens do pedido
          items:
            $ref: "#/components/schemas/VoucherItem"
        customer:
          type: object
          description: Informações sobre o cliente
          allOf:
            - $ref: "#/components/schemas/VoucherCustomer"
      required:
        - paymentType
    SourceTypeCardObject:
      title: Cartão de crédito
      type: object
      description: Dados para cobrança por cartão de crédito salve
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança
          enum: [card]
        cardId:
          type: string
          format: uuid
          description: Identificador do cartão quando source tipo card
      required:
        - sourceType
        - cardId
    SourceTypeWalletObject:
      title: Wallet
      type: object
      description: Dados para cobrança por apple pay
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança
          enum: [wallet]
        walletPayment:
          type: string
          description: Forma de cobrança
          enum: [credit]
        paymentData:
          type: object
          description: Dados da wallet para cobrança
          properties:
            data:
              type: string
              description: Dados para pagamento em base64
            signature:
              type: string
              description: Assinatura para os dados de pagamento e header
            version:
              type: string
              description: Versão da criptografia
            header:
              type: object
              properties:
                ephemeralPublicKey:
                  type: string
                  description: Chave x.509 em base64
      required:
        - sourceType
        - paymentData

    SourceTypeTokenObject:
      title: Cartão tokenizado
      type: object
      description: Dados para cobrança única de token de cartão
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança, usar `token` para cobrança no token gerado
          enum: [token]
        tokenId:
          type: string
          format: uuid
          description: Identificador do token quando source tipo token (opcional)
      required:
        - sourceType
        - tokenId
    SourceTypeCustomerObject:
      title: Customer
      type: object
      description: Identificador do comprador para cobrança
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança, usar `customer` para cobrança no cartão default do comprador
          enum: [customer]
        customerId:
          type: string
          format: uuid
          description: Identificador do cliente quando source tipo customer, debitando o cartão default do comprador
      required:
        - sourceType
        - customerId
    TokenRequest:
      properties:
        tokenização:
          description: Pode ser tokenizado o cartão e/ou cvv de acordo com a passagem dos atributos
          oneOf:
            - $ref: "#/components/schemas/TokenCard"
            - $ref: "#/components/schemas/TokenCvv"
      example:
        cardHolderName: "JOSE DAS NEVES"
        cardNumber: "4019598346009339"
        cardCvv: "123"
        cardExpirationDate: "12/2026"
    TokenCard:
      properties:
        cardHolderName:
          type: string
          description: Nome do portador do cartão
        cardNumber:
          type: string
          description: Número do cartão (Sem espaços)
        cardCvv:
          type: string
          description: Código de verificação
        cardExpirationDate:
          type: string
          description: Mês e ano de validade no formato MM/YYYY
      required:
        - cardHolderName
        - cardNumber
        - cardCvv
        - cardExpirationDate
    TokenCvv:
      properties:
        cvvUpdate:
          type: string
          description: Código de verificação
      required:
        - cvvUpdate
    SetupRequest:
      type: object
      description: Dados para criar um setup
      oneOf:
        - $ref: "#/components/schemas/SourceTypeCardObject"
        - $ref: "#/components/schemas/SourceTypeTokenObject"
      example:
        sourceType: "card"
        cardId: "148d5db0-f1c3-439f-902d-f1f268086e1d"

    CardRequest:
      required:
        - tokenId
      properties:
        tokenId:
          type: string
          format: uuid
          description: Identificador do token gerado
        merchantId:
          type: string
          format: uuid
          description: Caso queria validar o cartão via zero dollar, informe o merchantId que possui pelo menos 1 provedor com suporte a validação zero dollar.
        cvvCheck:
          type: boolean
          description: Mesmo informando o merchantId, é possível desabilitar a validação do cvv (zero dollar). Informe true para validar ou false para pular a validação. Caso você informe false, a verificação será pulada e o cartão será criado como pending necessitando validar via uma transação.
    CardList:
      properties:
        meta:
          type: object
          allOf:
            - $ref: "#/components/schemas/MetaPagination"
        items:
          type: array
          allOf:
            - $ref: "#/components/schemas/Card"
    ChargeList:
      properties:
        meta:
          type: object
          allOf:
            - $ref: "#/components/schemas/MetaPaginationCache"
        items:
          type: array
          allOf:
            - $ref: "#/components/schemas/Charge"
    SessionList:
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/SessionResponse"
        meta:
          type: object
          allOf:
            - $ref: "#/components/schemas/MetaPagination"
    CustomerList:
      properties:
        meta:
          type: object
          allOf:
            - $ref: "#/components/schemas/MetaPagination"
        items:
          type: array
          allOf:
            - $ref: "#/components/schemas/Customer"
    MetaPagination:
      properties:
        itemCount:
          type: integer
          description: Quantidade de itens na página
        totalItems:
          type: integer
          description: Quantidade total de itens na consulta (esse valor é mantido em cache por 5 minutos para melhorar a performance da API)
        itemsPerPage:
          type: integer
          description: Quantidade de itens por página
        totalPages:
          type: integer
          description: Quantidade total de páginas
        currentPage:
          type: integer
          description: Página atual
    MetaPaginationCache:
      properties:
        itemCount:
          type: integer
          description: Quantidade de itens na página
        totalItems:
          type: integer
          description: Quantidade total de itens na consulta (esse valor é cacheado por 5 minutos para melhorar a performance da API)
        itemsPerPage:
          type: integer
          description: Quantidade de itens por página
        totalPages:
          type: integer
          description: Quantidade total de páginas
        currentPage:
          type: integer
          description: Página atual
    Card:
      properties:
        id:
          type: string
          description: ID do cartão
        expirationMonth:
          type: string
          description: Data de expiração MM
        expirationYear:
          type: string
          description: Data de expiração YYYY
        brand:
          type: string
          enum: [American Express, Mastercard, Visa, Elo, Discover, JCB, Diners]
          description: Bandeira
        cvvChecked:
          type: boolean
          description: Identifica se o CVV foi verificado
        fingerprint:
          type: string
          description: Hash de identificação única do cartão com base nos dados sensíveis
        first6digits:
          type: string
          description: Primeiros 6 digitos do cartão
        last4digits:
          type: string
          description: Últimos 4 digitos do cartão
        status:
          type: string
          enum: [failed, active, pending]
          description: Status de validação dos dados cartões, failed (cartão inválido para uso), active (cartão válido para uso), pending (validação do cartão pendente, uso autorizado temporariamente)
        statusReason:
          type: string
          description: Contém uma string com um breve descritivo informando o motivo do status do cartão. Em alguns casos uma string vazia é retornada.
        createdAt:
          type: string
          description: Data de criação do cartão
        updatedAt:
          type: string
          description: Data de atualização do cartão
        customer:
          allOf:
            - $ref: "#/components/schemas/Customer"
        tokens:
          type: array
          items:
            $ref: "#/components/schemas/NetworkToken"
          description: Lista de tokens externos associados ao cartão
    CardToken:
      properties:
        id:
          type: string
          description: ID do cartão
        status:
          type: string
          enum: [failed, active, pending]
          description: Status de validação dos dados cartões, failed (cartão inválido para uso), active (cartão válido para uso), pending (validação do cartão pendente, uso autorizado temporariamente)
        statusReason:
          type: string
          description: Contém uma string com um breve descritivo informando o motivo do status do cartão. Em alguns casos uma string vazia é retornada.
        createdAt:
          type: string
          description: Data de criação do cartão
        clientId:
          type: string
          description: Identificação do cliente
        brand:
          type: string
          enum: [American Express, Mastercard, Visa, Elo, Discover, JCB, Diners]
          description: Bandeira do cartão
        cardHolderName:
          type: string
          description: Nome do cliente do cartão
        cvvChecked:
          type: boolean
          description: Identifica se o CVV foi verificado
        fingerprint:
          type: string
          description: Hash de identificação única do cartão com base nos dados sensíveis
        first6digits:
          type: string
          description: Primeiros 6 digitos do cartão
        last4digits:
          type: string
          description: Últimos 4 digitos do cartão
        customerId:
          type: string
          description: Identificador de comprador na Malga para consulta futura - Integração com a API de customer
        expirationMonth:
          type: string
          description: Data de expiração MM
        expirationYear:
          type: string
          description: Data de expiração YYYY
        tokens:
          type: array
          items:
            $ref: "#/components/schemas/NetworkToken"
          description: Lista de tokens externos associados ao cartão
    NetworkToken:
      properties:
        id:
          type: string
          description: Identificador do token
        status:
          type: string
          description: Status atual do token
          enum: [failed, active, suspended, deleted]
        type:
          type: string
          description: Tipo de token externo
          enum: [network_token]
        providerType:
          type: string
          description: Provedor de tokenização usado
        updatedAt:
          type: string
          description: Última data de atualização do token
    AuthRequest:
      properties:
        scope:
          type: string
          description: Determina o escopo de endpoints que a chave terá acesso. Use `graphql` para a Analytics API (`POST /v1/graphql`)
          enum:
            [
              customers,
              cards,
              tokens,
              charges,
              webhooks,
              sessions,
              auth,
              flows,
              sellers,
              providers,
              subscriptions,
              graphql,
            ]
        expires:
          type: number
          description: Prazo de validade da chave em segundos a partir da criação, zero para não expirar
          default: 0
    AuthResponse:
      properties:
        scope:
          type: string
          description: Determina o escopo de endpoints que a chave terá acesso. Use `graphql` para a Analytics API (`POST /v1/graphql`)
          enum:
            [
              customers,
              cards,
              tokens,
              charges,
              webhooks,
              sessions,
              auth,
              reports,
              flows,
              sellers,
              providers,
              subscriptions,
              graphql,
            ]
        expires:
          type: number
          description: Prazo de validade da chave em segundos a partir da criação, zero para não expirar
        clientId:
          type: string
          format: uuid
          description: Identificador do cliente na Malga
        publicKey:
          type: string
          format: uuid
          description: Chave pública criada
    ErrorResponse:
      properties:
        error:
          type: object
          allOf:
            - $ref: "#/components/schemas/ErrorItem"
    FailedDependencyResponse:
      properties:
        error:
          type: object
          allOf:
            - $ref: "#/components/schemas/FailedDependencyItem"
    ErrorItem:
      properties:
        type:
          type: string
          enum: [api_error, bad_request, invalid_request_error, card_declined]
        code:
          type: integer
          description: Código HTTP do erro (por exemplo, `422` em erros de regra de negócio).
        declinedCode:
          type: string
          description: Código de retorno da transação em caso de falha na autorização
        key:
          type: string
          description: "Chave estável que identifica o erro de negócio (ex.: `bank_identifier_required`). Útil para tratar o erro programaticamente, independente da mensagem traduzida."
        businessCode:
          type: string
          description: |
            Chave estável de regra de negócio retornada em `422`. Permite tratar o erro programaticamente independente da mensagem traduzida. Exemplos em sessões: `pix_boleto_multiple_payments_not_allowed`, `pix_boleto_one_to_one_reactivation_blocked`, `platform_fee_exceeds_link_amount`, `session_disabled`, `multiple_payments_limit_reached`.
        message:
          type: string
          description: Descrição breve do erro
        details:
          type: array
          description: Lista contendo objetos que detalham o erro de validação

    FailedDependencyItem:
      properties:
        type:
          type: string
          enum: [failed_dependency]
        declinedCode:
          type: string
          description: Código 424 que indica que um serviço externo retornou um erro, seja de validação ou de indisponibilidade
        message:
          type: string
          description: Breve descrição do erro
        details:
          type: array
          description: Lista contendo objetos que detalham do erro de requisição que tivemos ao solicitar um serviço externo
      required:
        - type
    Pagarme_v5:
      title: Pagarme_v5
      properties:
        type:
          type: string
          enum:
            - PAGARME_V5
        secretKey:
          type: string
          description: Credencial de uso da sua conta na Pagarme
      required:
        - type
        - secretKey
    PagSeguro:
      title: PagSeguro
      properties:
        type:
          type: string
          enum:
            - PAGSEGURO
        token:
          type: string
          description: Token de uso na API V4 da pagseguro
        email:
          type: string
          description: Email do usuário da conta principal da paseguro
      required:
        - type
        - token
        - email
    PayPal:
      title: PayPal
      properties:
        type:
          type: string
          enum:
            - PAYPAL
        clientId:
          type: string
          description: Credencial de uso da sua conta no Paypal
        clientSecret:
          type: string
          description: Credencial de uso da sua conta no Paypal
      required:
        - type
        - clientId
        - clientSecret
    Cielo:
      title: Cielo
      properties:
        type:
          type: string
          enum:
            - CIELO
        merchantKey:
          type: string
          description: Credencial de uso da sua conta na Cielo
        merchantId:
          type: string
          description: Credencial de uso da sua conta na Cielo
      required:
        - type
        - merchantKey
        - merchantId
    BS2:
      title: BS2
      properties:
        type:
          type: string
          enum:
            - BS2
        clientKey:
          type: string
          description: Credencial de uso da sua conta no BS2
        clientSecret:
          type: string
          description: Credencial de uso da sua conta no BS2
        pixKey:
          type: string
          description: Chave pix da sua conta no BS2
      required:
        - type
        - clientKey
        - clientSecret
        - pixKey
    BS2_BOLETO:
      title: BS2_BOLETO
      properties:
        type:
          type: string
          enum:
            - BS2_BOLETO
        clientKey:
          type: string
          description: Credencial de uso da sua conta no BS2
        clientSecret:
          type: string
          description: Credencial de uso da sua conta no BS2
        refreshToken:
          type: string
          description: Credencial de uso da sua conta no BS2
      required:
        - type
        - clientKey
        - clientSecret
        - refreshToken
    BB:
      title: BB
      properties:
        type:
          type: string
          enum:
            - BB
        authBasic:
          type: string
          description: Credencial de uso da sua conta no Banco do Brasil
        devAppKey:
          type: string
          description: Credencial de uso da sua conta no Banco do Brasil
        pixKey:
          type: string
          description: Chave Pix da da sua conta no Banco do Brasil
        version:
          type: string
          enum:
            - "1"
            - "2"
          description: Versão da API PIX a ser integrada
        mtlsPemBase64:
          type: string
          description: (PIX V2) O conteúdo do seu certificado x509 em formato `.pem`, convertido para Base64
        mtlsPassPhrase:
          type: string
          description: (PIX V2) PassPhrase associada ao seu certificado
      required:
        - type
        - authBasic
        - devAppKey
        - pixKey
    Braintree:
      title: Braintree
      properties:
        type:
          type: string
          enum:
            - BRAINTREE
        merchantId:
          type: string
          description: Id do merchant da sua conta na Braintree
        publicKey:
          type: string
          description: Chave pública da sua conta na Braintree
        privateKey:
          type: string
          description: Chave privada da sua conta na Braintree
      required:
        - type
        - merchantId
        - publicKey
        - privateKey
    Klap:
      title: Klap
      properties:
        type:
          type: string
          enum:
            - KLAP
        apiKey:
          type: string
          description: Chave de API da sua conta na Klap
        commerceId:
          type: string
          description: ID do comércio da sua conta na Klap
        keyComponent1:
          type: string
          description: Componente 1 da sua chave na Klap
        keyComponent2:
          type: string
          description: Componente 2 da sua chave na Klap
      required:
        - type
        - apiKey
        - CommerceId
        - keyComponent1
        - keyComponent2
    Zoop:
      title: Zoop
      properties:
        type:
          type: string
          enum:
            - ZOOP
        marketplaceId:
          type: string
          description: Identificador do marketplace id na zoop
        sellerId:
          type: string
          description: Identificador do seller id na zoop
        apiKey:
          type: string
          description: Chave zpk de acesso a api da zoop
        xApiKeyToken:
          type: string
          description: Chave pra gerir throttle a api da zoop
        privateKey:
          type: string
          description: Chave privada de acesso a api da zoop - conteúdo do .key em base64
        publicKey:
          type: string
          description: Chave pública de acesso a api da zoop - conteúdo da .pem em base64
      required:
        - type
        - marketplaceId
        - sellerId
        - apiKey
        - xApiKeyToken
        - privateKey
        - publicKey
    Rede:
      title: Rede
      properties:
        type:
          type: string
          enum:
            - REDE
        merchantId:
          type: string
          description: Identificador do estabelecimento na rede
        apiKey:
          type: string
          description: Chave secreta de acesso a api da rede
      required:
        - type
        - merchantId
        - apiKey
    MercadoPago:
      title: MercadoPago
      properties:
        type:
          type: string
          enum:
            - MERCADO_PAGO
        accessToken:
          type: string
          description: Chave de acesso a API
      required:
        - type
        - accessToken
    Stripe:
      title: Stripe
      properties:
        type:
          type: string
          enum:
            - STRIPE
        secretKey:
          type: string
          description: Chave secreta de acesso a api da stripe
      required:
        - type
        - secretKey
    Clearsale:
      title: Clearsale
      properties:
        type:
          type: string
          enum:
            - CLEARSALE
        name:
          type: string
          description: Nome para a api da clearsale
        password:
          type: string
          description: Senha secreta de acesso a api da clearsale
        app:
          type: string
          description: Identificador do APP na ClearSale
      required:
        - type
        - name
        - password
    ClearsaleOptions:
      title: ClearsaleOptions
      properties:
        type:
          type: string
          enum:
            - ANTIFRAUD
        captureOnError:
          type: boolean
          description: Captura a transação em caso de erro no provedor antifraude
        captureOnApproved:
          type: boolean
          description: Captura a transação automaticamente caso o provedor antifraude aprove a transação
        refundOnError:
          type: boolean
          description: Estorna a transação em caso de erro no provedor antifraude
        refundOnReproved:
          type: boolean
          description: Estorna ou cancela a transação automaticamente caso o provedor antifraude reprove a transação
        runBeforeCharge:
          type: boolean
          description: Determina se o provedor antifraude é executado antes do provedor de cobrança
        productType:
          type: string
          enum:
            - SYNC
            - ASYNC
          description: Representa o tipo de produto de antifraude (síncrono ou assíncrono)
      required:
        - type
    B2E:
      title: B2E
      properties:
        type:
          type: string
          enum:
            - B2E
        user:
          type: string
          description: User para a API da b2e
        password:
          type: string
          description: Senha secreta de acesso a API da b2e
        merchantId:
          type: string
          description: Identificador do merchant na b2e
      required:
        - type
        - user
        - password
        - merchantId
    B2EOptions:
      title: B2EOptions
      properties:
        type:
          type: string
          enum:
            - ANTIFRAUD
        productType:
          type: string
          enum:
            # - SYNC
            - ASYNC
          description: Representa o tipo de produto de antifraude
      required:
        - type
    NuPay:
      title: NuPay
      properties:
        type:
          type: string
          enum:
            - NUPAY
        merchantApiToken:
          type: string
          description: Token de API da NuPay
        merchantApiKey:
          type: string
          description: Chave de API da NuPay
      required:
        - type
        - merchantApiToken
        - merchantApiKey
    NuPayOptions:
      title: NuPayOptions
      properties:
        type:
          type: string
          enum:
            - NUPAY
        merchantName:
          type: string
          description: Nome do merchant a ser utilizado nas transações NuPay
        storeName:
          type: string
          description: Nome da loja a ser utilizada nas transações NuPay
      required:
        - type
    Adyen:
      title: Adyen
      properties:
        type:
          type: string
          enum:
            - ADYEN
        apiKey:
          type: string
          description: Chave de API da Adyen
        liveUrlPrefix:
          type: string
          description: Prefixo de URL de produção da Adyen, não inserir o http:// ou https://
        webhookHmacKey:
          type: string
          description: Chave HMAC para validação de webhook
        merchantAccount:
          type: string
          description: Conta do Merchant da Adyen
        version:
          type: string
          description: Versão da API da Adyen
      required:
        - type
        - apiKey
        - liveUrlPrefix
        - merchantAccount
    GetnetSep:
      title: GetnetSep
      properties:
        type:
          type: string
          enum:
            - GETNET_SEP
        clientApiKey:
          type: string
          description: ClientApiKey da GetnetSep
        clientSecret:
          type: string
          description: Client secret da GetnetSep
        sellerId:
          type: string
          description: Seller ID da GetnetSep
      required:
        - clientApiKey
        - clientSecret
        - sellerId
    Vr:
      title: Vr
      properties:
        affiliationId:
          type: string
          description: Identificação de afiliação do vr
      required:
        - affiliationId
    Braspag:
      title: Braspag
      properties:
        type:
          type: string
          enum:
            - BRASPAG
        clientSecret:
          type: string
          description: Credencial para uso da sua conta na Braspag
        merchantId:
          type: string
          description: Identificador da loja na Braspag
        merchantKey:
          type: string
          description: Chave pública para autenticação dupla na Braspag
      required:
        - type
        - clientSecret
        - merchantId
        - merchantKey
    Drip:
      title: Drip
      properties:
        type:
          type: string
          enum:
            - DRIP
        secretKey:
          type: string
          description: Secret key da sua conta Drip
      required:
        - type
        - secretKey
    Worldpay:
      title: Worldpay
      properties:
        type:
          type: string
          enum:
            - WORLDPAY
        merchantCode:
          type: string
          description: Código do seu merchant Worldpay
        userAPI:
          type: string
          description: Usuário Worldpay
        senha:
          type: string
          description: Senha Worldpay
      required:
        - type
        - merchantCode
        - userAPI
        - senha
    Safrapay:
      title: Safrapay
      properties:
        type:
          type: string
          enum:
            - SAFRAPAY
        token:
          type: string
          description: Token do seu merchant Safrapay
      required:
        - token
    Mapinvest:
      title: Mapinvest
      properties:
        type:
          type: string
          enum:
            - MAPINVEST
        clientId:
          type: string
          description: ClientId do seu merchant Mapinvest
        clientSecret:
          type: string
          description: ClientSecret do seu merchant Mapinvest
        pixKey:
          type: string
          description: A chave pix do seu merchant Mapinvest
        publicKey:
          type: string
          description: PublicKey do seu merchant Mapinvest (mtls)
        privateKey:
          type: string
          description: PrivateKey do seu merchant Mapinvest (mtls)
      required:
        - token
    Bolt:
      title: Bolt
      properties:
        type:
          type: string
          enum:
            - BOLT
        gatewayId:
          type: string
          description: GatewayId da Bolt (infra da DXC)
        gatewayKey:
          type: string
          description: GatewayKey da Bolt (infra da DXC)
        merchantId:
          type: string
          description: MerchantId da Bolt (infra da DXC)
        merchantKey:
          type: string
          description: MerchantKey da Bolt (infra da DXC)
        merchantTerminal:
          type: string
          description: MerchantTerminal da Bolt (infra da DXC)
      required:
        - token
    Itau:
      title: Itaú
      properties:
        type:
          type: string
          enum:
            - ITAU
        pixSecretKey:
          type: string
          description: Chave secreta da API de PIX da sua conta Itaú
        pixClientId:
          type: string
          description: Client ID da API de PIX
        pixMtlsCert:
          type: string
          description: Certificado CSR em Base64
        pixMtlsCertKey:
          type: string
          description: Chave do Certificado CSR em Base64
        pixKey:
          type: string
          description: Chave PIX da conta
        boletoSecretKey:
          type: string
          description: Chave secreta da API de Boleto da sua conta Itaú
        boletoClientId:
          type: string
          description: Client ID da API de Boleto
        boletoMtlsCert:
          type: string
          description: Certificado CSR do Boleto em Base64
        boletoMtlsCertKey:
          type: string
          description: Chave do Certificado CSR do Boleto em Base64
        boletoBeneficiaryKey:
          type: string
          description: ID do Beneficiário que é a concatenação da Agência + Conta + DAC
    Barte:
      title: Barte
      properties:
        type:
          type: string
          enum:
            - BARTE
        tokenApi:
          type: string
          description: Token de API da Barte
      required:
        - type
        - tokenApi
    BarteOptions:
      title: BarteOptions
      properties:
        type:
          type: string
          enum:
            - BARTE
        paymentMethod:
          type: string
          enum:
            - CREDIT_CARD_EARLY_SELLER
            - CREDIT_CARD_EARLY_BUYER
          description: "Método de pagamento da Barte."
      required:
        - type
        - paymentMethod
    Picpay:
      title: Picpay
      properties:
        type:
          type: string
          enum:
            - PICPAY
        clientId:
          type: string
          description: Client_id da Picpay
        clientSecret:
          type: string
          description: Client_secret da Picpay

      required:
        - type
        - clientId
        - clientSecret
    Konduto:
      title: Konduto
      properties:
        type:
          type: string
          enum:
            - KONDUTO
        secretKey:
          type: string
          description: Chave secreta para integração da Konduto
        publicKey:
          type: string
          description: A chave pública identifica a sua loja na Konduto
      required:
        - type
        - secretKey
    Koin:
      title: Koin
      properties:
        type:
          type: string
          enum:
            - KOIN
        secretKey:
          type: string
          description: Chave secreta para integração da Koin
        orgId:
          type: string
          description: Identificador da organização na Koin
        storeName:
          type: string
          description: Identificador da loja utilizado para segmentar a análise de risco na Koin
      required:
        - type
        - secretKey
        - orgId
    ProviderDto:
      properties:
        name:
          type: string
          description: "Nome opcional de identificação do provedor"
        priority:
          type: number
          description: Define a prioridade do provedor no roteamento da transação (usar 1 para o prioritário)
        credentials:
          oneOf:
            - $ref: "#/components/schemas/PagSeguro"
            - $ref: "#/components/schemas/PayPal"
            - $ref: "#/components/schemas/Pagarme_v5"
            - $ref: "#/components/schemas/Cielo"
            - $ref: "#/components/schemas/Braspag"
            - $ref: "#/components/schemas/BS2"
            - $ref: "#/components/schemas/BS2_BOLETO"
            - $ref: "#/components/schemas/BB"
            - $ref: "#/components/schemas/Braintree"
            - $ref: "#/components/schemas/Klap"
            - $ref: "#/components/schemas/Zoop"
            - $ref: "#/components/schemas/Stripe"
            - $ref: "#/components/schemas/MercadoPago"
            - $ref: "#/components/schemas/Clearsale"
            - $ref: "#/components/schemas/NuPay"
            - $ref: "#/components/schemas/Adyen"
            - $ref: "#/components/schemas/GetnetSep"
            - $ref: "#/components/schemas/Vr"
            - $ref: "#/components/schemas/Drip"
            - $ref: "#/components/schemas/Worldpay"
            - $ref: "#/components/schemas/Safrapay"
            - $ref: "#/components/schemas/Mapinvest"
            - $ref: "#/components/schemas/Bolt"
            - $ref: "#/components/schemas/Barte"
            - $ref: "#/components/schemas/Picpay"
            - $ref: "#/components/schemas/Rede"
            - $ref: "#/components/schemas/Itau"
            - $ref: "#/components/schemas/B2E"
            - $ref: "#/components/schemas/Konduto"
            - $ref: "#/components/schemas/Koin"
        options:
          oneOf:
            - $ref: "#/components/schemas/ClearsaleOptions"
            - $ref: "#/components/schemas/NuPayOptions"
            - $ref: "#/components/schemas/BarteOptions"
            - $ref: "#/components/schemas/B2EOptions"
        acquirer:
          oneOf:
            - $ref: "#/components/schemas/MerchantAcquirerSingleMid"
            - $ref: "#/components/schemas/MerchantAcquirerMultipleMid"
      required:
        - name
        - priority
        - credentials
    CreateMerchantDto:
      properties:
        mcc:
          type: string
          description: Código de segmento do lojista no adquirente, solicite ao seu provedor caso não saiba qual o seu Merchant Category Code.
        name:
          type: string
          description: Nome do merchant que será exibido na Dashboard (Subcontas, Fluxos Inteligentes, etc.)
        merchantName:
          type: string
          description: Nome do merchant que será exibido em caso de desafio no 3DS. Caso esse merchant não use 3DS, esse campo é opcional.
        merchantUrl:
          type: string
          description: URL do merchant que serve como informativo durante a autenticação 3DS. Caso o merchant não use 3DS, esse campo é opcional.
        providers:
          $ref: "#/components/schemas/ProviderDto"
      required:
        - clientId
        - mcc
        - status
    UpdateMerchantDto:
      type: object
      properties:
        mcc:
          type: string
          description: Código de segmento do lojista no adquirente formado por quatro números, solicite ao seu provedor caso não saiba qual o seu Merchant Category Code.
        name:
          type: string
          description: Nome do merchant que será exibido na Dashboard (Subcontas, Fluxos Inteligentes, etc.)
        merchantName:
          type: string
          description: Nome do merchant que será exibido em caso de desafio no 3DS. Caso esse merchant não use 3DS, esse campo é opcional.
        merchantUrl:
          type: string
          description: URL do merchant que serve como informativo durante a autenticação 3DS. Caso o merchant não use 3DS, esse campo é opcional.
    UpdateProvidersDto:
      type: object
      properties:
        name:
          type: string
          description: Nome opcional de identificação do provedor
          example: "SANDBOX"
        credentials:
          type: object
          description: |
            Informe as credenciais fornecidas pelo provedor para autenticação. 

            Como exemplo, utilizamos as credenciais de SANDBOX, porém a estrutura pode variar conforme o provedor. Consulte a [API de criação de merchant](../merchants/criacao-de-novo-merchant-para-cobranca) para saber quais informações são exigidas pelo seu provedor.

            **ATENÇÃO:** Alterar as credenciais pode impactar a integração e interromper o funcionamento dos serviços. 
            Certifique-se de sempre validar as novas credenciais alteradas antes de atualizar.
          properties:
            type:
              type: string
              description: Tipo do provedor
              example: SANDBOX
            apiKey:
              type: string
              description: Chave de API para autenticação no ambiente
              example: "1234567890"
        acquirer:
          oneOf:
            - $ref: "#/components/schemas/MerchantAcquirerSingleMid"
            - $ref: "#/components/schemas/MerchantAcquirerMultipleMid"
    CreateProviderDto:
      type: object
      properties:
        name:
          type: string
          description: "Nome opcional de identificação do provedor"
        priority:
          type: number
          description: Define a prioridade do provedor no roteamento da transação, (usar 1 para o prioritário)
        credentials:
          oneOf:
            - $ref: "#/components/schemas/PagSeguro"
            - $ref: "#/components/schemas/PayPal"
            - $ref: "#/components/schemas/Pagarme_v5"
            - $ref: "#/components/schemas/Cielo"
            - $ref: "#/components/schemas/Braspag"
            - $ref: "#/components/schemas/BS2"
            - $ref: "#/components/schemas/BS2_BOLETO"
            - $ref: "#/components/schemas/BB"
            - $ref: "#/components/schemas/Braintree"
            - $ref: "#/components/schemas/Klap"
            - $ref: "#/components/schemas/Zoop"
            - $ref: "#/components/schemas/Stripe"
            - $ref: "#/components/schemas/MercadoPago"
            - $ref: "#/components/schemas/Clearsale"
            - $ref: "#/components/schemas/NuPay"
            - $ref: "#/components/schemas/Adyen"
            - $ref: "#/components/schemas/GetnetSep"
            - $ref: "#/components/schemas/Drip"
            - $ref: "#/components/schemas/Worldpay"
            - $ref: "#/components/schemas/Safrapay"
            - $ref: "#/components/schemas/Mapinvest"
            - $ref: "#/components/schemas/Bolt"
            - $ref: "#/components/schemas/Barte"
            - $ref: "#/components/schemas/Rede"
            - $ref: "#/components/schemas/Picpay"
        options:
          oneOf:
            - $ref: "#/components/schemas/ClearsaleOptions"
            - $ref: "#/components/schemas/NuPayOptions"
            - $ref: "#/components/schemas/BarteOptions"
      required:
        - name
        - priority
        - credentials
    UpdateProviderDto:
      type: object
      properties:
        name:
          type: string
          description: "Nome opcional de identificação do provedor"
        priority:
          type: number
          description: Define a prioridade do provedor no roteamento da transação, (usar 1 para o prioritário)
    Merchant:
      type: object
      properties:
        id:
          type: string
          description: Identificador do merchant
        createdAt:
          type: string
          description: Data de criação
        clientId:
          type: string
          format: uuid
          description: Identificador do client
        mcc:
          type: string
          description: Código mcc do cadatro do lojista no adquirente
        status:
          type: string
          enum:
            - active
            - deleted
            - pending
          description: Status do merchant
        providers:
          $ref: "#/components/schemas/ProviderDto"
        platformFeeEnabled:
          type: boolean
          description: Indica se o platform fee está ativo para o merchant
          example: false
        platformFees:
          type: array
          description: Regras de platform fee cadastradas para o merchant
          items:
            $ref: "#/components/schemas/PlatformFeeOutput"
    MerchantList:
      properties:
        meta:
          type: object
          allOf:
            - $ref: "#/components/schemas/MetaPagination"
        items:
          type: array
          items:
            $ref: "#/components/schemas/Merchant"
    CreatePlatformFeeDto:
      type: object
      required:
        - paymentMethod
      properties:
        percentage:
          type: number
          format: float
          minimum: 0
          maximum: 100
          description: Percentual da taxa (0-100) com até 2 casas decimais. Ao menos um entre `percentage` e `fixedAmount` deve ser informado.
          example: 2.5
        fixedAmount:
          type: integer
          minimum: 0
          description: Valor fixo da taxa em centavos (>= 0). Ao menos um entre `percentage` e `fixedAmount` deve ser informado.
          example: 50
        paymentMethod:
          type: string
          enum:
            - credit
            - pix
            - boleto
            - default
          description: >
            Método de pagamento ao qual a regra se aplica. Use `default` para regras de fallback
            quando não houver regra específica para o método da transação.
            Nota: `default` não aceita `installment`.
          example: credit
        installment:
          type: integer
          minimum: 1
          maximum: 24
          description: >
            Número de parcelas. **Obrigatório** quando `paymentMethod` for `credit`; **proibido** nos demais.
            O valor informado (1-24) é agrupado em faixas de parcelamento. Apenas uma regra por faixa é permitida por merchant.
            Faixas: à vista (1), 2x a 6x (2-6), 7x a 12x (7-12), 13x a 24x (13-24).
            O valor original é armazenado e retornado; a unicidade é validada por faixa.
          example: 5
    TogglePlatformFeeDto:
      type: object
      required:
        - enabled
      properties:
        enabled:
          type: boolean
          description: Define se o platform fee está ativo (`true`) ou inativo (`false`) para o merchant
          example: true
    TogglePlatformFeeResponse:
      type: object
      properties:
        platformFeeEnabled:
          type: boolean
          description: Estado atual do platform fee para o merchant
          example: true
    PlatformFeeOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador único da regra de platform fee
          example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        percentage:
          type: number
          format: float
          description: Percentual da taxa aplicado
          example: 2.5
          nullable: true
        fixedAmount:
          type: integer
          description: Valor fixo da taxa em centavos
          example: 50
          nullable: true
        paymentMethod:
          type: string
          enum:
            - credit
            - pix
            - boleto
            - default
          description: >
            Método de pagamento ao qual a regra se aplica (`default` indica regra de fallback).
          example: credit
        installment:
          type: integer
          description: >
            Número de parcelas informado na criação da regra. Presente apenas para `credit`;
            null para `pix`, `boleto` e `default`. A unicidade é validada por faixa:
            à vista (1), 2x a 6x (2-6), 7x a 12x (7-12), 13x a 24x (13-24).
          example: 5
          nullable: true
        createdAt:
          type: string
          format: date-time
          description: Data de criação da regra
          example: "2024-01-15T10:30:00.000Z"
        updatedAt:
          type: string
          format: date-time
          description: Data da última atualização da regra
          example: "2024-01-15T10:30:00.000Z"
    PlatformFeeListOutput:
      type: object
      required:
        - platformFeeEnabled
        - rules
      properties:
        platformFeeEnabled:
          type: boolean
          description: Indica se o platform fee está ativo para o merchant
          example: true
        rules:
          type: array
          description: Regras de platform fee ativas cadastradas para o merchant
          items:
            $ref: "#/components/schemas/PlatformFeeOutput"
    PlatformFeeAppliedOutput:
      type: object
      description: Snapshot da platform fee aplicada em uma cobrança (retorno transacional).
      required:
        - ruleId
        - paymentMethod
        - amount
        - appliedAt
      properties:
        ruleId:
          type: string
          format: uuid
          description: Identificador da regra de platform fee aplicada
        percentage:
          type: number
          format: float
          nullable: true
          description: Percentual da regra no momento da aplicação (quando houver)
        fixedAmount:
          type: integer
          nullable: true
          description: Valor fixo da regra em centavos no momento da aplicação (quando houver)
        paymentMethod:
          type: string
          description: Método de pagamento associado à regra aplicada (`credit`, `pix`, `boleto`, `default`, etc.)
        installment:
          type: integer
          minimum: 1
          maximum: 24
          nullable: true
          description: Parcelas informadas na regra aplicável; geralmente preenchido apenas para `credit`
        amount:
          type: integer
          description: Valor calculado da platform fee para a transação, em centavos
          example: 500
        appliedAt:
          type: string
          format: date-time
          description: Momento ISO 8601 em que a taxa foi aplicada no transacional
    Address:
      type: object
      properties:
        street:
          type: string
          description: Nome da rua/avenida/travessa
        streetNumber:
          type: string
          description: Número onde se localiza o endereço
        complement:
          type: string
          description: Complemento onde se localiza o endereço, caso exista
        zipCode:
          type: string
          description: Codigo postal CEP
        country:
          type: string
          description: Pais onde se localiza o endereço - Padrão ISO 3166-1 alpha-2
          default: BR
          enum:
            [
              "AL",
              "AD",
              "AR",
              "AT",
              "AU",
              "BA",
              "BZ",
              "BE",
              "BG",
              "BR",
              "BY",
              "CA",
              "CU",
              "CY",
              "CZ",
              "CH",
              "CL",
              "CN",
              "CO",
              "CR",
              "DE",
              "DK",
              "DO",
              "EC",
              "EE",
              "SV",
              "GT",
              "FI",
              "FR",
              "GB",
              "GR",
              "HR",
              "HK",
              "HU",
              "IS",
              "ID",
              "IE",
              "IN",
              "IL",
              "IT",
              "LI",
              "LT",
              "LU",
              "LV",
              "MK",
              "MC",
              "MD",
              "MT",
              "MU",
              "JP",
              "KR",
              "MX",
              "ME",
              "MY",
              "NL",
              "NZ",
              "NO",
              "PY",
              "PE",
              "PK",
              "PL",
              "PT",
              "RU",
              "RO",
              "SM",
              "RS",
              "SE",
              "SG",
              "TH",
              "TW",
              "TR",
              "SI",
              "SK",
              "ES",
              "UY",
              "UA",
              "US",
              "VE",
              "VN",
              "ZA",
            ]
        state:
          type: string
          description: Estado onde se localiza o endereço
        city:
          type: string
          description: Cidade onde se localiza o endereço
        district:
          type: string
          description: Bairro onde se localiza o endereço
      required:
        - street
        - streetNumber
        - zipCode
        - country
        - state
        - city
        - district

    BillingAddress:
      type: object
      properties:
        street:
          type: string
          description: Nome da rua/avenida/travessa
        streetNumber:
          type: string
          description: Número onde se localiza o endereço
        complement:
          type: string
          description: Complemento onde se localiza o endereço, caso exista
        zipCode:
          type: string
          description: Código postal CEP
        country:
          type: string
          description: País onde se localiza o endereço - Padrão ISO 3166-1 alpha-2
          default: BR
          enum:
            [
              "AL",
              "AD",
              "AR",
              "AT",
              "AU",
              "BA",
              "BZ",
              "BE",
              "BG",
              "BR",
              "BY",
              "CA",
              "CU",
              "CY",
              "CZ",
              "CH",
              "CL",
              "CN",
              "CO",
              "CR",
              "DE",
              "DK",
              "DO",
              "EC",
              "EE",
              "SV",
              "GT",
              "FI",
              "FR",
              "GB",
              "GR",
              "HR",
              "HK",
              "HU",
              "IS",
              "ID",
              "IE",
              "IN",
              "IL",
              "IT",
              "LI",
              "LT",
              "LU",
              "LV",
              "MK",
              "MC",
              "MD",
              "MT",
              "MU",
              "JP",
              "KR",
              "MX",
              "ME",
              "MY",
              "NL",
              "NZ",
              "NO",
              "PY",
              "PE",
              "PK",
              "PL",
              "PT",
              "RU",
              "RO",
              "SM",
              "RS",
              "SE",
              "SG",
              "TH",
              "TW",
              "TR",
              "SI",
              "SK",
              "ES",
              "UY",
              "UA",
              "US",
              "VE",
              "VN",
              "ZA",
            ]
        state:
          type: string
          description: Estado onde se localiza o endereço
        city:
          type: string
          description: Cidade onde se localiza o endereço
        district:
          type: string
          description: Bairro onde se localiza o endereço

    DeliveryAddress:
      type: object
      properties:
        country:
          type: string
          description: País onde se localiza o endereço - Padrão ISO 3166-1 alpha-2
          default: BR
          enum:
            [
              "AL",
              "AD",
              "AR",
              "AT",
              "AU",
              "BA",
              "BZ",
              "BE",
              "BG",
              "BR",
              "BY",
              "CA",
              "CU",
              "CY",
              "CZ",
              "CH",
              "CL",
              "CN",
              "CO",
              "CR",
              "DE",
              "DK",
              "DO",
              "EC",
              "EE",
              "SV",
              "GT",
              "FI",
              "FR",
              "GB",
              "GR",
              "HR",
              "HK",
              "HU",
              "IS",
              "ID",
              "IE",
              "IN",
              "IL",
              "IT",
              "LI",
              "LT",
              "LU",
              "LV",
              "MK",
              "MC",
              "MD",
              "MT",
              "MU",
              "JP",
              "KR",
              "MX",
              "ME",
              "MY",
              "NL",
              "NZ",
              "NO",
              "PY",
              "PE",
              "PK",
              "PL",
              "PT",
              "RU",
              "RO",
              "SM",
              "RS",
              "SE",
              "SG",
              "TH",
              "TW",
              "TR",
              "SI",
              "SK",
              "ES",
              "UY",
              "UA",
              "US",
              "VE",
              "VN",
              "ZA",
            ]
        state:
          type: string
          description: Estado onde se localiza o endereço
        city:
          type: string
          description: Cidade onde se localiza o endereço
        district:
          type: string
          description: Bairro onde se localiza o endereço
        zipCode:
          type: string
          description: Código postal CEP
        street:
          type: string
          description: Nome da rua/avenida/travessa
        streetNumber:
          type: string
          description: Número onde se localiza o endereço
        complement:
          type: string
          description: Complemento onde se localiza o endereço, caso exista

    SellerAddress:
      type: object
      properties:
        street:
          type: string
          description: Nome da rua/avenida/travessa
        streetNumber:
          type: string
          description: Número onde se localiza o endereço
        complement:
          type: string
          description: Complemento onde se localiza o endereço, caso exista
        zipCode:
          type: string
          description: Codigo postal CEP
        country:
          type: string
          description: Pais onde se localiza o endereço - Padrão ISO 3166-1 alpha-2
          default: BR
          enum:
            [
              "AL",
              "AD",
              "AR",
              "AT",
              "AU",
              "BA",
              "BZ",
              "BE",
              "BG",
              "BR",
              "BY",
              "CA",
              "CU",
              "CY",
              "CZ",
              "CH",
              "CL",
              "CN",
              "CO",
              "CR",
              "DE",
              "DK",
              "DO",
              "EC",
              "EE",
              "SV",
              "GT",
              "FI",
              "FR",
              "GB",
              "GR",
              "HR",
              "HK",
              "HU",
              "IS",
              "ID",
              "IE",
              "IN",
              "IL",
              "IT",
              "LI",
              "LT",
              "LU",
              "LV",
              "MK",
              "MC",
              "MD",
              "MT",
              "MU",
              "JP",
              "KR",
              "MX",
              "ME",
              "MY",
              "NL",
              "NZ",
              "NO",
              "PY",
              "PE",
              "PK",
              "PL",
              "PT",
              "RU",
              "RO",
              "SM",
              "RS",
              "SE",
              "SG",
              "TH",
              "TW",
              "TR",
              "SI",
              "SK",
              "ES",
              "UY",
              "UA",
              "US",
              "VE",
              "VN",
              "ZA",
            ]
        state:
          type: string
          description: Estado onde se localiza o endereço
        city:
          type: string
          description: Cidade onde se localiza o endereço
        district:
          type: string
          description: Bairro onde se localiza o endereço
        referencePoint:
          type: string
          description: Ponto de referência do endereço
      required:
        - street
        - streetNumber
        - zipCode
        - country
        - state
        - city
        - district
    AddressCreated:
      type: object
      properties:
        country:
          type: string
          description: Pais onde se localiza o endereço
          enum:
            [
              "AL",
              "AD",
              "AR",
              "AT",
              "AU",
              "BA",
              "BZ",
              "BE",
              "BG",
              "BR",
              "BY",
              "CA",
              "CU",
              "CY",
              "CZ",
              "CH",
              "CL",
              "CN",
              "CO",
              "CR",
              "DE",
              "DK",
              "DO",
              "EC",
              "EE",
              "SV",
              "GT",
              "FI",
              "FR",
              "GB",
              "GR",
              "HR",
              "HK",
              "HU",
              "IS",
              "ID",
              "IE",
              "IN",
              "IL",
              "IT",
              "LI",
              "LT",
              "LU",
              "LV",
              "MK",
              "MC",
              "MD",
              "MT",
              "MU",
              "JP",
              "KR",
              "MX",
              "ME",
              "MY",
              "NL",
              "NZ",
              "NO",
              "PY",
              "PE",
              "PK",
              "PL",
              "PT",
              "RU",
              "RO",
              "SM",
              "RS",
              "SE",
              "SG",
              "TH",
              "TW",
              "TR",
              "SI",
              "SK",
              "ES",
              "UY",
              "UA",
              "US",
              "VE",
              "VN",
              "ZA",
            ]
        id:
          type: string
          description: Identificador do endereço
        updatedAt:
          type: string
          description: Data de alteração do endereço
        createdAt:
          type: string
          description: Data de criação do endereço
        street:
          type: string
          description: Nome da rua/avenida/travessa
        streetNumber:
          type: string
          description: Número onde se localiza o endereço
        complement:
          type: string
          description: Complemento onde se localiza o endereço, caso exista
        zipCode:
          type: string
          description: Codigo postal CEP
        state:
          type: string
          description: Estado onde se localiza o endereço
        city:
          type: string
          description: Cidade onde se localiza o endereço
        district:
          type: string
          description: Bairro onde se localiza o endereço
    Document:
      type: object
      properties:
        type:
          type: string
          description: Tipo de documento, consultar tabela de tipos suportados
        number:
          type: string
          description: Número do documento formato conforme tipo selecionado
        country:
          type: string
          description: Pais de emissão do documento, Padrão ISO 3166-1 alpha-2, consultar tabela de tipos suportados
          default: BR
          enum:
            [
              "AL",
              "AD",
              "AR",
              "AT",
              "AU",
              "BA",
              "BZ",
              "BE",
              "BG",
              "BR",
              "BY",
              "CA",
              "CU",
              "CY",
              "CZ",
              "CH",
              "CL",
              "CN",
              "CO",
              "CR",
              "DE",
              "DK",
              "DO",
              "EC",
              "EE",
              "SV",
              "GT",
              "FI",
              "FR",
              "GB",
              "GR",
              "HR",
              "HK",
              "HU",
              "IS",
              "ID",
              "IE",
              "IN",
              "IL",
              "IT",
              "LI",
              "LT",
              "LU",
              "LV",
              "MK",
              "MC",
              "MD",
              "MT",
              "MU",
              "JP",
              "KR",
              "MX",
              "ME",
              "MY",
              "NL",
              "NZ",
              "NO",
              "PY",
              "PE",
              "PK",
              "PL",
              "PT",
              "RU",
              "RO",
              "SM",
              "RS",
              "SE",
              "SG",
              "TH",
              "TW",
              "TR",
              "SI",
              "SK",
              "ES",
              "UY",
              "UA",
              "US",
              "VE",
              "VN",
              "ZA",
            ]
      required:
        - type
        - number
    DocumentCreated:
      type: object
      properties:
        country:
          type: string
          description: Pais de emissão do documento
          enum:
            [
              "AL",
              "AD",
              "AR",
              "AT",
              "AU",
              "BA",
              "BZ",
              "BE",
              "BG",
              "BR",
              "BY",
              "CA",
              "CU",
              "CY",
              "CZ",
              "CH",
              "CL",
              "CN",
              "CO",
              "CR",
              "DE",
              "DK",
              "DO",
              "EC",
              "EE",
              "SV",
              "GT",
              "FI",
              "FR",
              "GB",
              "GR",
              "HR",
              "HK",
              "HU",
              "IS",
              "ID",
              "IE",
              "IN",
              "IL",
              "IT",
              "LI",
              "LT",
              "LU",
              "LV",
              "MK",
              "MC",
              "MD",
              "MT",
              "MU",
              "JP",
              "KR",
              "MX",
              "ME",
              "MY",
              "NL",
              "NZ",
              "NO",
              "PY",
              "PE",
              "PK",
              "PL",
              "PT",
              "RU",
              "RO",
              "SM",
              "RS",
              "SE",
              "SG",
              "TH",
              "TW",
              "TR",
              "SI",
              "SK",
              "ES",
              "UY",
              "UA",
              "US",
              "VE",
              "VN",
              "ZA",
            ]
        id:
          type: string
          description: Identificador do documento
        updatedAt:
          type: string
          description: Data de alteração do documento
        createdAt:
          type: string
          description: Data de criação do documento
        type:
          type: string
          description: Tipo de documento
        number:
          type: string
          description: Número do documento
    Customer:
      type: object
      properties:
        id:
          type: string
          description: Identificador do customer
        createdAt:
          type: string
          description: Data de criação
        clientId:
          type: string
          format: uuid
          description: Identificador do client
        name:
          type: string
          description: Nome do usuario
        email:
          type: string
          description: Email do usuario
        phoneNumber:
          type: string
          description: Telefones de contato do usuario
        document:
          allOf:
            - $ref: "#/components/schemas/Document"
        address:
          allOf:
            - $ref: "#/components/schemas/Address"

    CreateCustomerRequest:
      type: object
      properties:
        name:
          type: string
          description: Nome do usuario
        email:
          type: string
          description: Email do usuario
        phoneNumber:
          type: string
          description: Telefone de contato do usuario
        document:
          allOf:
            - $ref: "#/components/schemas/Document"
        address:
          allOf:
            - $ref: "#/components/schemas/Address"
        billingAddress:
          allOf:
            - $ref: "#/components/schemas/BillingAddress"
        deliveryAddress:
          allOf:
            - $ref: "#/components/schemas/DeliveryAddress"
      required:
        - name
        - phoneNumber
        - email
        - document
    UpdateCustomerRequest:
      type: object
      properties:
        name:
          type: string
          description: Nome do usuario
        phoneNumber:
          type: string
          description: Telefone de contato do usuario
        address:
          allOf:
            - $ref: "#/components/schemas/Address"
    LinkCardRequest:
      required:
        - cardId
      properties:
        cardId:
          type: string
          description: Identificador do cartão a ser associado
    CustomerCardList:
      properties:
        meta:
          type: object
          allOf:
            - $ref: "#/components/schemas/MetaPagination"
        items:
          type: array
          allOf:
            - $ref: "#/components/schemas/Card"
    CreateWebhookRequest:
      type: object
      properties:
        event:
          type: string
          description: Evento que deseja receber notificações no seu webhook conforme descrito na seção [Eventos suportados para notificação via webhooks](/documentations/webhooks/webhook1-1#eventos-suportados-para-notificacao-via-webhooks). Deve ser criado um webhook para cada evento, podendo ser utilizado o wildcard `*` no lugar do evento para receber todos os eventos em um único webhook.
        endpoint:
          type: string
          description: URL do seu sistema que deverá receber as notificações de evento, o valor não pode se repetir em outro webhook.
        version:
          type: number
          description: Versão da api da Malga que seu webhook implementa
          default: 1.1
        status:
          type: boolean
          enum: [true, false]
          description: Identifica se o webhooks está ativo ou não para receber notificações de evento da Malga
          default: true
      required:
        - event
        - endpoint
        - version
        - status
    WebhookError:
      type: object
      properties:
        statusCode:
          type: number
          description: Código do erro
        message:
          type: string
          description: Descrição do erro
    Webhook:
      type: object
      properties:
        id:
          type: string
          description: Identificador do webhook
        createdAt:
          type: string
          description: Data de criação
        clientId:
          type: string
          format: uuid
          description: Identificador do client
        event:
          type: string
          description: Tipo do evento que deseja receber notificações no seu webhook
        endpoint:
          type: string
          description: URL do seu sistema que deverá receber as notificações de evento
        version:
          type: number
          description: Versão da api da Malga que seu webhook implementa
          default: 1.1
        publicKey:
          type: string
          description: Chave pública ed25519
        status:
          type: boolean
          description: Identifica se o webhooks está ativo ou não para receber notificações de evento da Malga
          default: true
    WebhookList:
      properties:
        meta:
          type: object
          allOf:
            - $ref: "#/components/schemas/MetaPagination"
        items:
          type: array
          allOf:
            - $ref: "#/components/schemas/Webhook"
    Event:
      type: object
      properties:
        id:
          type: string
          description: Identificador único do evento, também enviado no header
        createdAt:
          type: string
          description: Data de criação do evento
        object:
          type: string
          description: Tipo do objeto atualizado
        event:
          type: string
          description: Tipo do evento de atualização que ocorreu no objeto atualizado
        apiVersion:
          type: number
          description: Versão da api da Malga que seu webhook implementa
        data:
          type: object
          description: Dados do objeto alterado com base na definição do schema de cada objeto
    BankAccount:
      type: object
      properties:
        holderName:
          type: string
          description: Nome de identificador do portador da conta bancária
        holdeType:
          type: string
          enum: ["individual", "company"]
          description: Identifica se é pessoa física ou jurídica. aceita os valores 'individual' ou 'company'
        holderDocument:
          type: string
          description: Documento do portador da conta bancária
        bank:
          type: string
          nullable: true
          description: Código COMPE do banco (3 dígitos). Opcional desde que `ispb` seja informado; quando ambos vêm, `ispb` tem precedência.
        ispb:
          type: string
          nullable: true
          pattern: '^[0-9]{8}$'
          minLength: 8
          maxLength: 8
          description: Identificador ISPB da instituição financeira (8 dígitos numéricos). Pelo menos um entre `bank` e `ispb` deve ser informado.
        branchNumber:
          type: string
          description: Número da agência bancária
        branchCheckDigit:
          type: string
          description: Código verificador da agência bancária
        accountNumber:
          type: string
          description: Número da conta bancária
        accountCheckDigit:
          type: string
          description: Número verificador da conta bancária
        pixKey:
          type: string
          description: Chave pix associada a conta bancária
        type:
          type: string
          enum:
            [
              "conta_corrente",
              "conta_poupanca",
              "conta_corrente_conjunta",
              "conta_poupanca_conjunta",
            ]
          description: Tipo de conta
      required:
        - holderName
        - holderDocument
        - branchNumber
        - accountNumber
        - type
    BankAccountCreated:
      type: object
      properties:
        id:
          type: string
          description: Identificação da conta bancária
        updatedAt:
          type: string
          description: Data de alteração da conta bancária
        createdAt:
          type: string
          description: Data de criação da conta bancária
        holderName:
          type: string
          description: Nome de identificação do portador da conta bancária
        holderDocument:
          type: string
          description: Documento do portador da conta bancária
        bank:
          type: string
          nullable: true
          description: Código COMPE do banco (3 dígitos). Pode estar vazio quando o recebedor foi cadastrado apenas com `ispb`.
        ispb:
          type: string
          nullable: true
          description: Identificador ISPB da instituição financeira (8 dígitos numéricos). Pode estar vazio quando o recebedor foi cadastrado apenas com `bank`.
        branchNumber:
          type: string
          description: Número da agência bancária
        branchCheckDigit:
          type: string
          description: Código verificador da agência bancária
        accountNumber:
          type: string
          description: Número da conta bancária
        accountCheckDigit:
          type: string
          description: Número verificador da conta bancária
        type:
          type: string
          enum:
            [
              "conta_corrente",
              "conta_poupanca",
              "conta_corrente_conjunta",
              "conta_poupanca_conjunta",
            ]
          description: Tipo de conta
    MetaData:
      type: object
      properties:
        key:
          type: string
          description: Identificador da informação adicional
        value:
          type: string
          description: Descritivo da informação adicional
    Owner:
      type: object
      properties:
        name:
          type: string
          description: Nome do recebedor
        email:
          type: string
          description: E-mail do recebedor
        phoneNumber:
          type: string
          description: Telefone de contato do recebedor
        birthdate:
          type: string
          description: Data de nascimento do recebedor em ISO-Date, ex 1996-01-31
        document:
          allOf:
            - $ref: "#/components/schemas/Document"
        address:
          allOf:
            - $ref: "#/components/schemas/SellerAddress"
        monthlyIncome:
          type: number
          description: Receita mensal do recebedor
        professionalOccupation:
          type: string
          description: Ocupação profissional do recebedor
        isBusinessRepresentative:
          type: boolean
          description: Indica se recebedor é representante legal do negócio
        annualRevenue:
          type: number
          description: Receita anual do negócio
        businessCategory:
          type: string
          description: Categoria do negócio
      required:
        - name
        - email
        - phoneNumber
        - birthdate
        - document
        - address
    OwnerCreated:
      type: object
      properties:
        id:
          type: string
          description: Identificador do recebedor
        updatedAt:
          type: string
          description: Data de alteração do recebedor
        createdAt:
          type: string
          description: Data de criação do recebedor
        name:
          type: string
          description: Nome do recebedor
        email:
          type: string
          description: E-mail do recebedor
        phoneNumber:
          type: string
          description: Telefone de contato do recebedor
        birthdate:
          type: string
          description: Data de nascimento do recebedor em ISO-Date, ex 1996-01-31
        address:
          allOf:
            - $ref: "#/components/schemas/AddressCreated"
        document:
          allOf:
            - $ref: "#/components/schemas/DocumentCreated"
        annualRevenue:
          type: number
          description: Receita anual do negócio
        businessCategory:
          type: string
          description: Categoria do negócio
    Business:
      type: object
      properties:
        name:
          type: string
          description: Nome do estabelecimento do recebedor
        corporateReason:
          type: string
          description: Razão social do estabelecimento do recebedor
        phoneNumber:
          type: string
          description: Telefone de contato do estabelecimento do recebedor
        email:
          type: string
          description: E-mail do estabelecimento do recebedor
        website:
          type: string
          description: Site do estabelecimento do recebedor
        description:
          type: string
          description: Descrição do estabelecimento do recebedor
        facebook:
          type: string
          description: Facebook do estabelecimento do recebedor
        twitter:
          type: string
          description: Twitter do estabelecimento do recebedor
        openingDate:
          type: string
          description: Data de abertura do estabelecimento do recebedor em ISO-Date, ex 2017-01-31
        address:
          allOf:
            - $ref: "#/components/schemas/SellerAddress"
        document:
          allOf:
            - $ref: "#/components/schemas/Document"
        annualRevenue:
          type: number
          description: Receita anual do negócio
      required:
        - name
        - phoneNumber
        - email
        - address
        - document
    BusinessCreated:
      type: object
      properties:
        id:
          type: string
          description: Identificador do estabelecimento do recebedor
        updatedAt:
          type: string
          description: Data de alteração do estabelecimento do recebedor
        createdAt:
          type: string
          description: Data de criação do estabelecimento do recebedor
        name:
          type: string
          description: Nome do estabelecimento do recebedor
        phoneNumber:
          type: string
          description: Telefone de contato do estabelecimento do recebedor
        email:
          type: string
          description: E-mail do estabelecimento do recebedor
        website:
          type: string
          description: Site do estabelecimento do recebedor
        description:
          type: string
          description: Descrição do estabelecimento do recebedor
        facebook:
          type: string
          description: Facebook do estabelecimento do recebedor
        twitter:
          type: string
          description: Twitter do estabelecimento do recebedor
        openingDate:
          type: string
          description: Data de abertura do estabelecimento do recebedor em ISO-Date, ex 2017-01-31
        address:
          allOf:
            - $ref: "#/components/schemas/AddressCreated"
        document:
          allOf:
            - $ref: "#/components/schemas/DocumentCreated"
    Seller:
      type: object
      properties:
        merchantId:
          type: string
          description: Identificação do merchant id a ser utilizado
        mcc:
          type: number
          description: Código de segmento do lojista no adquirente, solicite ao seu provedor caso não saiba qual o seu Merchant Category Code.
        owner:
          allOf:
            - $ref: "#/components/schemas/Owner"
        business:
          allOf:
            - $ref: "#/components/schemas/Business"
        bankAccount:
          allOf:
            - $ref: "#/components/schemas/BankAccount"
        transferPolicy:
          allOf:
            - $ref: "#/components/schemas/TransferPolicy"
        rateAgreements:
          allOf:
            - $ref: "#/components/schemas/RateAgreements"
        documentIds:
          type: array
          description: IDs dos documentos previamente enviados via POST /v1/sellers/documents. Os documentos serão associados ao seller e enviados ao provedor na criação.
          items:
            type: string
            format: uuid
          example:
            - "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        salesPlanId:
          type: string
          description: Identificador do Plano de Venda na Zoop
          example: "1234567"
        metadata:
          type: array
          description: Metadados adicionais do recebedor
          items:
            $ref: "#/components/schemas/MetaData"
        processingFee:
          type: boolean
          description: Indica se o recebedor paga a taxa de processamento no split
        liable:
          type: boolean
          description: Indica se o recebedor é responsável por chargeback no split
        fareMdr:
          type: number
          minimum: 0
          maximum: 100
          description: Percentual MDR para split (Braspag)
        fareFee:
          type: number
          minimum: 0
          description: Taxa fixa em centavos para split (Braspag)
        minNegativeBalance:
          type: number
          description: Saldo negativo mínimo permitido
        maxRefundDays:
          type: number
          description: Prazo máximo de reembolso em dias
        createAsync:
          type: boolean
          description: Cria o recebedor de forma assíncrona no provedor
        notifyOnPayout:
          type: boolean
          default: true
          description: Define se o recebedor deve ser notificado quando ocorre um repasse. Quando o campo é omitido, o recebedor é criado com `true`.
      required:
        - merchantId
        - mcc
        - bankAccount
        - owner
    UploadedDocumentResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador do documento
        type:
          type: string
          enum:
            - SELFIE
            - CNH_FULL
            - CNH_FRONT
            - CNH_BACK
            - RG_FRONT
            - RG_BACK
          description: Tipo do documento
        status:
          type: string
          enum:
            - uploaded
            - attached
            - sent
          description: |
            Status do documento:
            - `uploaded`: documento enviado, aguardando associação com seller
            - `attached`: documento associado a um seller, aguardando envio ao provedor
            - `sent`: documento enviado ao provedor com sucesso
        expiresAt:
          type: string
          format: date-time
          description: Data de expiração do documento (7 dias após upload)
      example:
        id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        type: "SELFIE"
        status: "uploaded"
        expiresAt: "2026-04-15T18:00:00.000Z"
    UploadedDocumentListResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/UploadedDocumentResponse"
        meta:
          type: object
          properties:
            totalItems:
              type: number
            itemCount:
              type: number
            itemsPerPage:
              type: number
            totalPages:
              type: number
            currentPage:
              type: number
    PayoutPaginationMeta:
      type: object
      properties:
        itemCount:
          type: integer
          description: Quantidade de itens na página
        totalItems:
          type: integer
          description: Quantidade total de itens na consulta
        itemsPerPage:
          type: integer
          description: Quantidade de itens por página
        totalPages:
          type: integer
          description: Quantidade total de páginas
        currentPage:
          type: integer
          description: Página atual
    PayoutBalanceResponse:
      type: object
      properties:
        available:
          type: integer
          description: Saldo disponível para repasse, em centavos
        receivable:
          type: integer
          description: Saldo a receber em datas futuras, em centavos
    PayoutPaymentBatchResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador único do repasse
        createdAt:
          type: string
          format: date-time
          description: Data de criação do repasse em RFC 3339
        updatedAt:
          type: string
          format: date-time
          description: Data da última atualização do repasse em RFC 3339
        amount:
          type: integer
          description: Valor bruto do repasse em centavos
        feeAmount:
          type: integer
          description: Total de taxas do provedor aplicadas em centavos
        totalFeeAmount:
          type: integer
          description: Total geral de taxas aplicadas em centavos
        balanceAmount:
          type: integer
          description: Saldo negativo remanescente em centavos que foi compensado neste repasse
        creditAmount:
          type: integer
          description: Total de créditos manuais aplicados em centavos
        refundAmount:
          type: integer
          description: Total de estornos descontados do repasse, em centavos
        debitAdjustmentAmount:
          type: integer
          description: Total de ajustes a débito aplicados em centavos
        creditAdjustmentAmount:
          type: integer
          description: Total de ajustes a crédito aplicados em centavos
        finalBalance:
          type: integer
          description: Saldo final liquidado para o cliente, em centavos
        withdrawalFeeAmount:
          type: integer
          description: Tarifa de saque/transferência aplicada em centavos
        reportUrl:
          type: string
          nullable: true
          description: URL do relatório detalhado do repasse, quando disponível
        paymentDate:
          type: string
          format: date
          description: Data programada para liquidação do repasse no formato `YYYY-MM-DD`
        payoutDate:
          type: string
          format: date
          nullable: true
          description: Data efetiva em que o repasse foi pago no formato `YYYY-MM-DD`
        status:
          type: string
          enum: [pending, paid, failed, offset]
          description: |
            Status atual do repasse:
            - `pending`: aguardando processamento
            - `paid`: liquidado com sucesso
            - `failed`: falhou no processamento
            - `offset`: compensado com saldo de outro repasse
        feature:
          type: string
          enum: [subacquirer, nupay, general]
          description: Tipo de operação que originou o repasse
        paymentMethod:
          type: string
          nullable: true
          enum: [credit, pix, nupay]
          description: Meio de pagamento das ordens que compõem o repasse
        paymentArrangement:
          type: string
          nullable: true
          description: Arranjo de pagamento associado
        error:
          type: object
          nullable: true
          description: Detalhe do erro, presente quando o repasse está em status `failed`
          properties:
            reason:
              type: string
              description: Motivo do erro
    PayoutPaymentBatchListResponse:
      type: object
      properties:
        items:
          type: array
          description: Lista de repasses retornados na página
          items:
            $ref: "#/components/schemas/PayoutPaymentBatchResponse"
        meta:
          $ref: "#/components/schemas/PayoutPaginationMeta"
    PayoutOrderResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador único da ordem
        chargeId:
          type: string
          format: uuid
          description: Identificador da cobrança na Malga que originou a ordem
        amount:
          type: integer
          description: Valor líquido conciliado da ordem em centavos
        grossAmount:
          type: integer
          description: Valor bruto da ordem em centavos
        totalFeeAmount:
          type: integer
          description: Total de taxas aplicadas à ordem, em centavos
        currency:
          type: string
          description: Moeda da ordem no formato ISO 4217
          example: "BRL"
        installment:
          type: integer
          nullable: true
          description: Número da parcela representada pela ordem
        totalInstallments:
          type: integer
          nullable: true
          description: Total de parcelas da cobrança original
        paymentMethod:
          type: string
          enum: [credit, pix, nupay]
          description: Meio de pagamento da ordem
        type:
          type: string
          enum: [authorization, void, charge_back]
          description: |
            Tipo da operação financeira que a ordem representa:
            - `authorization`: autorização da transação
            - `void`: cancelamento antes da liquidação
            - `charge_back`: estorno pós-liquidação
        paymentArrangement:
          type: string
          nullable: true
          description: Arranjo de pagamento associado à ordem
        paymentScheduledAt:
          type: string
          format: date
          nullable: true
          description: Data programada para liquidação da ordem no formato `YYYY-MM-DD`
        paymentBatchId:
          type: string
          format: uuid
          nullable: true
          description: Identificador do repasse que liquidou esta ordem
        createdAt:
          type: string
          format: date-time
          description: Data de criação da ordem em RFC 3339
        updatedAt:
          type: string
          format: date-time
          description: Data da última atualização da ordem em RFC 3339
    PayoutOrderListResponse:
      type: object
      properties:
        items:
          type: array
          description: Lista de ordens retornadas na página
          items:
            $ref: "#/components/schemas/PayoutOrderResponse"
        meta:
          $ref: "#/components/schemas/PayoutPaginationMeta"
    DeleteSellerRequest:
      properties:
        merchantId:
          type: string
          description: Identificação do merchant
      required:
        - merchantId
      example:
        merchantId: 4dbe1e43-7605-4e71-8973-76cfe16ce496
    SellerResponse:
      type: object
      properties:
        merchantId:
          type: string
          description: Identificação do merchant
        owner:
          allOf:
            - $ref: "#/components/schemas/Owner"
        business:
          allOf:
            - $ref: "#/components/schemas/Business"
        mcc:
          type: string
          description: Código de segmento do lojista no adquirente
        bankAccount:
          allOf:
            - $ref: "#/components/schemas/BankAccount"
        metaData:
          allOf:
            - $ref: "#/components/schemas/MetaData"
        transferPolicy:
          allOf:
            - $ref: "#/components/schemas/TransferPolicy"
    CreateSubscriptionRequest:
      type: object
      properties:
        name:
          type: string
          description: Nome da assinatura
          example: "Assinatura Premium com Eventos"
        merchantId:
          type: string
          format: uuid
          description: Identificador do merchant
          example: "225d39bc-1fbb-480a-90bd-f0caad05d2d0"
        customerId:
          type: string
          format: uuid
          description: Identificador do cliente
          example: "2a8b64ce-904c-4256-b79a-49525808609c"
        referenceKey:
          type: string
          description: Chave de referência da assinatura no seu sistema
          example: "SUB-PREMIUM-001"
        items:
          type: array
          items:
            $ref: "#/components/schemas/SubscriptionItem"
        recurrence:
          type: object
          properties:
            interval:
              type: string
              enum:
                - weekly
                - monthly
                - quarterly
                - yearly
                - biennial
                - triennial
              description: Intervalo de recorrência
              example: "monthly"
            cycles:
              type: number
              description: Quantidade de ciclos de recorrência
            startAt:
              type: string
              description: Data de início da assinatura em formato YYYY-MM-DD (UTC)
              example: "2025-07-30"
        paymentMethod:
          type: object
          required:
            - type
            - card
          properties:
            type:
              type: string
              enum:
                - credit
              description: Tipo de método de pagamento
              example: "credit"
            card:
              type: object
              required:
                - cardId
              properties:
                cardId:
                  type: string
                  format: uuid
                  description: Identificador do cartão
                  example: "ebef4e7e-b5d3-49d8-ac8f-b973faaa3ac5"
                cvv:
                  type: string
                  description: Código de segurança do cartão
                  example: "123"
            installments:
              type: integer
              description: Número de parcelas
              example: 1
        trial:
          type: object
          properties:
            endAt:
              type: string
              format: date
              description: Data de término do período de trial em formato YYYY-MM-DD
              example: "2025-08-15"
          description: Configuração do período de trial (opcional)
        splitRules:
          type: array
          items:
            $ref: "#/components/schemas/SplitRule"
          description: Regras de divisão de valores entre recebedores (opcional)
      required:
        - name
        - merchantId
        - customerId
        - items
        - recurrence
        - paymentMethod
    SubscriptionList:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/ListSubscriptionResponse"
        meta:
          type: object
          properties:
            totalItems:
              type: integer
              description: Total de itens
            totalPages:
              type: integer
              description: Total de páginas
            currentPage:
              type: integer
              description: Página atual
            itemsPerPage:
              type: integer
              description: Itens por página
            itemCount:
              type: integer
              description: Quantidade de itens
    SubscriptionItem:
      type: object
      properties:
        name:
          type: string
          description: Nome do item
          example: Ingresso VIP Mensal
        description:
          type: string
          description: Descrição do item
          example: Acesso VIP premium a eventos mensais
        amount:
          type: integer
          description: Valor do item em centavos
          example: 29900
        quantity:
          type: integer
          description: Quantidade do item
          example: 1
        sku:
          type: string
          description: Código de identificação do item
          example: VIP-EVENT-001
        risk:
          type: string
          enum:
            - Low
            - High
          description: Nível de risco da transação
          example: Low
        categoryId:
          type: string
          description: Categoria do item
          example: entertainment
        locality:
          type: string
          description: Localidade do evento
          example: São Paulo
        date:
          type: string
          format: date
          description: Data do evento
          example: "2025-12-01"
        type:
          type: integer
          description: Tipo de item
          example: 1
        genre:
          type: string
          description: Gênero do evento
          example: Shows e Eventos
        tickets:
          type: object
          properties:
            quantityTicketSale:
              type: integer
              description: Quantidade de ingressos à venda
              example: 1
            quantityEventHouse:
              type: integer
              nullable: true
              description: Quantidade de ingressos da casa de eventos
              example: 0
            convenienceFeeValue:
              type: number
              format: float
              description: Valor da taxa de conveniência
              example: 15.5
            quantityFull:
              type: integer
              description: Quantidade de ingressos inteiros
              example: 1
            quantityHalf:
              type: integer
              description: Quantidade de ingressos meia-entrada
              example: 0
            batch:
              type: integer
              description: Lote do ingresso
              example: 1
        location:
          type: object
          properties:
            street:
              type: string
              description: Nome da rua
              example: "Av. Paulista"
            number:
              type: string
              description: Número do endereço
              example: "1000"
            complement:
              type: string
              description: Complemento do endereço
              example: "Centro de Convenções"
            zipCode:
              type: string
              description: CEP
              example: "01310-100"
            city:
              type: string
              description: Cidade
              example: "São Paulo"
            state:
              type: string
              description: Estado
              example: "SP"
            country:
              type: string
              description: País
              example: "Brasil"
            district:
              type: string
              description: Bairro
              example: "Bela Vista"
            reference:
              type: string
              description: Ponto de referência
              example: "Próximo ao MASP"
            quantityHalf:
              type: integer
              nullable: true
              example: 0
            batch:
              type: integer
              example: 1
      required:
        - amount
        - name
        - quantity
    UpdateSubscriptionRequest:
      type: object
      properties:
        name:
          type: string
          description: Nome da assinatura
          minLength: 1
          maxLength: 100
        merchantId:
          type: string
          format: uuid
          description: Identificador do merchant
        referenceKey:
          type: string
          description: Chave de referência da assinatura
        items:
          type: array
          description: Lista de itens da assinatura
          items:
            type: object
            properties:
              name:
                type: string
                description: Nome do item
              description:
                type: string
                description: Descrição do item
              amount:
                type: integer
                description: Valor em centavos
                minimum: 1
              quantity:
                type: integer
                description: Quantidade de itens
                minimum: 1
              sku:
                type: string
              risk:
                type: string
                enum: [Low, High]
              categoryId:
                type: string
              locality:
                type: string
              date:
                type: string
                format: date
              type:
                type: integer
              genre:
                type: string
              tickets:
                type: object
                properties:
                  quantityTicketSale:
                    type: integer
                  quantityEventHouse:
                    type: integer
                  convenienceFeeValue:
                    type: number
                    format: float
                  quantityFull:
                    type: integer
                  quantityHalf:
                    type: integer
                  batch:
                    type: integer
              location:
                type: object
                properties:
                  street:
                    type: string
                  number:
                    type: string
                  complement:
                    type: string
                  zipCode:
                    type: string
                  city:
                    type: string
                  state:
                    type: string
                  country:
                    type: string
                  district:
                    type: string
                  reference:
                    type: string
            required:
              - name
              - amount
              - quantity
        recurrence:
          type: object
          properties:
            interval:
              type: string
              enum: [weekly, monthly, quarterly, yearly, biennial, triennial]
              description: Intervalo de recorrência
            cycles:
              type: integer
              minimum: 1
            startAt:
              type: string
        splitRules:
          type: array
          items:
            $ref: "#/components/schemas/SplitRule"
          description: Regras de divisão de valores entre recebedores (opcional)
        paymentMethod:
          type: object
          required:
            - type
            - card
          properties:
            type:
              type: string
              enum: [credit]
              description: Tipo de método de pagamento
            card:
              type: object
              required:
                - cardId
              properties:
                cardId:
                  type: string
                  format: uuid
                  description: Identificador do cartão
            installments:
              type: integer
              description: Número de parcelas
        cancelAtPeriodEnd:
          type: boolean
          description: Indica se a assinatura está agendada para cancelamento ao final do período atual
          example: true
        scheduledCancellationAt:
          type: string
          format: date
          description: Data agendada para o cancelamento (formato YYYY-MM-DD). Quando definida, tem prioridade sobre trialEnd e nextDueDate para determinar a data efetiva de cancelamento
          example: "2025-12-31"
        scheduledCancellationReason:
          type: string
          description: Motivo do cancelamento agendado (opcional)
          example: "Cliente solicitou cancelamento"

    ResumeSubscriptionResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador da assinatura
          example: "c7e9f0a3-b0b2-4c56-b918-79e31ed5a4f1"
        status:
          type: string
          description: Novo status da assinatura após retomar
          example: "active"
        message:
          type: string
          description: Mensagem explicando o resultado da retomada
          example: "Assinatura retomada com sucesso"
        updatedAt:
          type: string
          format: date-time
          description: Data da atualização da assinatura
          example: "2025-07-31T15:00:00Z"
    PauseSubscriptionResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador da assinatura
          example: "c7e9f0a3-b0b2-4c56-b918-79e31ed5a4f1"
        status:
          type: string
          description: Novo status da assinatura após pausa
          example: "paused"
        message:
          type: string
          description: Mensagem explicando o resultado da pausa
          example: "Assinatura pausada com sucesso"
        updatedAt:
          type: string
          format: date-time
          description: Data da atualização da assinatura
          example: "2025-07-31T15:00:00Z"
    CancelSubscriptionResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador da assinatura
          example: "019860b2-feb8-7edf-b5ba-0c48a7a8bd3f"
        status:
          type: string
          description: Status da assinatura após o cancelamento
          example: "canceled"
        message:
          type: string
          description: Mensagem explicativa do resultado
          example: "Assinatura cancelada com sucesso"
        updatedAt:
          type: string
          format: date-time
          description: Data da atualização do status
          example: "2025-07-31T14:00:00Z"
    SubscriptionResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador da assinatura
          example: "019860b2-feb8-7edf-b5ba-0c48a7a8bd3f"
        name:
          type: string
          description: Nome da assinatura
          example: "Assinatura Premium com Eventos"
        clientId:
          type: string
          format: uuid
          description: Identificador do client
          example: "e234eeb3-483d-4df2-87eb-1e2be5cdaccd"
        merchantId:
          type: string
          format: uuid
          description: Identificador do merchant
          example: "225d39bc-1fbb-480a-90bd-f0caad05d2d0"
        customerId:
          type: string
          format: uuid
          description: Identificador do cliente
          example: "2a8b64ce-904c-4256-b79a-49525808609c"
        referenceKey:
          type: string
          description: Chave de referência da assinatura
          example: "SUB-PREMIUM-001"
        currency:
          type: string
          description: Moeda da assinatura
          example: "BRL"
        items:
          type: array
          items:
            $ref: "#/components/schemas/SubscriptionItem"
        recurrence:
          type: object
          properties:
            interval:
              type: string
              enum: [weekly, monthly, quarterly, yearly, biennial, triennial]
              example: monthly
            cycles:
              type: integer
              example: 12
            startAt:
              type: string
              format: date
              description: Data de início da assinatura (UTC)
              example: "2025-08-10"
            endAt:
              type: string
              format: date
              example: "2026-08-10"
            nextDueDate:
              type: string
              format: date
              description: Próxima data de vencimento da assinatura
              example: "2025-07-30"
        paymentMethod:
          type: object
          required:
            - type
            - card
          properties:
            type:
              type: string
              enum: [credit]
              description: Tipo de método de pagamento
              example: credit
            card:
              type: object
              required:
                - cardId
              properties:
                cardId:
                  type: string
                  format: uuid
                  description: Identificador do cartão
                  example: "ebef4e7e-b5d3-49d8-ac8f-b973faaa3ac5"
            installments:
              type: integer
              description: Número de parcelas
              example: 1
        trial:
          type: object
          properties:
            endAt:
              type: string
              format: date
              description: Data de término do período de trial
              example: "2025-08-15"
          description: Informações do período de trial (se aplicável)
        splitRules:
          type: array
          items:
            $ref: "#/components/schemas/SplitRule"
          description: Regras de divisão de valores entre recebedores
        status:
          type: string
          enum: [created, active, paused, canceled, unpaid, expired, trialing]
          description: Status da assinatura
          example: "created"
        amount:
          type: integer
          example: 29900
        liveMode:
          type: boolean
          description: Indica se a assinatura está em modo de produção
          example: true
        lastCycle:
          $ref: "#/components/schemas/CycleDetailResponse"
          nullable: true
          description: Último cycle da assinatura. Sempre presente nas respostas individuais (GET, CREATE, UPDATE), pode ser null se não houver cycles.
        createdAt:
          type: string
          format: date-time
          example: "2025-07-31T13:36:40.118822Z"
        updatedAt:
          type: string
          format: date-time
          example: "2025-07-31T13:36:40.118822Z"
        cancelAtPeriodEnd:
          type: boolean
          description: Indica se a assinatura está agendada para cancelamento ao final do período atual
          example: true
        scheduledCancellationAt:
          type: string
          format: date
          nullable: true
          description: Data agendada para o cancelamento (formato YYYY-MM-DD). Quando definida, tem prioridade sobre trialEnd e nextDueDate para determinar a data efetiva de cancelamento
          example: "2025-12-31"
        scheduledCancellationReason:
          type: string
          nullable: true
          description: Motivo do cancelamento agendado (opcional)
          example: "Cliente solicitou cancelamento"
    CycleResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador do cycle
          example: "01985cf8-9877-7c09-bbf6-2cceb3384a61"
        customerId:
          type: string
          format: uuid
          description: Identificador do cliente
          example: "2a8b64ce-904c-4256-b79a-49525808609c"
        merchantId:
          type: string
          format: uuid
          description: Identificador do merchant
          example: "225d39bc-1fbb-480a-90bd-f0caad05d2d0"
        cycle:
          type: integer
          description: Número do cycle
          example: 1
        status:
          type: string
          enum: [scheduled, pending, authorized, failed, retrying, canceled]
          description: Status do cycle.
          example: "authorized"
        createdAt:
          type: string
          format: date-time
          description: Data de criação do cycle
          example: "2025-07-30T20:14:12.599715Z"
    CycleList:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/CycleResponse"
        meta:
          type: object
          properties:
            totalItems:
              type: integer
              description: Total de items
              example: 1
            itemCount:
              type: integer
              description: Quantidade de items na página atual
              example: 1
            itemsPerPage:
              type: integer
              description: Quantidade de items por página
              example: 10
            totalPages:
              type: integer
              description: Total de páginas
              example: 1
            currentPage:
              type: integer
              description: Página atual
              example: 1
    CycleDetailResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador do cycle
          example: "01985cf8-9877-7c09-bbf6-2cceb3384a61"
        customerId:
          type: string
          format: uuid
          description: Identificador do cliente
          example: "2a8b64ce-904c-4256-b79a-49525808609c"
        merchantId:
          type: string
          format: uuid
          description: Identificador do merchant
          example: "225d39bc-1fbb-480a-90bd-f0caad05d2d0"
        cycle:
          type: integer
          description: Número do cycle
          example: 1
        status:
          type: string
          enum: [scheduled, pending, authorized, failed, retrying, canceled]
          description: Status do cycle
          example: "authorized"
        createdAt:
          type: string
          format: date-time
          description: Data de criação do cycle
          example: "2025-07-30T20:14:12.599715Z"
        paymentHistory:
          type: array
          items:
            $ref: "#/components/schemas/PaymentHistoryItem"
          description: Histórico de pagamentos do cycle
    PaymentHistoryItem:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador do payment history
          example: "84ec50c5-1fb4-4d6b-bbff-fedc47ba9fa3"
        createdAt:
          type: string
          format: date-time
          description: Data de criação do payment history
          example: "2025-07-30T20:14:12.608115Z"
        chargeId:
          type: string
          format: uuid
          description: Identificador da cobrança
          example: "6f2a0713-c4cd-4e2d-8603-69855902676d"
        status:
          type: string
          enum: [pending, authorized, failed]
          description: Status da cobrança. `pending` quando criada, `authorized` quando bem-sucedida, `failed` quando falhou
          example: "authorized"
    ListSubscriptionResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador da assinatura
          example: "01985cf8-96df-7d37-b17c-a9985a1e78bb"
        name:
          type: string
          description: Nome da assinatura
          example: "Test Without Request"
        clientId:
          type: string
          format: uuid
          description: Identificador do criador da assinatura
          example: "e234eeb3-483d-4df2-87eb-1e2be5cdaccd"
        merchantId:
          type: string
          format: uuid
          description: Identificador do merchant
          example: "225d39bc-1fbb-480a-90bd-f0caad05d2d0"
        customerId:
          type: string
          format: uuid
          description: Identificador do cliente
          example: "2a8b64ce-904c-4256-b79a-49525808609c"
        referenceKey:
          type: string
          description: Chave de referência da assinatura
          example: "SUB-PREMIUM-001"
        currency:
          type: string
          description: Moeda da assinatura
          example: "BRL"
        trial:
          type: object
          properties:
            endAt:
              type: string
              format: date
              description: Data de término do período de trial
              example: "2025-08-15"
          description: Informações do período de trial (se aplicável)
        status:
          type: string
          enum: [created, active, paused, canceled, unpaid, expired, trialing]
          description: Status da assinatura
          example: "paused"
        amount:
          type: integer
          description: Valor total da assinatura em centavos
          example: 29900
        liveMode:
          type: boolean
          description: Indica se a assinatura está em modo de produção
          example: true
        interval:
          type: string
          enum: [weekly, monthly, quarterly, yearly, biennial, triennial]
          description: Intervalo de recorrência
          example: "monthly"
        createdAt:
          type: string
          format: date-time
          description: Data de criação da assinatura
          example: "2025-07-30T20:14:12.191866Z"
        updatedAt:
          type: string
          format: date-time
          description: Data da última atualização da assinatura
          example: "2025-07-31T16:57:23.751952Z"
    RetryPolicyRule:
      type: object
      properties:
        daysAfterLastAttempt:
          type: integer
          minimum: 1
          maximum: 30
          description: Dias após a última tentativa para fazer nova retentativa
          example: 1
      required:
        - daysAfterLastAttempt
    UpdateClientSettingsRequest:
      type: object
      properties:
        retryPolicy:
          type: array
          items:
            $ref: "#/components/schemas/RetryPolicyRule"
          minItems: 1
          maxItems: 6
          description: Política de retentativas para pagamentos falhados
          example:
            - daysAfterLastAttempt: 1
            - daysAfterLastAttempt: 4
            - daysAfterLastAttempt: 9
            - daysAfterLastAttempt: 16
        statementDescriptor:
          type: string
          maxLength: 25
          description: Texto que aparece na fatura do cartão de crédito
          example: "MINHA EMPRESA"
        cancelAfterAllRetries:
          type: boolean
          description: Se a assinatura deve ser cancelada após todas as retentativas falharem
          example: false
    ClientSettingsResponse:
      type: object
      properties:
        clientId:
          type: string
          format: uuid
          description: Identificador do cliente
          example: "e234eeb3-483d-4df2-87eb-1e2be5cdaccd"
        retryPolicy:
          type: array
          items:
            $ref: "#/components/schemas/RetryPolicyRule"
          description: Política de retentativas configurada
          example:
            - daysAfterLastAttempt: 1
            - daysAfterLastAttempt: 4
            - daysAfterLastAttempt: 9
            - daysAfterLastAttempt: 16
        statementDescriptor:
          type: string
          description: Texto que aparece na fatura do cartão de crédito
          example: "MINHA EMPRESA"
        cancelAfterAllRetries:
          type: boolean
          description: Se a assinatura deve ser cancelada após todas as retentativas falharem
          example: false
        createdAt:
          type: string
          format: date-time
          description: Data de criação das configurações
          example: "2025-01-31T10:00:00Z"
        updatedAt:
          type: string
          format: date-time
          description: Data da última atualização das configurações
          example: "2025-01-31T15:30:00Z"
      required:
        - clientId
        - retryPolicy
        - cancelAfterAllRetries
        - createdAt
        - updatedAt
    SellerCreadtedResponse:
      type: object
      properties:
        id:
          type: string
          description: Identificador do seller
        providers:
          type: array
          items:
            $ref: "#/components/schemas/SellerProvidersCreated"
        merchantId:
          type: string
          description: Identificador do merchant
        clientId:
          type: string
          description: Identificador do cliente
        metadata:
          type: object
          description: Campos adicionais da transação enviados na criação da mesma
        owner:
          allOf:
            - $ref: "#/components/schemas/OwnerCreated"
        business:
          allOf:
            - $ref: "#/components/schemas/BusinessCreated"
        bankAccount:
          allOf:
            - $ref: "#/components/schemas/BankAccountCreated"
        transferPolicy:
          allOf:
            - $ref: "#/components/schemas/TransferPolicyCreated"
        mcc:
          type: string
          description: Código de segmento do lojista no adquirente
        status:
          type: string
          enum:
            - active
            - partial
            - inactive
            - pending
            - blocked
          description: Status do seller
        notifyOnPayout:
          type: boolean
          description: Indica se o recebedor é notificado quando ocorre um repasse.
    SellerUpdatedResponse:
      type: object
      properties:
        id:
          type: string
          description: Identificação do seller
        providers:
          type: array
          items:
            $ref: "#/components/schemas/SellerProviders"
        merchantId:
          type: string
          description: Identificação do merchant
        clientId:
          type: string
          description: Identificação do cliente
        metadata:
          type: object
          description: Campos adicionais da transação enviados na criação da mesma
        owner:
          allOf:
            - $ref: "#/components/schemas/Owner"
        business:
          allOf:
            - $ref: "#/components/schemas/Business"
        bankAccount:
          allOf:
            - $ref: "#/components/schemas/BankAccount"
        transferPolicy:
          allOf:
            - $ref: "#/components/schemas/TransferPolicy"
        mcc:
          type: string
          description: Código de segmento do lojista no adquirente
        notifyOnPayout:
          type: boolean
          description: Indica se o recebedor é notificado quando ocorre um repasse.
    SellerUpdatedBody:
      type: object
      description: |
        Corpo da atualização parcial. Todos os campos são opcionais — envie apenas o que deseja alterar.
        Campos omitidos não são modificados.
      properties:
        merchantId:
          type: string
          description: Identificação do merchant
        mcc:
          type: number
          description: Código de segmento do lojista no adquirente
        metadata:
          type: array
          items:
            $ref: "#/components/schemas/MetaData"
        owner:
          allOf:
            - $ref: "#/components/schemas/Owner"
        business:
          allOf:
            - $ref: "#/components/schemas/Business"
        bankAccount:
          allOf:
            - $ref: "#/components/schemas/BankAccount"
        transferPolicy:
          allOf:
            - $ref: "#/components/schemas/TransferPolicy"
        rateAgreements:
          allOf:
            - $ref: "#/components/schemas/RateAgreements"
        status:
          type: string
          enum:
            - active
            - partial
            - inactive
            - pending
            - blocked
          description: Status do recebedor
        statusReason:
          type: string
          description: Motivo do status
        reasonType:
          type: string
          enum:
            - other
            - funds
          description: Tipo do motivo de status
        documentIds:
          type: array
          description: IDs de documentos a associar ao recebedor
          items:
            type: string
            format: uuid
        processingFee:
          type: boolean
        liable:
          type: boolean
        fareMdr:
          type: number
          minimum: 0
          maximum: 100
        fareFee:
          type: number
          minimum: 0
        salesPlanId:
          type: string
        minNegativeBalance:
          type: number
        maxRefundDays:
          type: number
        createAsync:
          type: boolean
        notifyOnPayout:
          type: boolean
          description: Define se o recebedor deve ser notificado quando ocorre um repasse. Quando o campo é omitido, o valor atual do recebedor é mantido.
    SellerPaginatedListResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/SellerCreadtedResponse"
        meta:
          type: object
          properties:
            totalItems:
              type: number
            itemCount:
              type: number
            itemsPerPage:
              type: number
            totalPages:
              type: number
            currentPage:
              type: number
    RegistrationReviewLocalizedText:
      type: object
      description: Texto destinado a uma pessoa, nos dois idiomas em que a API de sellers responde.
      properties:
        pt-br:
          type: string
        en:
          type: string
    RegistrationReviewRequestedField:
      type: object
      description: Campo que o provedor exige, já traduzido para o vocabulário da Malga.
      properties:
        path:
          type: string
          description: Caminho do campo no vocabulário da Malga, ou o caminho bruto quando não há tradução conhecida.
        type:
          type: string
          enum:
            - string
            - enum
            - date
            - number
        required:
          type: boolean
          description: Sempre `true` — a lista é exatamente o conjunto que o provedor pediu.
        label:
          $ref: "#/components/schemas/RegistrationReviewLocalizedText"
        providerField:
          type: string
          description: Campo de origem no provedor, para rastrear a tradução.
        format:
          $ref: "#/components/schemas/RegistrationReviewLocalizedText"
        pattern:
          type: string
          description: O formato como expressão regular, a mesma contra a qual o envio é validado.
        allowedValues:
          type: array
          description: Valores conhecidos do provedor. Informativo — um valor fora da lista não é recusado.
          items:
            type: string
        note:
          $ref: "#/components/schemas/RegistrationReviewLocalizedText"
        unmapped:
          type: boolean
          description: Presente quando o campo ainda não tem correspondente no vocabulário da Malga.
    RegistrationReviewRequestedFields:
      type: object
      description: |
        Lista de campos a coletar. Ausente enquanto o provedor não informa o que pedir — nesse caso `requestedFieldsPending` vem `true`.
      properties:
        raw:
          type: array
          description: Lista original, no vocabulário do provedor.
          items:
            type: string
        fields:
          type: array
          items:
            $ref: "#/components/schemas/RegistrationReviewRequestedField"
    RegistrationReview:
      type: object
      properties:
        processId:
          type: string
          description: Identificador do processo no provedor
        sellerId:
          type: string
          format: uuid
          description: Recebedor a que o processo se aplica
        provider:
          type: string
          description: Provedor que exige a revisão
        providerId:
          type: string
          format: uuid
          description: Vínculo do recebedor com o provedor a que o processo se aplica
        reviewType:
          type: string
          enum:
            - acp
            - aci
        status:
          type: string
          enum:
            - unmatched
            - pending
            - overdue
            - submitting
            - submit_failed
            - expired
            - finished
            - canceled
        deadlineAt:
          type: string
          format: date-time
          description: Prazo dado pelo provedor para o envio
        daysRemaining:
          type: number
          description: Dias inteiros até o prazo, negativo depois que ele passa
        requestedFields:
          $ref: "#/components/schemas/RegistrationReviewRequestedFields"
        requestedFieldsPending:
          type: boolean
          description: Verdadeiro enquanto o provedor não envia a lista de campos, com o prazo já correndo.
        createdAt:
          type: string
          format: date-time
    RegistrationReviewPaginatedListResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/RegistrationReview"
        meta:
          type: object
          properties:
            totalItems:
              type: number
            itemCount:
              type: number
            itemsPerPage:
              type: number
            totalPages:
              type: number
            currentPage:
              type: number
    RegistrationReviewCollectionEvidence:
      type: object
      description: |
        Como você obteve do recebedor os dados que está enviando.

        O provedor proíbe preencher uma revisão cadastral com dado tirado de bureau, da base do marketplace, do onboarding ou de um envio anterior: a coleta tem de ser ativa, feita com o recebedor.
      required:
        - channel
        - collectedAt
        - journeyId
      properties:
        channel:
          type: string
          maxLength: 50
          description: Canal pelo qual os dados foram coletados do recebedor
          example: in_app
        collectedAt:
          type: string
          format: date-time
          description: Quando os dados foram coletados. Precisa ser posterior à abertura do processo.
        journeyId:
          type: string
          maxLength: 255
          description: Identificador da jornada de coleta do seu lado
        sourceIp:
          type: string
          description: Endereço de onde o recebedor enviou os dados. Opcional — nem todo canal tem um.
        userAgent:
          type: string
          maxLength: 500
    SubmitRegistrationReviewRequest:
      type: object
      required:
        - collection
        - data
      properties:
        collection:
          $ref: "#/components/schemas/RegistrationReviewCollectionEvidence"
        data:
          type: object
          description: |
            Campos coletados, no vocabulário da Malga, correspondendo exatamente aos caminhos de `requestedFields.fields` do processo.
          example:
            revenue: 10000_to_50000
            owner:
              address:
                street: Avenida Paulista
                streetNumber: "1578"
                zipCode: "01310200"
    SellerProvidersCreated:
      type: object
      properties:
        providerType:
          type: string
          enum: [SANDBOX]
          description: Nome do provedor
        externalId:
          type: string
          description: Identificação externa
        externalStatus:
          type: string
          description: Status externo
        externalStatusReason:
          type: string
          description: Razão do status externo
        status:
          type: string
          description: Status do recebedor
        createdAt:
          type: string
          description: Data de criação
        updatedAt:
          type: string
          description: Data de alteração
    SellerProviders:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificação do provedor
        providerType:
          type: string
          enum: [SANDBOX]
          description: Nome do provedor
        status:
          type: string
          description: Status do recebedor
        createdAt:
          type: string
          description: Data de criação
        updatedAt:
          type: string
          description: Data de edição
    SplitRule:
      type: object
      properties:
        sellerId:
          type: string
          format: uuid
          description: Identificador do recebedor já cadastrado na API de [sellers](/api-reference/sellers/criacao-de-um-novo-recebedor).
          example: "5323ece6-816d-11ed-a1eb-0242ac120002"
        percentage:
          type: integer
          minimum: 1
          maximum: 100
          description: Campo condicional. Percentual do valor da transação que será enviado ao recebedor. Envie exatamente um dos campos, `percentage` ou `amount`, nunca ambos.
          example: 70
        amount:
          type: integer
          minimum: 1
          description: Campo condicional. Valor em centavos que será enviado ao recebedor. Envie exatamente um dos campos, `amount` ou `percentage`, nunca ambos.
          example: 5000
        processingFee:
          type: boolean
          description: Indica se o recebedor vinculado à regra será cobrado pelas taxas da transação.
          example: false
        chargeEntireFee:
          type: boolean
          description: Indica se o recebedor será cobrado pela taxa inteira da transação. Não pode ser verdadeiro junto com `chargeRemainderFee`.
          example: false
        chargeRemainderFee:
          type: boolean
          description: Indica se o recebedor será cobrado pela taxa restante da transação.
          example: false
        liable:
          type: boolean
          description: Indica se o recebedor atrelado assumirá os riscos de chargeback da transação.
          example: true
        transactionOwner:
          type: boolean
          description: Indica se o recebedor é o responsável pela transação.
          example: true
        fares:
          type: object
          description: Informações sobre as taxas que serão cobradas do recebedor.
          properties:
            mdr:
              type: number
              minimum: 0
              description: Percentual de MDR que será aplicado ao recebedor.
              example: 2.5
            fee:
              type: number
              minimum: 0
              description: Taxa fixa que será aplicada ao recebedor.
              example: 0.30
      required:
        - sellerId
    ChargeSplitRules:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador da regra de split
        createdAt:
          type: string
          description: Data de criação da regra de split
        sellerId:
          type: string
          format: uuid
          description: Identificador do recebedor já cadastrado na API de [sellers](/api-reference/sellers/criacao-de-um-novo-recebedor)
        percentage:
          type: number
          description: Porcentagem do valor da transação que será enviada ao recebedor
        amount:
          type: number
          description: Valor que será enviado ao recebedor
        processingFee:
          type: boolean
          description: Indica se o recebedor vinculado à regra será cobrado pelas taxas da transação
        chargeEntireFee:
          type: boolean
          description: Indica se o recebedor será cobrado pela taxa inteira da transação
        chargeRemainderFee:
          type: boolean
          description: Indica se o recebedor será cobrado pela taxa restante da transação
        fareFee:
          type: boolean
          description: Indica valor em centavos a ser cobrado por transação capturada. É descontado no momento da “montagem” da agenda financeira
        fareMdr:
          type: number
          description: Indica o percentual a ser descontado do valor de uma transação, definido por produto (crédito/débito/boleto), bandeira e faixa de parcelamento

    SplitRulesVoid:
      type: object
      properties:
        sellerId:
          type: string
          format: uuid
          description: Identificador do recebedor que participou da transação
        amount:
          type: number
          description: Valor de estorno do recebedor informado
    3DSecure2Request:
      type: object
      properties:
        setupId:
          type: string
          description: Id da sessão de autenticação Malga, utilizado somente para 3DS2 Malga
        dataOnly:
          type: boolean
          description: Quando true, apenas coleta os dados 3DS sem realizar a autenticação
        requiresLiabilityShift:
          type: boolean
          description: Indica a ocorrência de mudança de responsabilidade
        redirectURL:
          type: string
          description: URL para redirecionamento de autenticação. Este campo não é obrigatório caso o objeto MPI seja enviado.
        requestorURL:
          type: string
          description: URL de origem da requisição. Este campo não é obrigatório caso o objeto MPI seja enviado.
        browser:
          description: Informações sobre o navegador do usuário. Este campo não é obrigatório caso o objeto MPI seja enviado.
          allOf:
            - $ref: "#/components/schemas/3DSecure2browser"
        billingAddress:
          description: Endereço de cobrança
          allOf:
            - $ref: "#/components/schemas/3DSecure2BillingAddress"
        shippingAddress:
          description: Endereço para envio
          allOf:
            - $ref: "#/components/schemas/3DSecure2ShippingAddress"
        cardHolder:
          description: Dados do portador do cartão
          allOf:
            - $ref: "#/components/schemas/3DSecure2CardHolder"
        mpi:
          description: Campo usado para autenticação com mpi externa
          allOf:
            - $ref: "#/components/schemas/3DSecure2MPI"
      required:
        - redirectURL
        - requestorURL
        - browser

    3DSecure2Response:
      type: object
      properties:
        setupId:
          type: string
          description: Id da sessão de autenticação Malga, utilizado somente para 3DS2 Malga
        dataOnly:
          type: boolean
          description: Indica se a transação foi processada apenas para coleta de dados 3DS
        requiresLiabilityShift:
          type: boolean
          description: Indica a ocorrência de mudança de responsabilidade
        redirectURL:
          type: string
          description: URL para redirecionamento de autenticação
        requestorURL:
          type: string
          description: URL de origem da requisição
        browser:
          description: Informações sobre o navegador do usuário
          allOf:
            - $ref: "#/components/schemas/3DSecure2browserResponse"
        billingAddress:
          description: Endereço de cobrança
          allOf:
            - $ref: "#/components/schemas/3DSecure2BillingAddressResponse"
        shippingAddress:
          description: Endereço para envio
          allOf:
            - $ref: "#/components/schemas/3DSecure2ShippingAddressResponse"
        cardHolder:
          description: Dados do portador do cartão
          allOf:
            - $ref: "#/components/schemas/3DSecure2CardHolderResponse"
        authData:
          description: Dados de autenticação do provedor
          allOf:
            - $ref: "#/components/schemas/3DSecure2AuthResponse"
    3DSecure2browser:
      type: object
      properties:
        acceptBrowserValue:
          type: string
          description: O valor do cabeçalho Accept para o navegador
        acceptContent:
          type: string
          description: O tipo de conteúdo que o navegador aceita
        acceptHeader:
          type: string
          description: O Accept do cabeçalho de requisição HTTP
        colorDepth:
          type: number
          description: A profundidade de cores da tela
        javaEnabled:
          type: boolean
          description: Se Java está habilitado
        javaScriptEnabled:
          type: boolean
          description: Se javaScript está habilitado
        language:
          type: string
          description: A linguagem utilizada pelo sistema do usuário
        screenHeight:
          type: number
          description: Altura da tela
        screenWidth:
          type: number
          description: Largura da tela
        timeZoneOffset:
          type: string
          description: Diferença em minutos do deslocamento de fuso horário entre o UTC e a localidade atual
        userAgent:
          type: string
          description: O User-Agent do cabeçalho de requisição  HTTP
        ip:
          type: string
          description: Endereço de ip do usuário
      required:
        - acceptBrowserValue
        - acceptContent
        - acceptHeader
        - colorDepth
        - javaEnabled
        - language
        - screenHeight
        - screenWidth
        - timeZoneOffset
        - userAgent
        - ip
    3DSecure2browserResponse:
      type: object
      properties:
        acceptBrowserValue:
          type: string
          description: O valor do cabeçalho Accept para o navegador
        acceptContent:
          type: string
          description: O tipo de conteúdo que o navegador aceita
        acceptHeader:
          type: string
          description: O Accept do cabeçalho de requisição HTTP
        colorDepth:
          type: number
          description: A profundidade de cores da tela
        javaEnabled:
          type: boolean
          description: Se Java está habilitado
        javaScriptEnabled:
          type: boolean
          description: Se javaScript está habilitado
        language:
          type: string
          description: A linguagem utilizada pelo sistema do usuário
        screenHeight:
          type: number
          description: Altura da tela
        screenWidth:
          type: number
          description: Largura da tela
        timeZoneOffset:
          type: string
          description: Diferença em minutos do deslocamento de fuso horário entre o UTC e a localidade atual
        userAgent:
          type: string
          description: O User-Agent do cabeçalho de requisição  HTTP
        ip:
          type: string
          description: Endereço de ip do usuário
    3DSecure2BillingAddress:
      type: object
      properties:
        city:
          type: string
          description: Cidade
        country:
          type: string
          description: Padrão ISO 3166-1 alpha-2
        streetNumber:
          type: string
          description: Número da rua
        zipCode:
          type: string
          description: Codigo postal CEP
        state:
          type: string
          description: Estado
        street:
          type: string
          description: Rua
      required:
        - city
        - country
        - streetNumber
        - zipCode
        - state
        - street
    3DSecure2BillingAddressResponse:
      type: object
      properties:
        city:
          type: string
          description: Cidade
        country:
          type: string
          description: Padrão ISO 3166-1 alpha-2
        streetNumber:
          type: string
          description: Número da rua
        zipCode:
          type: string
          description: Codigo postal CEP
        state:
          type: string
          description: Estado
        street:
          type: string
          description: Rua
    3DSecure2ShippingAddress:
      type: object
      properties:
        city:
          type: string
          description: Cidade
        country:
          type: string
          description: Padrão ISO 3166-1 alpha-2
        streetNumber:
          type: string
          description: Número da rua
        zipCode:
          type: string
          description: Codigo postal CEP
        state:
          type: string
          description: Estado
        street:
          type: string
          description: Rua
      required:
        - city
        - country
        - streetNumber
        - zipCode
        - state
        - street
    3DSecure2ShippingAddressResponse:
      type: object
      properties:
        city:
          type: string
          description: Cidade
        country:
          type: string
          description: Padrão ISO 3166-1 alpha-2
        streetNumber:
          type: string
          description: Número da rua
        zipCode:
          type: string
          description: Codigo postal CEP
        state:
          type: string
          description: Estado
        street:
          type: string
          description: Rua
    3DSecure2CardHolder:
      type: object
      properties:
        email:
          type: string
          description: Email
        mobilePhone:
          type: string
          description: Telefone celular
      required:
        - email
    3DSecure2CardHolderResponse:
      type: object
      properties:
        email:
          type: string
          description: Email
        mobilePhone:
          type: string
          description: Telefone celular

    3DSecure2MPI:
      type: object
      properties:
        acsTransactionId:
          type: string
          description: "ID da transação ACS"
        cavv:
          type: string
          description: "Cardholder Authentication Verification Value"
        challenged:
          type: boolean
          description: "Indica se houve challenge"
        directoryServerTransactionId:
          type: string
          description: "ID da transação do Directory Server"
        eci:
          type: string
          description: "Electronic Commerce Indicator"
        threeDSServerTransactionId:
          type: string
          description: "ID da transação do 3DS Server"
        transStatus:
          type: string
          description: "Status da transação"
        version:
          type: string
          description: "Versão do protocolo 3DS"
        xid:
          type: string
          description: "Transaction ID (XID)"

    3DSecure2AuthResponse:
      type: object
      properties:
        action:
          type: string
          enum: [REDIRECT]
          description: Tipo de ação exigida pelo provedor
        providerType:
          type: string
          enum: [ADYEN]
          description: Nome do provedor
        responseType:
          type: string
          enum: [AUTHENTICATION, AUTHORIZATION]
          description: Identifica a etapa do desafio
        response:
          type: object
          description: O object retornado do provedor com dados para autenticação ou autorização
    TransferPolicy:
      type: object
      properties:
        transferDay:
          type: string
          description: Dia em que o parceiro será pago. Depende do transfer_interval - se for daily, enviar 1. Se for weekly pode ser de 1 (segunda) a 5 (sexta). Se for monthly, pode ser de 1 a 31. Além disso, se for daily e o provedor for Pagar.me V5, o valor é 0.
        transferEnabled:
          type: boolean
          description: Determina se as transferências estão autorizadas a acontecer ou não.
        transferInterval:
          type: string
          enum: [daily, weekly, monthly]
          description: Intervalo entre as transferências.
        automaticAnticipationEnabled:
          type: boolean
          description: Indica se o recebedor receberá antecipações automaticamente
        anticipatableVolumePercentage:
          type: string
          description: Indica a porcentagem do volume passível de ser antecipado para o recebedor
        automaticAnticipationType:
          type: string
          description: Indica o tipo de antecipação automática que será configurado para a conta do recebedor
        automaticAnticipationDays:
          type: string
          description: Indica a quantidade de dias de antecipação automática
        automaticAnticipation1025Delay:
          type: string
          description: Indica a quantidade de dias que serão desconsiderados na contabilização do valor passível de ser antecipado. A contagem de dias é realizada a partir do dia da antecipação para trás
    TransferPolicyCreated:
      type: object
      properties:
        id:
          type: string
          description: Identificação da transferência
        updatedAt:
          type: string
          description: Data de alteração da transferência
        createdAt:
          type: string
          description: Data de criação da transferência
        transferPolicy:
          $ref: "#/components/schemas/TransferPolicy"
    RateAgreements:
      type: array
      description: Acordo de taxas para cadastro de seller no provedor Braspag. O envio desse nó é opcional durante a criação do recebedor.
      items:
        type: object
        properties:
          type:
            type: string
            enum: [GlobalRate, FeePaymentMethod]
            description: Cenários de acordo de taxas
          percent:
            type: number
            description: Porcentagem da taxa de desconto única (MDR único) para acordo do tipo GlobalRate. Valor com até duas casas decimais. Só deve ser enviado em caso de cadastro de seller com Taxa global.
          fee:
            type: number
            description: Taxa fixa por transação. Valor em centavos. Ex => R$ 1,00 => Fee = 100
          merchantDiscountRates:
            type: array
            items:
              type: object
              properties:
                paymentArrangement:
                  type: object
                  properties:
                    product:
                      type: string
                      enum: [CreditCard, DebitCard]
                      description: Produto do arranjo de pagamento da taxa de desconto do seller.
                    brand:
                      type: string
                      enum: [Visa, Master, Amex, Elo, Diners, Hipercard]
                      description: Bandeira do arranjo de pagamento da taxa de desconto do seller. As bandeiras válidas são Visa, Master, Amex, Elo, Diners e Hipercard.
                initialInstallmentNumber:
                  type: number
                  description: Número inicial do intervalo de parcelas da taxa de desconto do seller. O número de parcelas deverá ser maior do que 0 e menor ou igual a 12.
                finalInstallmentNumber:
                  type: number
                  description: Número final do intervalo de parcelas da taxa de desconto do seller. O número de parcelas deverá ser maior do que 0 e menor ou igual a 12.
                percent:
                  type: number
                  description: Porcentagem da taxa de desconto do seller. Valor com até duas casas decimais.
        required:
          - fee
    Flow:
      type: object
      properties:
        name:
          type: string
          description: Nome amigável do fluxo para fácil identificação
        merchantId:
          type: string
          description: Identificador do merchant responsável pelo fluxo
        paymentMethod:
          type: string
          description: Tipo do método de pagamento responsável pelo fluxo
          enum: ["credit", "boleto", "pix"]
        flow:
          type: object
          description: Dados do fluxo que será cadastrado
        parentId:
          type: string
          description: Identificador do fluxo que originou esse novo que será criado
    FlowResponse:
      type: object
      properties:
        id:
          type: string
          description: Identificador único do fluxo
        paymentMethod:
          type: string
          description: Método de pagamento a qual aquele fluxo é relacionado
        clientId:
          type: string
          description: Identificador do cliente dono do fluxo
        merchants:
          type: array
          items:
            type: object
            properties:
              merchantId:
                type: string
                description: Identificador do merchant relacionado ao fluxo
        parentId:
          type: string
          description: Identificador do fluxo que originou o novo
        restoredFrom:
          type: string
          description: Identificador do fluxo do qual este foi restaurado
        createdAt:
          type: string
          description: Data e hora em que o fluxo foi criado (UTC)
        flow:
          type: object
          description: Dados do fluxo que será cadastrado
      example:
        id: "b4ced0dd-2136-4bce-a231-364e93554073"
        merchants: [{ merchantId: "z1babb21-6a4c-987d-89db-11d3af737ee1" }]
        paymentMethod: "credit"
        clientId: "f1babb21-6a4c-323d-12db-69d3af407ee1"
        parentId: "g1babb21-6a4c-987d-89db-11d3af737ee1"
        createdAt: "2023-03-22T20:45:06.020Z"
        flow:
          {
            "version": "0.0.0",
            "root":
              [
                {
                  "rule": "provider",
                  "id": "z1babb21-6a4c-987d-89db-11d3af737ee1",
                },
              ],
          }
        restoredFrom: "df601922-e024-6394-8f12-af21ec4218b1"
    AllFlowResponse:
      type: object
      properties:
        items:
          type: array
          items:
            allOf:
              - $ref: "#/components/schemas/FlowResponse"
        meta:
          allOf:
            - $ref: "#/components/schemas/MetaPagination"
      example:
        items:
          - id: "b4ced0dd-2136-4bce-a231-364e93554073"
            paymentMethod: "credit"
            clientId: "f1babb21-6a4c-323d-12db-69d3af407ee1"
            merchants: [{ merchantId: "z1babb21-6a4c-987d-89db-11d3af737ee1" }]
            parentId: "g1babb21-6a4c-987d-89db-11d3af737ee1"
            createdAt: "2023-03-22T20:45:06.020Z"
            flow:
              {
                "version": "0.0.0",
                "root":
                  [
                    {
                      "rule": "provider",
                      "id": "z1babb21-6a4c-987d-89db-11d3af737ee1",
                    },
                  ],
              }
            restoredFrom: "df601922-e024-6394-8f12-af21ec4218b1"
        meta:
          itemCount: 10
          totalItems: 20
          itemsPerPage: 10
          totalPages: 5
          currentPage: 2

    RestoreFlow:
      type: object
      properties:
        merchantId:
          type: string
          description: Identificador do merchant a qual o fluxo pertence
      example:
        merchantId: "df601922-e024-6394-8f12-af21ec4218b1"

    ExportDataRequest:
      type: object
      required: [sendTo, type, fields, filters]
      oneOf:
        - $ref: "#/components/schemas/ExportDataRequestTransactions"
        - $ref: "#/components/schemas/ExportDataRequestTransactionsHistory"

    ExportDataRequestTransactions:
      type: object
      title: Relatório Simples
      description: Possuí somente o ultimo status de transação
      properties:
        sendTo:
          type: string
          description: E-mail para qual a exportação será enviada
        type:
          type: string
          enum: [transactions]
          description: Tipo de relatório
        fields:
          oneOf:
            - $ref: "#/components/schemas/ExportDataFieldsRequestDefault"
            - $ref: "#/components/schemas/ExportDataFieldsRequestTransactions"
        filters:
          description: Filtros que serão aplicados aos dados para a exportação
          allOf:
            - $ref: "#/components/schemas/ExportDataFiltersRequest"

    ExportDataRequestTransactionsHistory:
      type: object
      title: Relatório completo
      description: Possuí todo ciclo de vida da transação
      properties:
        sendTo:
          type: string
          description: E-mail para qual a exportação será enviada
        type:
          type: string
          enum: [transactionsHistory]
          description: Tipo de relatório
        fields:
          oneOf:
            - $ref: "#/components/schemas/ExportDataFieldsRequestDefault"
            - $ref: "#/components/schemas/ExportDataFieldsRequestTransactionsHistory"
        filters:
          description: Filtros que serão aplicados aos dados para a exportação
          allOf:
            - $ref: "#/components/schemas/ExportDataFiltersRequest"

    ExportDataFieldsRequestDefault:
      type: string
      title: Todos
      description: Exportando todos os campos
      enum: [all]

    ExportDataFieldsRequestTransactions:
      type: string
      title: Campos selecionados
      description: Selecionando campos para exportar
      enum:
        [
          transaction__created_at,
          transaction__id,
          transaction__order_id,
          session__id,
          transaction__merchant_id,
          transaction__description,
          transaction_source__payment_method,
          provider__name,
          transaction__currency,
          transaction__original_amount,
          transaction__amount,
          transaction__installments,
          transaction__status,
          nupay__payment_type,
          nupay__installments_number,
          card_brand__brand,
          card__number,
          card__holder_name,
          transaction__statement_descriptor,
          transaction_request__tokenized_payment,
          token__created_at,
          customer__id,
          customer__name,
          customer__email,
          customer__phone_number,
          customer__document_number,
          customer_address__street,
          customer_address__street_number,
          customer_address__complement,
          customer_address__zip_code,
          customer_address__state,
          customer_address__city,
          customer_address__district,
          customer_address__country,
          transaction_request__network_transaction_id,
          transaction_request__authorization_code,
          transaction_request__authorization_nsu,
          transaction_request__idempotency_key,
          provider_error__retryable,
          provider_error__declined_code,
          provider_error__network_denied_reason,
          merchant__name,
        ]

    ExportDataFieldsRequestTransactionsHistory:
      type: string
      title: Campos selecionados
      description: Selecionando campos para exportar
      enum:
        [
          transaction__created_at,
          transaction__id,
          transaction__order_id,
          transaction__idempotency_key,
          transaction__merchant_id,
          merchant__name,
          transaction_source__payment_method_recurrence,
          transaction__capture,
          transaction__description,
          session__id,
          transaction__payment_flow_id,
          payment_flow__metadata,
          transaction_source__payment_method,
          nupay__payment_type,
          card__card_id,
          card__holder_name,
          card__number,
          card_brand__brand,
          transaction__statement_descriptor,
          transaction_request__tokenized_payment,
          token__created_at,
          transaction__responsible_provider_id,
          transaction__responsible_provider_type,
          transaction__currency,
          transaction__amount,
          transaction__original_amount,
          transaction__installments,
          nupay__installments_number,
          transaction__status,
          transaction__is_dispute,
          customer__id,
          customer__name,
          fraud_analysis_customer_metadata__name,
          fraud_analysis_customer_metadata__identity,
          customer__document_number,
          fraud_analysis_customer_metadata__email,
          customer__email,
          customer__phone_number,
          fraud_analysis_customer_metadata__phone,
          fraud_analysis_customer_address_metadata__street,
          fraud_analysis_customer_address_metadata__number,
          fraud_analysis_customer_address_metadata__complement,
          fraud_analysis_customer_address_metadata__zip_code,
          fraud_analysis_customer_address_metadata__city,
          fraud_analysis_customer_address_metadata__state,
          fraud_analysis_customer_address_metadata__district,
          fraud_analysis_customer_address_metadata__country,
          fraud_analysis_customer_delivery_address_metadata__street,
          fraud_analysis_customer_delivery_address_metadata__number,
          fraud_analysis_customer_delivery_address_metadata__complement,
          fraud_analysis_customer_delivery_address_metadata__zip_code,
          fraud_analysis_customer_delivery_address_metadata__city,
          fraud_analysis_customer_delivery_address_metadata__state,
          fraud_analysis_customer_delivery_address_metadata__district,
          fraud_analysis_customer_delivery_address_metadata__country,
          customer_address__street,
          customer_address__street_number,
          customer_address__complement,
          customer_address__zip_code,
          customer_address__city,
          customer_address__state,
          customer_address__district,
          customer_address__country,
          transaction_request__created_at,
          transaction_request__updated_at,
          transaction_request__id,
          transaction_request__provider_id,
          transaction_request__authorization_nsu,
          transaction_request__network_transaction_id,
          transaction_request__idempotency_key,
          transaction_request__provider_type,
          transaction_request__authorization_code,
          transaction_request__request_type,
          transaction_request__response_ts,
          transaction_request__amount,
          transaction_request__request_status,
          provider_error__network_denied_message,
          provider_error__message,
          provider_authorization__network_response_code,
          transaction_request__response_code,
          provider_error__declined_code,
          provider_error__network_denied_reason,
          provider_error__retryable,
          transaction_request_fraud_analysis__score,
          transaction_request_fraud_analysis__fraud_analysis,
        ]

    ExportDataFiltersRequest:
      type: object
      properties:
        transactionRequestPaymentMethod:
          type: array
          required: [transactionCreatedAt]
          enum: [credit, pix, boleto, nupay, picpay]
          description: Métodos de pagamentos para exportação
        transactionStatus:
          type: array
          enum:
            [
              pending,
              pre_authorized,
              authorized,
              failed,
              canceled,
              voided,
              charged_back,
              refund_pending,
              capture_pending,
              created,
            ]
          description: Status dos pagamentos que serão exportados
        transactionCreatedAt:
          type: object
          description: Objeto que define o escopo de datas a ser exportada
          required: [gte, lte]
          properties:
            gte:
              type: string
              title: UTC
              description: Início do período no formato ISO 8601
              format: "2019-08-24T14:15:22Z"
            lte:
              type: string
              title: UTC
              description: Fim do período no formato ISO 8601
              format: "2019-09-24T14:15:22Z"
        transactionMerchantId:
          type: string
          description: Id do merchant
          format: uuid
    ExportDataPendingResponse:
      type: object
      properties:
        id:
          type: string
          description: Id da exportação
        clientId:
          type: string
          description: Identificador do cliente na Malga
          format: uuid
        email:
          type: string
          description: E-mail para qual a exportação foi enviada
        language:
          type: string
          enum: [pt, en]
          description: Idioma usado na exportação
        type:
          type: string
          enum: [transactions, transactionsHistory]
          description: Tipo de relatório
        status:
          type: array
          enum:
            [
              created,
              pending,
              processing,
              uploaded,
              sent,
              opened,
              expired,
              error,
              empty,
            ]
        pagesCount:
          type: number
          description: Número de arquivos gerados
        files:
          type: array
          description: Lista do nome dos arquivos gerados
        fields:
          type: array
          items:
            type: string
            description: Lista de filtros que foram exportados
            enum:
              [
                card_brand__brand,
                card__holder_name,
                customer__client_id,
                customer__name,
                customer__email,
                customer__phone_number,
                customer__document_number,
                customer__customer_adress_id,
                customer_address__complement,
                customer_address__zip_code,
                customer_address__street,
                customer_address__street_number,
                customer_address__state,
                customer_address__city,
                customer_address__district,
                customer_address__country,
                nupay__payment_type,
                transaction__id,
                transaction__amount,
                transaction__original_amount,
                transaction__created_at,
                transaction__currency,
                transaction__description,
                transaction__order_id,
                transaction__merchant_id,
                transaction_request__created_at,
                transaction_request__payment_method,
                transaction_request__provider_id,
                transaction__installments,
                transaction__status,
                transaction_source__card_id,
                transaction__statement_descriptor,
                provider__name,
                session__id,
              ]
        createdAt:
          type: string
          description: Data da criação
          format: "2023-04-01T00:00:00Z"
        updatedAt:
          type: string
          description: Data da atualização
          format: "2023-04-01T00:01:00Z"
        expiredAt:
          type: string
          description: Data de expiração dos links para download dos arquivos
          format: "2023-05-01T00:00:00Z"
        timezone:
          type: string
          description: Timezone utilizado para as datas
          format: "America/Sao_Paulo"
        filters:
          description: Filtros que foram aplicados aos dados para a exportação
          allOf:
            - $ref: "#/components/schemas/ExportDataFiltersRequest"
    SplitRulesFaresSchema:
      type: object
      properties:
        mdr:
          type: number
          description: "Indica o percentual a ser descontado do valor de uma transação, definido por produto (crédito/débito/boleto), bandeira e faixa de parcelamento"
        fee:
          type: number
          description: "Indica valor em centavos a ser cobrado por transação capturada. É descontado no momento da “montagem” da agenda financeira"
    PixItem:
      properties:
        id:
          type: string
          description: Id do item a ser pago com Pix
        title:
          type: string
          description: Descrição do item a ser pago com Pix
        unitPrice:
          type: string
          description: Valor do item a ser pago com Pix
        quantity:
          type: array
          description: Quantidade de itens a serem pagos com Pix
    VoucherItem:
      properties:
        id:
          type: string
          description: Id do item a ser pago com Voucher
        title:
          type: string
          description: Descrição do item a ser pago com Voucher
        unitPrice:
          type: string
          description: Valor unitário do item a ser pago com Voucher
        quantity:
          type: array
          description: Quantidade de itens a serem pagos com Voucher
    VoucherCustomer:
      type: object
      properties:
        name:
          type: string
          description: Nome do usuário
        email:
          type: string
          description: Email do usuário
        phone:
          type: string
          description: Telefone de contato do usuário
        identityType:
          type: string
          description: Tipo de documento, consultar tabela de tipos suportados
        identity:
          type: string
          description: Número do documento formato conforme tipo selecionado
        billingAddress:
          description: Endereço de cobrança
          allOf:
            - $ref: "#/components/schemas/VoucherAddress"
    DripItem:
      properties:
        id:
          type: string
          description: Id do item a ser pago com Drip
        title:
          type: string
          description: Descrição do item a ser pago com Drip
        unitPrice:
          type: string
          description: Valor do item a ser pago com Drip
        quantity:
          type: array
          description: Quantidade de itens a serem pagos com Drip
    DripBrowser:
      properties:
        ipAddress:
          type: string
          description: IP do usuário
        browserFingerprint:
          type: string
          description: Fingerprint do navegador utilizado pelo usuário
    PixAdditionalInfo:
      properties:
        name:
          type: string
          description: Nome da propriedade adicional
        value:
          type: string
          description: Valor da propriedade declarada em `name`

    VendorAddress:
      type: object
      required: [country, state, city, district, zipCode, street, streetNumber]
      properties:
        country:
          type: string
          description: Pais onde se localiza o endereço - Padrão ISO 3166-1 alpha-2
          enum:
            [
              "AL",
              "AD",
              "AR",
              "AT",
              "AU",
              "BA",
              "BZ",
              "BE",
              "BG",
              "BR",
              "BY",
              "CA",
              "CU",
              "CY",
              "CZ",
              "CH",
              "CL",
              "CN",
              "CO",
              "CR",
              "DE",
              "DK",
              "DO",
              "EC",
              "EE",
              "SV",
              "GT",
              "FI",
              "FR",
              "GB",
              "GR",
              "HR",
              "HK",
              "HU",
              "IS",
              "ID",
              "IE",
              "IN",
              "IL",
              "IT",
              "LI",
              "LT",
              "LU",
              "LV",
              "MK",
              "MC",
              "MD",
              "MT",
              "MU",
              "JP",
              "KR",
              "MX",
              "ME",
              "MY",
              "NL",
              "NZ",
              "NO",
              "PY",
              "PE",
              "PK",
              "PL",
              "PT",
              "RU",
              "RO",
              "SM",
              "RS",
              "SE",
              "SG",
              "TH",
              "TW",
              "TR",
              "SI",
              "SK",
              "ES",
              "UY",
              "UA",
              "US",
              "VE",
              "VN",
              "ZA",
            ]
        state:
          type: string
          description: Estado
        city:
          type: string
          description: Cidade
        district:
          type: string
          description: Bairro
        zipCode:
          type: string
          description: Código postal CEP
        street:
          type: string
          description: Nome da rua/avenida/travessa
        streetNumber:
          type: string
          description: Número da rua
        complement:
          type: string
          description: Complemento caso exista

    VendorRequest:
      type: object
      required: [referenceId, identityType, identity, mcc, name, address]
      properties:
        referenceId:
          type: string
          description: Identificador do vendedor no seu sistema. (Número máximo de caracteres 15)
          maxLength: 15
        identityType:
          type: string
          description: Tipo de documento
          enum: ["CPF", "CNPJ"]
        identity:
          type: string
          description: Número do documento formato conforme tipo selecionado
        mcc:
          type: string
          description: Código de segmento do lojista no adquirente, solicite ao seu provedor caso não saiba qual o seu Merchant Category Code.
        name:
          type: string
          description: Nome Completo / Razão Social
        email:
          type: string
          nullable: true
          description: Email do vendedor
        phoneNumber:
          type: string
          nullable: true
          description: Telefone de contato do vendedor
        website:
          type: string
          nullable: true
          description: Identificação do merchant id a ser utilizado
        address:
          allOf:
            - $ref: "#/components/schemas/VendorAddress"

    VendorResponse:
      type: object
      properties:
        id:
          type: string
          description: Identificador do vendedor na malga
        referenceId:
          type: string
          description: Identificador do vendedor no seu sistema
        identityType:
          type: string
          description: Tipo de documento
          enum: ["CPF", "CNPJ"]
        identity:
          type: string
          description: Número do documento formato conforme tipo selecionado
        mcc:
          type: string
          description: Código de segmento do lojista no adquirente, solicite ao seu provedor caso não saiba qual o seu Merchant Category Code.
        name:
          type: string
          description: Nome Completo / Razão Social
        email:
          type: string
          description: Email do vendedor
        phoneNumber:
          type: string
          description: Telefone de contato do vendedor
        website:
          type: string
          description: Identificação do merchant id a ser utilizado
        address:
          allOf:
            - $ref: "#/components/schemas/VendorAddress"
        updatedAt:
          type: string
          description: Data de alteração do vendedor
        createdAt:
          type: string
          description: Data de criação do vendedor

    VendorUpdateRequest:
      type: object
      properties:
        referenceId:
          type: string
          description: Identificador do vendedor no seu sistema
        identityType:
          type: string
          description: Tipo de documento
          enum: ["CPF", "CNPJ"]
        identity:
          type: string
          description: Número do documento formato conforme tipo selecionado
        mcc:
          type: string
          description: Código de segmento do lojista no adquirente, solicite ao seu provedor caso não saiba qual o seu Merchant Category Code.
        name:
          type: string
          description: Nome Completo / Razão Social
        email:
          type: string
          description: Email do vendedor
        phoneNumber:
          type: string
          description: Telefone de contato do vendedor
        website:
          type: string
          description: Identificação do merchant id a ser utilizado
        address:
          allOf:
            - $ref: "#/components/schemas/VendorAddress"

    VendorCharge:
      type: object
      description: Parâmetros adicionais para transacionar com `vendors`
      properties:
        id:
          type: string
          format: uuid
          description: Identificador do vendedor já cadastrado na API de [vendors](/api-reference/vendors/criacao-de-um-novo-vendedor)
        paymentFacilitatorId:
          type: string
          description: Seu código de Subadquirente na respectiva bandeira. [Verifique a lista de provedores suportados](/documentations/vendors/provedores)
          nullable: true
      required: [id, paymentFacilitatorId]

    PrepaymentReceivablesSummary:
      type: object
      description: Resumo dos recebíveis disponíveis para antecipação.
      properties:
        availableAmount:
          type: integer
          format: int64
          description: Valor total disponível para antecipação, em centavos.
          example: 25000
        receivableCount:
          type: integer
          description: Quantidade de recebíveis disponíveis.
          example: 3
      required: [availableAmount, receivableCount]

    PrepaymentReceivableListItem:
      type: object
      description: Recebível individual disponível para antecipação.
      properties:
        id:
          type: string
          format: uuid
          description: Identificador do recebível.
          example: "019d6afe-c505-70a9-8df0-d052b578b35a"
        settlementDate:
          type: string
          format: date
          description: Data prevista de recebimento original (YYYY-MM-DD).
          example: "2026-06-15"
        paymentArrangement:
          type: string
          description: Arranjo de pagamento do recebível (bandeira/modalidade).
          example: "vcc"
        amount:
          type: integer
          format: int64
          description: Valor original do recebível, em centavos.
          example: 12000
      required: [id, settlementDate, paymentArrangement, amount]

    PrepaymentReceivablesResponse:
      type: object
      properties:
        summary:
          $ref: "#/components/schemas/PrepaymentReceivablesSummary"
        receivables:
          type: array
          description: Lista de recebíveis disponíveis, ordenada pela data prevista de recebimento.
          items:
            $ref: "#/components/schemas/PrepaymentReceivableListItem"
      required: [summary, receivables]

    PrepaymentSimulateRequest:
      type: object
      properties:
        sellerId:
          type: string
          description: ID do recebedor para antecipar recebíveis dele. Se omitido, opera sobre a conta principal.
          nullable: true
          example: "123"
        endDate:
          type: string
          format: date
          description: Data-limite (YYYY-MM-DD) do período a antecipar. A Malga inclui todos os recebíveis elegíveis com data prevista de recebimento **até essa data (inclusive)**.
          example: "2026-06-20"
      required: [endDate]

    PrepaymentItemResponse:
      type: object
      description: |
        Recebível individual incluído na antecipação.
      properties:
        receivableUnitExternalId:
          type: string
          description: Identificador do recebível antecipado.
          example: "ru-ext-ok-1"
        grossAmount:
          type: integer
          format: int64
          description: Valor original do recebível, em centavos.
          example: 12000
        netAmount:
          type: integer
          format: int64
          description: Valor líquido deste recebível após o desconto, em centavos.
          example: 11594
        markupAmount:
          type: integer
          format: int64
          description: Parte do desconto correspondente ao markup do contrato, em centavos.
          example: 232
        feeAmount:
          type: integer
          format: int64
          description: Parte do desconto correspondente à taxa base da Malga, em centavos.
          example: 174
        daysToAnticipate:
          type: integer
          description: Quantos dias estão sendo antecipados em relação à data original de recebimento.
          example: 30
        settlementDate:
          type: string
          format: date
          description: Data prevista de recebimento original deste recebível (YYYY-MM-DD).
          example: "2026-06-15"
        paymentArrangement:
          type: string
          description: Arranjo de pagamento do recebível.
          example: "vcc"
      required:
        - receivableUnitExternalId
        - grossAmount
        - netAmount
        - markupAmount
        - feeAmount
        - daysToAnticipate
        - settlementDate
        - paymentArrangement

    PrepaymentResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador da antecipação.
          example: "01964c5a-0001-7000-8000-000000000001"
        status:
          type: string
          enum: [pending, committed, paid, expired]
          description: |
            Status atual da antecipação:
            - `pending`: simulação criada, ainda não aceita.
            - `committed`: aceite confirmado, antecipação em processamento.
            - `paid`: pagamento da antecipação realizado.
            - `expired`: simulação expirou (passou de 15h sem aceite) ou aceite recusado porque o conjunto de recebíveis mudou.
          example: "pending"
        grossAmount:
          type: integer
          format: int64
          description: Soma do valor original dos recebíveis incluídos em `items`, em centavos.
          example: 20000
        netAmount:
          type: integer
          format: int64
          description: Valor líquido a ser recebido pelo cliente após o desconto, em centavos.
          example: 19323
        markupAmount:
          type: integer
          format: int64
          description: Componente do desconto referente ao markup do contrato, em centavos.
          example: 387
        feeAmount:
          type: integer
          format: int64
          description: Componente do desconto referente à taxa base da Malga, em centavos.
          example: 290
        effectiveRate:
          type: number
          format: double
          description: Taxa efetiva total da antecipação sobre o valor bruto.
          example: 0.033850
        monthlyRate:
          type: number
          format: double
          description: Taxa mensal base aplicada no cálculo (decimal).
          example: 0.015
        markup:
          type: number
          format: double
          description: Markup mensal do contrato aplicado no cálculo (decimal).
          example: 0.02
        expiresAt:
          type: string
          format: date-time
          description: Data e hora limite para confirmar a antecipação (sempre 15h, horário de Brasília, do dia da simulação).
          example: "2026-05-27T18:00:00Z"
        endDate:
          type: string
          format: date
          description: Data-limite (YYYY-MM-DD) considerada na simulação. Todos os recebíveis com data de recebimento até essa data (inclusive) foram incluídos.
          example: "2026-06-20"
        paymentDate:
          type: string
          format: date
          description: Data prevista de pagamento da antecipação (YYYY-MM-DD). Retornada para simulações pendentes (D+1 se criada antes das 15h) e após o aceite.
          example: "2026-05-28"
        items:
          type: array
          description: Lista dos recebíveis incluídos na antecipação.
          items:
            $ref: "#/components/schemas/PrepaymentItemResponse"
      required:
        - id
        - status
        - grossAmount
        - netAmount
        - markupAmount
        - feeAmount
        - effectiveRate
        - monthlyRate
        - markup
        - expiresAt
        - items

    PrepaymentPaginationMeta:
      type: object
      description: |
        Metadados da paginação da listagem de antecipações.
      properties:
        totalItems:
          type: integer
          description: Quantidade total de antecipações encontradas.
          example: 32
        itemCount:
          type: integer
          description: Quantidade de antecipações retornadas nesta página.
          example: 10
        itemsPerPage:
          type: integer
          description: Quantidade de itens por página considerada na consulta.
          example: 10
        totalPages:
          type: integer
          description: Quantidade total de páginas.
          example: 4
        currentPage:
          type: integer
          description: Página retornada nesta resposta.
          example: 1
      required:
        - totalItems
        - itemCount
        - itemsPerPage
        - totalPages
        - currentPage

    PrepaymentListResponse:
      type: object
      properties:
        items:
          type: array
          description: Antecipações da página, da mais recente para a mais antiga.
          items:
            $ref: "#/components/schemas/PrepaymentResponse"
        meta:
          $ref: "#/components/schemas/PrepaymentPaginationMeta"
      required: [items, meta]

    PrepaymentError:
      type: object
      properties:
        code:
          type: string
          description: Código interno do erro.
          enum: [I-400, I-401, I-403, I-404, I-409, I-422]
          example: "I-403"
        networkDeniedMessage:
          type: string
          description: Mensagem detalhando o erro.
          example: "Client is not eligible for prepayment"
      required: [code, networkDeniedMessage]

  examples:
    PaySession201CardResponse:
      summary: Exemplo resposta cobrança por cartão
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        merchantId: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        description: "Descrição longa da cobrança"
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        createdAt: "2012-06-30 23:59:59 +0000"
        amount: 150
        originalAmount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        status: pending
        paymentMethod:
          paymentType: "credit"
          installments: 1
        paymentSource:
          sourceType: "card"
          cardId: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
            providerType: "STRIPE"
            transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
            amount: 1500
            authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
            providerAuthorization:
              networkAuthorizationCode: "00"
              networkResponseCode: ""
    PaySession201PixResponse:
      summary: Exemplo resposta cobrança PIX
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        merchantId: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        description: "Descrição longa da cobrança"
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        createdAt: "2012-06-30 23:59:59 +0000"
        amount: 150
        originalAmount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        status: pending
        paymentMethod:
          paymentType: "pix"
          expiresIn: 3600
          qrCodeData: "00020101021126510014BR.GOV.BCB.PIX0129K89VdiUgWN1B3p0IHrgHkNHg9tX5F52040000530398654040.155802BR5913Customer test600062070503***630431C0"
          qrCodeImageUrl: "https://...."
        paymentSource:
          sourceType: "customer"
          customerId: "1cdcf0c9-eb04-4e43-b9b2-b7a4acdead1f"
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
            providerType: "STRIPE"
            transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
            amount: 1500
            authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
            providerAuthorization:
              networkAuthorizationCode: "00"
              networkResponseCode: ""
    PaySession201DripResponse:
      summary: Exemplo resposta cobrança Drip
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "290f9fcc-2d89-11ee-be56-0242ac120002"
        merchantId: "ba3f0dba-905d-4705-9e61-a75d6a6eca5d"
        description: "Descrição longa da cobrança"
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        createdAt: "2012-06-30 23:59:59 +0000"
        amount: 150
        originalAmount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        capture: true
        isDispute: false
        status: pending
        paymentMethod:
          paymentType: "drip"
          maxInstallments: 4
          paymentUrl: "https://sandbox-portal.dripapp.com.br/checkouts/a1fa9d15-e3e5-46a7-a507-613a73b35315"
          items:
            - id": "12345"
              quantity": 1
              title": "title item"
              unitPrice": 150
          browser:
            ipAddress: "127.0.0.1"
            browserFingerprint: "cbd4a441-c63c-4dee-ac6b-bfa7fa1df818"
          cancelRedirectUrl: "https://service-example.com/cancel"
          successRedirectUrl: "https://service-example.com/success"
        paymentSource:
          sourceType: "customer"
          customerId: "1cdcf0c9-eb04-4e43-b9b2-b7a4acdead1f"
        transactionRequests:
          - id: "b0ba6be9-1d18-49e0-87a5-4936fe76c65a"
            createdAt: "2023-07-18T00:00:04.169Z"
            updatedAt: "2023-07-18T00:00:04.713Z"
            idempotencyKey: "036b42b2-16f2-498d-9e5a-42fb8b690e11"
            providerId: "769bce00-678e-4d64-9617-9ce82f4dfcbf"
            providerType: "DRIP"
            transactionId: "036b42b2-16f2-498d-9e5a-42fb8b690e11"
            amount: 150
            authorizationCode: "735e6b88-8878-4c3e-9047-d93d0ee1542d"
            authorizationNsu: null
            requestStatus: "success"
            requestType: "pending"
            responseTs: "475ms"
            drip:
              paymentUrl: "https://sandbox-portal.dripapp.com.br/checkouts/a1fa9d15-e3e5-46a7-a507-613a73b35315"
              items:
                - id": "12345"
                  quantity": 1
                  title": "title item"
                  unitPrice": 150
              browser:
                ipAddress: "127.0.0.1"
                browserFingerprint: "cbd4a441-c63c-4dee-ac6b-bfa7fa1df818"
              cancelRedirectUrl: "https://service-example.com/cancel"
              successRedirectUrl: "https://service-example.com/success"
    PaySession201BoletoResponse:
      summary: Exemplo resposta cobrança Boleto
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        merchantId: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        description: "Descrição longa da cobrança"
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        createdAt: "2012-06-30 23:59:59 +0000"
        amount: 150
        originalAmount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        status: pending
        paymentMethod:
          paymentType: "boleto"
          expiresDate: "2021-12-31"
          barcodeData: "412343241324321431241341"
          barcodeImageUrl: "https://...."
        paymentSource:
          sourceType: "customer"
          customerId: "1cdcf0c9-eb04-4e43-b9b2-b7a4acdead1f"
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
            providerType: "STRIPE"
            transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
            amount: 1500
            authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
            providerAuthorization:
              networkAuthorizationCode: "00"
              networkResponseCode: ""
    PaySession201NupayResponse:
      summary: Exemplo resposta cobrança Nupay
      value:
        id: "6d2ff1d1-def7-4cd6-86a2-11b9289c8263"
        clientId: "<CLIENT_ID>"
        merchantId: "<MERCHANT_ID>"
        description": "Pagamento de sessão"
        orderId: "86150b4c-617e-461f-b5a2-895b065ca4b6"
        createdAt: "2023-11-20T18:19:07.388Z"
        amount: 100
        originalAmount: 100
        currency: "BRL"
        statementDescriptor: null
        isDispute: false
        status: "pending"
        paymentMethod:
          paymentType: "nupay"
        paymentSource":
          sourceType: "customer"
          customerId": "<CUSTOMER_ID>"
        fraudAnalysisMetadata:
          sla: null,
          customer:
            name: "Customer Name"
            email: "user@email.com"
            identity: "96596877027"
            identityType: "CPF"
            birthdate: null
            phone: "2191330299"
            billingAddress:
              country: "BR"
              street: "Rua do Carmo"
              number: "71"
              complement: null
              zipCode: "20011020"
              city: "Rio de Janeiro"
              state: "RJ"
              district: "Leblon"
            deliveryAddress": null
          cart:
            items:
              name: "desc"
              quantity: 1
              sku: "123"
              unitPrice: 1
              risk: "Low"
              locality": null,
              date": null,
              type": null,
              genre": null,
              tickets": null,
              location": null
        transactionRequests:
          id: "a10e3dbf-edc9-4984-8982-2f5579ae0c26"
          createdAt: "2023-09-12T18:19:07.563Z"
          updatedAt: "2023-09-12T18:19:08.079Z"
          idempotencyKey": "3a950c0f-6582-4aaa-92c7-4d642166d2bf"
          providerId": "242e3e9d-5e49-4ef0-97cc-85f7562cc965"
          providerType": "NUPAY"
          transactionId": "2dd95fe6-550e-4192-b8d5-e5fe529cd285"
          amount": 100
          authorizationCode": null
          authorizationNsu": null
          requestStatus": "success"
          requestType": "pending"
          responseTs": "437ms"
          nupay:
            expiresIn: 250000
            paymentUrl: "https://staging-nuapp.nubank.com.br/bdc/omniknight/expr/payment-intents.home-screen?payment-intent-id=76ac98f6-38e4-4b9e-a530-16761fa030e6&amount=100&storeName=Plug%20Pagamentos&version=announcement&token=SQ5xJKHG%2FCMs7ztjkwusP7QHsHdwRWs3aEc%2FHu4%2F9efdq%2FlBq6fXbOsockCbnJmv8l%2F6OyBCe3qka%2BZ8dt6mCw%3D%3D&poId=2dd95fe6-550e-4192-b8d5-e5fe529cd285"
    PaySessionPixRequest:
      summary: Exemplo cobrança Pix
      value:
        paymentMethod:
          paymentType: "pix"
          expiresIn: 3600
        paymentSource:
          sourceType: "customer"
          customer:
            name: "Customer test"
            email: "jose2@gmail.com"
            document:
              number: "97055503019"
              type: "cpf"
            phoneNumber: "21 98889999099"
    PaySessionDripRequest:
      summary: Exemplo cobrança Drip
      value:
        customerId: "69777a21-15b8-43a8-8fb5-08a459129d3b"
        paymentMethod:
          paymentType: "drip"
          browser:
            ipAddress: "127.0.0.1"
            browserFingerprint: "1231232131232133"
        paymentSource:
          sourceType": "customer"
          customer":
            name: "Customer Name"
            email: "customer@email.com"
            phoneNumber": "+341913302999"
            document:
              type: "cpf"
              number: "31807868095"
              country: "BR"
            address:
              country: "BR"
              state: "RJ"
              city: "Rio de Janeiro"
              district: "Leblon"
              zipCode: "20011020"
              street: "rua do carmo"
              streetNumber: "71"
              complement: "teste"
    PaySessionBoletoRequest:
      summary: Exemplo cobrança Boleto
      value:
        paymentMethod:
          paymentType: "boleto"
          expiresDate: "2022-12-31"
          instructions: "Instruções para pagamento do boleto"
          interest:
            days: 1
            amount: 100
            percentage: 0.2
          fine:
            days: 2
            amount: 200
            percentage: 0
        paymentSource:
          sourceType: "customer"
          customer:
            name: "Customer test"
            email: "jose2@gmail.com"
            document:
              number: "97055503019"
              type: "cpf"
            phoneNumber: "21 98889999099"
    PaySessionCardRequest:
      summary: Exemplo cobrança Cartão
      value:
        paymentMethod:
          paymentType: "credit"
          installments: 1
        paymentSource:
          sourceType: "card"
          card:
            cardNumber: "5261424250184574"
            cardCvv: "321"
            cardExpirationDate: "06/2028"
            cardHolderName: "JOAO DA SILVA"
    PaySessionCardRequestWithRecurrence:
      summary: Exemplo cobrança Cartão com recorrência
      value:
        paymentMethod:
          paymentType: "credit"
          installments: 1
          recurrence: "initial"
        paymentSource:
          sourceType: "card"
          card:
            cardNumber: "5261424250184574"
            cardCvv: "321"
            cardExpirationDate: "06/2028"
            cardHolderName: "JOAO DA SILVA"
    PaySessionNupayRequest:
      summary: Exemplo cobrança Nupay
      value:
        paymentMethod:
          paymentType: "nupay"
        paymentSource:
          sourceType: "customer"
          customer":
            name: "Customer Name"
            email: "customer@email.com"
            phoneNumber": "2191330299"
            document:
              type: "cpf"
              number: "31807868095"
              country: "BR"
            address:
              country: "BR"
              state: "RJ"
              city: "Rio de Janeiro"
              district: "Leblon"
              zipCode: "20011020"
              street: "Rua do Carmo"
              streetNumber: "71"
              complement: "complement"
        fraudAnalysis:
          customer":
            name: "Customer Name"
            identity: "31807868095"
            identityType: "CPF"
            email: "user@email.com"
            phone: "2191330299"
            billingAddress:
              street: "Rua do Carmo"
              zipCode: "20011020"
              number: "71"
              country: "BR"
              state: "RJ"
              district: "Leblon"
              city: "Rio de Janeiro"
          cart:
            items:
              sku: "123"
              name: "desc"
              quantity: 10
              unitPrice: 10
              risk: "Low"
    PatchSessionRequest:
      value:
        isActive: true
        dueDate: "2026-12-31T23:59:59Z"
        maxPayments: 10
    PatchSession200Response:
      value:
        id: "c1db83fa-723c-4e1f-9722-bc19d1be6791"
        isActive: true
    CancelSession201Response:
      value:
        id: "c1db83fa-723c-4e1f-9722-bc19d1be6791"
        status: "canceled"
    CreateSessionRequest:
      value:
        amount: 100
        name: "Loja 1"
        merchantId: "1b0c6960-702a-4074-95c2-eed2790c16a1"
        dueDate: "2022-10-25T09:28:45.000Z"
        createLink: true
        paymentMethods:
          - paymentType: "pix"
            expiresIn: 30
        items:
          - name: "Item 1"
            description: "Item do carrinho"
            unitPrice: 1000
            quantity: 1
            tangible: false
        splitRules:
          - sellerId: "5323ece6-816d-11ed-a1eb-0242ac120002"
            percentage: 100
            processingFee: false
            chargeEntireFee: false
            chargeRemainderFee: false
            liable: true
            transactionOwner: true
            fares:
              mdr: 2.5
              fee: 30
    CreateSessionRequest1NFixed:
      summary: Sessão 1:N com limite finito
      value:
        amount: 100
        name: "Loja 1"
        merchantId: "1b0c6960-702a-4074-95c2-eed2790c16a1"
        dueDate: "2026-02-20T23:59:59.000Z"
        createLink: true
        maxPayments: 5
        paymentMethods:
          - paymentType: "pix"
            expiresIn: 30
        items:
          - name: "Item 1"
            description: "Item do carrinho"
            unitPrice: 1000
            quantity: 1
            tangible: false
    CreateSessionRequest1NUnlimited:
      summary: Sessão 1:N ilimitada
      value:
        amount: 100
        name: "Loja 1"
        merchantId: "1b0c6960-702a-4074-95c2-eed2790c16a1"
        dueDate: "2026-02-20T23:59:59.000Z"
        createLink: true
        maxPayments: -1
        paymentMethods:
          - paymentType: "pix"
            expiresIn: 30
        items:
          - name: "Item 1"
            description: "Item do carrinho"
            unitPrice: 1000
            quantity: 1
            tangible: false
    Session:
      value:
        id: "1b0c6960-702a-4074-95c2-eed2790c16a1"
        name: "Nome da sessão"
        status: "created"
        isActive: true
        captchaEnabled: false
        clientId: "1b0c6960-702a-4074-95c2-eed2790c16a1"
        orderId: null
        amount: 100
        currency: "BRL"
        capture: true
        merchantId: "69aea152-ba70-49a3-a31c-044ac1651146"
        dueDate: "2022-10-25T09:28:45.000Z"
        description: "Promoção Black Friday"
        statementDescriptor: "LOJA JOAO"
        paymentMethods:
          - paymentType: "credit"
            installments: 1
        items:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            name: "Item 1"
            description: "Descrição do item"
            unitPrice: 10000
            quantity: 1
            tangible: false
        createdAt: "2022-10-25T09:28:45.000Z"
        updatedAt: "2022-10-25T09:28:45.000Z"
        publicKey: "1b0c6960-702a-4074-95c2-eed2790c16a1"
        multiplePayments:
          allow: false
          maxPayments: null
          paymentCount: 0
          pendingCount: 0
          status: "active"
        splitRules:
          - sellerId: "5323ece6-816d-11ed-a1eb-0242ac120002"
            percentage: 100
            processingFee: false
            chargeEntireFee: false
            chargeRemainderFee: false
            liable: true
            transactionOwner: true
            fares:
              mdr: 2.5
              fee: 30
    Session1N:
      summary: Sessão 1:N com disponibilidade agregada
      value:
        id: "1b0c6960-702a-4074-95c2-eed2790c16a1"
        name: "Nome da sessão"
        status: "created"
        isActive: true
        captchaEnabled: false
        clientId: "1b0c6960-702a-4074-95c2-eed2790c16a1"
        orderId: null
        amount: 100
        currency: "BRL"
        capture: true
        merchantId: "69aea152-ba70-49a3-a31c-044ac1651146"
        dueDate: "2026-02-20T23:59:59.000Z"
        description: "Promoção Black Friday"
        statementDescriptor: "LOJA JOAO"
        paymentMethods:
          - paymentType: "pix"
            expiresIn: 30
        items:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            name: "Item 1"
            description: "Descrição do item"
            unitPrice: 10000
            quantity: 1
            tangible: false
        createdAt: "2026-02-20T09:28:45.000Z"
        updatedAt: "2026-02-20T09:28:45.000Z"
        publicKey: "1b0c6960-702a-4074-95c2-eed2790c16a1"
        multiplePayments:
          allow: true
          maxPayments: 5
          paymentCount: 1
          pendingCount: 0
          status: "active"
    SessionHistoryResponse:
      value:
        - id: "550e8400-e29b-41d4-a716-446655440003"
          status: "disabled"
          createdAt: "2026-05-20T00:00:01.000Z"
          updatedAt: "2026-05-20T00:00:01.000Z"
          clientId: "39d2d314-5412-431a-b34b-74f9f0fbe7e1"
          merchantId: "660e8400-e29b-41d4-a716-446655440002"
          action: "sessionExpiredByDueDate"
          actions:
            - sessionExpiredByDueDate
          diff:
            reason: "expired by due date"
            expiredAt: "2026-05-19T23:59:59.000Z"
            changes:
              isActive:
                from: true
                to: false
                reason: sessionExpiredByDueDate
        - id: "550e8400-e29b-41d4-a716-446655440002"
          status: "created"
          createdAt: "2026-05-19T14:30:00.000Z"
          updatedAt: "2026-05-19T14:30:00.000Z"
          clientId: "39d2d314-5412-431a-b34b-74f9f0fbe7e1"
          merchantId: "660e8400-e29b-41d4-a716-446655440002"
          action: "paymentSucceeded"
          actions:
            - paymentSucceeded
          diff:
            changes:
              response:
                from: null
                to:
                  chargeId: "880e8400-e29b-41d4-a716-446655440099"
                  status: "pending"
                  amount: 5000
            updatedAt: "2026-05-19T14:30:00.000Z"
        - id: "550e8400-e29b-41d4-a716-446655440001"
          status: "created"
          createdAt: "2026-05-19T12:00:00.000Z"
          updatedAt: "2026-05-19T12:00:00.000Z"
          clientId: "39d2d314-5412-431a-b34b-74f9f0fbe7e1"
          merchantId: "660e8400-e29b-41d4-a716-446655440002"
          action: "statusChanged"
          actions:
            - statusChanged
          diff:
            changes:
              status:
                from: null
                to: created
            createdAt: "2026-05-19T12:00:00.000Z"
    ErrorResponse:
      value:
        error:
          type: "card_declined"
          declinedCode: "invalid_number"
          message: "invalid card number"
    TokenRequestCard:
      summary: Exemplo de tokenização de cartão
      value:
        cardHolderName: "JOSE DAS NEVES"
        cardNumber: "4019598346009339"
        cardCvv: "123"
        cardExpirationDate: "12/2026"
    TokenRequestCvv:
      summary: Exemplo de tokenização do cvv
      value:
        cvvUpdate: "123"
    TokenResponse:
      value:
        tokenId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
    SetupRequest:
      summary: Exemplo de criação de sessão do 3DS2 Malga
      value:
        sourceType: "card"
        cardId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
    SetupResponse:
      value:
        id: "1b04367a-2386-4161-8c90-eac82267ee89"
        token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI0MzljZGU0NC05M2RkLTQ2ZWEtYWU0OC0zNTMwMzg3NGFjMmQiLCJpYXQiOjE3Mjc3MTU5NDksImlzcyI6IjVkZDgzYmYwMGU0MjNkMTQ5OGRjYmFjYSIsImV4cCI6MTcyNzcxOTU0OSwiT3JnVW5pdElkIjoiNjU0NDUzNzkzZDJmNTM1NWE3YjljN2IxIiwiUmVmZXJlbmNlSWQiOiJhNjNhZTI0NS0zNzJkLTQ1ODktODVlYS1iMDBmM2VmNjA0NGYifQ.o4IKYrNnFbr3xn-qSm_9qL-Sn-WvCpKOUMxZna7SiYE"
        collectUrl: "https://centinelapistag.cardinalcommerce.com/V1/Cruise/Collect"
        providerType: "CYBERSOURCE"
    AuthRequest:
      summary: Exemplo de chave pública com escopo de tokens
      value:
        scope: ["tokens"]
        expires: 31104000
    AuthRequestGraphql:
      summary: Exemplo de chave pública para a Analytics API
      value:
        scope: ["graphql"]
        expires: 0
    AuthResponse:
      value:
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        publicKey: "<YOUR_PUBLIC_KEY>"
        scope: ["tokens"]
        expires: 31104000
        createdAt: "20200110 00:00:00"
    CardRequest:
      value:
        tokenId: "82aba896-9e37-45b6-aa90-d510c9050596"
        merchantId: "cc4945bc-85f4-495e-adc6-3b281c9d957a"
        cvvCheck: true
    Card:
      description: Exemplo de resposta
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        status: "active"
        statusReason: null
        createdAt: "2012-08-11T19:02:56.713Z"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        brand: "Visa"
        cardHolderName: "JOAO DA SILVA"
        cvvChecked: true
        fingerprint: "cbd4a441-c63c-4dee-ac6b-bfa7fa1df818"
        first6digits: "401959"
        last4digits: "9339"
        customerId: "82aba896-9e37-45b6-aa90-d510c9050596"
        expirationMonth: "12"
        expirationYear: "2026"
        transactionRequests:
          - id: "edd0d86a-76d0-4c2c-b924-1528510a5a32"
            createdAt: "2023-09-25T18:09:59.001Z"
            providerId: "5ce68ed3-2213-423b-8eaf-9d8c4b40df2b"
            providerType: "SANDBOX"
            requestStatus: "success"
            requestType: "zero_dollar"
            responseTs: "32ms"
    CardWithToken:
      summary: Exemplo de resposta com token de bandeira
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        status: "active"
        statusReason: null
        createdAt: "2012-08-11T19:02:56.713Z"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        brand: "Visa"
        cardHolderName: "JOAO DA SILVA"
        cvvChecked: true
        fingerprint: "cbd4a441-c63c-4dee-ac6b-bfa7fa1df818"
        first6digits: "401959"
        last4digits: "9339"
        customerId: "82aba896-9e37-45b6-aa90-d510c9050596"
        expirationMonth: "12"
        expirationYear: "2026"
        transactionRequests:
          - id: "edd0d86a-76d0-4c2c-b924-1528510a5a32"
            createdAt: "2023-09-25T18:09:59.001Z"
            providerId: "5ce68ed3-2213-423b-8eaf-9d8c4b40df2b"
            providerType: "SANDBOX"
            requestStatus: "success"
            requestType: "zero_dollar"
            responseTs: "32ms"
        tokens:
          - referenceId: "xop0d86a-76d0-4c2c-b924-9d8c4b40df2b"
            status: "active"
            type: "network_token"
            providerType: "pagos"
    CardList:
      value:
        meta:
          itemCount: 10
          totalItems: 20
          itemsPerPage: 10
          totalPages: 5
          currentPage: 2
        items:
          - id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
            customerId: "82aba896-9e37-45b6-aa90-d510c9050596"
            clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
            expirationMonth: "12"
            expirationYear: "2026"
            brand: "Visa"
            cvvChecked: true
            fingerprint: "cbd4a441-c63c-4dee-ac6b-bfa7fa1df818"
            first6digits: "401959"
            last4digits: "9339"
            createdAt: "2012-06-30 23:59:59 +0000"
            status: "active"
            tokens: []
    MetaPagination:
      value:
        itemCount: 10
        totalItems: 20
        itemsPerPage: 10
        totalPages: 5
        currentPage: 2
    ChargeCardRequest:
      summary: Exemplo cobrança Cartão
      value:
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        amount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: false
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "credit"
          installments: 1
        paymentSource:
          sourceType: "card"
          card:
            cardNumber: "5261424250184574"
            cardCvv: "321"
            cardExpirationDate: "06/2028"
            cardHolderName: "JOAO DA SILVA"
    ChargePixRequest:
      summary: Exemplo cobrança PIX
      value:
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        amount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: true
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "pix"
          expiresIn: 3600
        paymentSource:
          sourceType: "customer"
          customer:
            name: "Customer test"
            email: "jose2@gmail.com"
            document:
              number: "97055503019"
              type: "cpf"
            phoneNumber: "21 98889999099"
    ChargeBoletoRequest:
      summary: Exemplo cobrança Boleto
      value:
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        amount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: true
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "boleto"
          expiresDate: "2022-12-31"
          instructions: "Instruções para pagamento do boleto"
          interest:
            days: 1
            amount: 100
            percentage: 0.2
          fine:
            days: 2
            amount: 200
            percentage: 0
        paymentSource:
          sourceType: "customer"
          customer:
            name: "Customer test"
            email: "jose2@gmail.com"
            document:
              number: "97055503019"
              type: "cpf"
            phoneNumber: "21 98889999099"
    ChargeSplitRequest:
      summary: Exemplo de cobrança Cartão com Split
      value:
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        amount: 150
        currency: BRL
        statementDescriptor: "Pedido #231 loja joão"
        description: "Descrição longa da cobrança"
        capture: false
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "credit"
          installments: 1
        paymentSource:
          sourceType: "card"
          card:
            cardHolderName: "JOAO DA SILVA"
            cardNumber: "5261424250184574"
            cardCvv: "321"
            cardExpirationDate: "06/2028"
        splitRules:
          - sellerId: "32c68557-902c-408b-b464-cf487c7cda97"
            percentage: 10
            liable: true
            processingFee: false
            chargeEntireFee: true
            chargeRemainderFee: true
          - sellerId: "50c68557-802c-408b-b464-cf487c7cda97"
            percentage: 40
            liable: true
            processingFee: false
            chargeEntireFee: false
            chargeRemainderFee: true
    ChargeSplitRequestPix:
      summary: Exemplo de cobrança Pix com Split
      value:
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        amount: 150
        currency: BRL
        statementDescriptor: "Pedido #231 loja joão"
        description: "Descrição longa da cobrança"
        capture: false
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "pix"
          expiresIn: 3600
        paymentSource:
          sourceType: "customer"
          customer:
            name: "Customer test"
            email: "jose2@gmail.com"
            document:
              number: "97055503019"
              type: "cpf"
            phoneNumber: "21 98889999099"
        splitRules:
          - sellerId: "32c68557-902c-408b-b464-cf487c7cda97"
            percentage: 10
            liable: true
            processingFee: false
            chargeEntireFee: true
            chargeRemainderFee: true
          - sellerId: "50c68557-802c-408b-b464-cf487c7cda97"
            percentage: 40
            liable: true
            processingFee: false
            chargeEntireFee: false
            chargeRemainderFee: true
    ChargeSplitRequestBoleto:
      summary: Exemplo de cobrança Boleto com Split
      value:
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        amount: 150
        currency: BRL
        statementDescriptor: "Pedido #231 loja joão"
        description: "Descrição longa da cobrança"
        capture: false
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "boleto"
          expiresDate: "2022-12-31"
          instructions: "Instruções para pagamento do boleto"
          interest:
            days: 1
            amount: 100
            percentage: 0.2
          fine:
            days: 2
            amount: 200
            percentage: 0
        paymentSource:
          sourceType: "customer"
          customer:
            name: "Customer test"
            email: "jose2@gmail.com"
            document:
              number: "97055503019"
              type: "cpf"
            phoneNumber: "21 98889999099"
        splitRules:
          - sellerId: "32c68557-902c-408b-b464-cf487c7cda97"
            percentage: 10
            liable: true
            processingFee: false
            chargeEntireFee: true
            chargeRemainderFee: false
          - sellerId: "50c68557-802c-408b-b464-cf487c7cda97"
            percentage: 40
            liable: true
            processingFee: false
            chargeEntireFee: false
            chargeRemainderFee: true
    ChargeApplePayRequest:
      summary: Exemplo cobrança Apple Pay
      value:
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        amount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: false
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "apple_pay"
          installments: 1
        paymentSource:
          sourceType: "wallet"
          walletPayment: "credit"
          paymentData:
            data: "/ZCUzCmr236kDnnXb9cZsvG1JJOqe8GOuRDfCgJ...7haAXX9ml5c7eCIf+IQa1MSGUZYgawepPy"
            signature: "MIAGCSqGSIb3DQEHAqCAMIACAQExDTAL...s9BerKDnL1zoEcmcybKzgAAAAAAAA=="
            header:
              ephemeralPublicKey: "MFkwEwYHKoZIzj0CAQYIKo...ixBMa1KGjnGapsQih+Kdbg2fA=="
            version: "EC_v1"
    ChargeVendorExample:
      summary: Exemplo de cobrança Cartão com vendedor
      value:
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        amount: 150
        currency: BRL
        statementDescriptor: "Pedido #231 loja joão"
        description: "Descrição longa da cobrança"
        capture: false
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "credit"
          installments: 1
        paymentSource:
          sourceType: "card"
          card:
            cardHolderName: "JOAO DA SILVA"
            cardNumber: "5261424250184574"
            cardCvv: "321"
            cardExpirationDate: "06/2028"
        vendor:
          id: d36274c9-9675-4093-8ef5-cd84bc4a7c5d
          paymentFacilitatorID:

    Charge3DS2Request:
      summary: Exemplo cobrança Cartão e 3D Secure 2
      value:
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        amount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: false
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "credit"
          installments: 1
        paymentSource:
          sourceType: "card"
          card:
            cardNumber: "5261424250184574"
            cardCvv: "321"
            cardExpirationDate: "06/2028"
            cardHolderName: "JOAO DA SILVA"
        threeDSecure2:
          redirectURL: "https://your-company.com/receive"
          requestorURL: "https://api/your-company.com"
          browser:
            acceptHeader: "text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,image\/apng,*\/*;q=0.8"
            colorDepth: 24
            javaEnabled: true
            javaScriptEnabled: true
            language: "BR"
            screenHeight: 1080
            screenWidth: 1920
            timeZoneOffset: "180"
            userAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
            ip: "0.0.0.0"
          cardHolder:
            email: "cardHolder@email.com"
            mobilePhone: "11 99329899"
          billingAddress:
            city: "Rio de Janeiro"
            country: "BR"
            streetNumber: 159
            zipCode: "2547896"
            state: "RJ"
            street: "Av Brasil"
          shippingAddress:
            city: "São Paulo"
            country: "BR"
            streetNumber: 59
            zipCode: "2547896"
            state: "SP"
            street: "Rua das Flores"
    Charge3DSMPIExterno:
      summary: Exemplo cobrança Cartão e 3D Secure Com MPI Externo
      value:
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        amount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: false
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "credit"
          installments: 1
        paymentSource:
          sourceType: "card"
          card:
            cardNumber: "5261424250184574"
            cardCvv: "321"
            cardExpirationDate: "06/2028"
            cardHolderName: "JOAO DA SILVA"
        threeDSecure2:
          mpi:
            acsTransactionId: "9502fcb2-f483-4e4f-b9c9-70e01d8f49e2"
            cavv: "AAIBBYNoEwAAACcKhAJkdQAAAAA="
            challenged: true
            directoryServerTransactionId: "4e8567db-2f9e-4c9d-9d8c-3da3c2f7ed32"
            eci: "05"
            threeDSServerTransactionId: "4830a4b7-b80e-4eeb-bff2-d21699e771f0"
            transStatus: "Y"
            version: "2.2.0"
            xid: "AAIBBYNoEwAAACcKhAJkdQAAAAA="

    Charge3DSMalgaRequest:
      summary: Exemplo cobrança Cartão e 3D Secure 2
      value:
        merchantId: "b669086b-68b1-4f55-95bd-8ab45e48d670"
        amount: 150
        statementDescriptor: "Teste Card Adyen"
        capture: true
        paymentMethod:
          paymentType: "credit"
          installments: 1
        paymentSource:
          sourceType: "card"
          cardId: "f01044c6-1452-43bc-8492-29a17d58ba9d"
        vendor:
          id: "c0a7f5fa-4a8a-48ef-9f46-7727ca2d75b4"
        threeDSecure2:
          setupId: "05ee0280-afe2-4b81-991b-383a7feaae5f"
          requiresLiabilityShift: false,
          redirectURL: "https://www.google.com"
          requestorURL: "https://localhost"
          browser:
            acceptBrowserValue: "v1"
            acceptContent: "v2"
            acceptHeader: "*/*"
            colorDepth: 24
            javaEnabled: true
            javaScriptEnabled: true
            language: "pt-BR"
            screenHeight: 1080
            screenWidth: 1920
            timeZoneOffset: "180"
            userAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
            ip: "127.0.0.1"
          cardHolder:
            email: "email@gmail.com"
            mobilePhone: "123456789"
    ChargeNupayRequest:
      summary: Exemplo cobrança Nupay
      value:
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        amount: 150
        currency: BRL
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "nupay"
          taxValue: 1
          delayToAutoCancel: 200
          orderUrl: "https://order.com.br"
          returnUrl: "https://return-url.com.br"
          cancelUrl: "https://cancel-url.com.br"
          recipients:
            - referenceId: "550e8400-e29b-41d4-a716-446655440000"
              name: "Example Company LTDA"
              document:
                country: "BR"
                type: "cnpj"
                number: "12345678000195"
              amount: 100
        paymentSource:
          sourceType: "customer"
          customer:
            name: "Customer test"
            email: "customer@gmail.com"
            document:
              number: "97055503019"
              type: "cpf"
            phoneNumber: "21 98889999099"
            address:
              street: "Rua 1"
              streetNumber: "120"
              zipCode: "01714140"
              state: "SP"
              city: "São Paulo"
        fraudAnalysis:
          customer:
            browser:
              ipAddress: "127.0.0.1"
          cart:
            items:
              - sku: "123"
                name: "desc"
                quantity: 1
                unitPrice: 1
                risk: "Low"
    ChargeDripRequest:
      summary: Exemplo cobrança Drip
      value:
        merchantId: "ba3f0dba-905d-4705-9e61-a75d6a6eca5d"
        amount: 150
        currency: BRL
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        capture: true
        description: "Descrição cobrança"
        statementDescriptor: "Descrição cobrança"
        paymentMethod:
          paymentType: "drip"
          maxInstallments: 4
          items:
            - id": "12345"
              quantity": 1
              title": "title item"
              unitPrice": 150
          browser:
            ipAddress: "127.0.0.1"
            browserFingerprint: "cbd4a441-c63c-4dee-ac6b-bfa7fa1df818"
          cancelRedirectUrl: "https://service-example.com/cancel"
          successRedirectUrl: "https://service-example.com/success"
        paymentSource:
          sourceType: "customer"
          customer:
            name: "Customer test"
            email: "customer@gmail.com"
            document:
              number: "97055503019"
              type: "cpf"
            phoneNumber: "21 98889999099"
            address:
              street: "Rua 1"
              streetNumber: "120"
              zipCode: "01714140"
              state: "SP"
              city: "São Paulo"
              country: "BR"
              district: "Moema"
    ChargeVoucherRequest:
      summary: Exemplo cobrança Voucher
      value:
        paymentMethod:
          customer:
            name: "Customer test"
            identity: "11111111111"
          paymentType: voucher
          items:
            - id: "12345"
              title: ItemTeste1
              quantity: 1
              unitPrice: 100
        paymentSource:
          sourceType: card
          card:
            cardHolderName: "Customer test"
            cardNumber: "6370360004577166"
            cardCvv: "527"
            cardExpirationDate: 12/2024
        merchantId: "ba3f0dba-905d-4705-9e61-a75d6a6eca5d"
        amount: 100
        currency: BRL
        statementDescriptor: Voucher
        orderId: 15ad136a-520b-40d0-9c0e-05ff008b0fa7
        description: 15ad136a-520b-40d0-9c0e-05ff008b0fa7
    ChargePicpayRequest:
      summary: Exemplo cobrança Picpay
      value:
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        amount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "picpay"
        paymentSource:
          sourceType: "customer"
          customer:
            name: "Customer test"
            email: "jose2@gmail.com"
            document:
              number: "97055503019"
              type: "cpf"
            phoneNumber: "21 98889999099"
    ChargeCard:
      summary: Exemplo resposta cobrança por cartão
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        createdAt: "2012-06-30 23:59:59 +0000"
        amount: 150
        currency: BRL
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: false
        isDispute: false
        status: pre_authorized
        paymentMethod:
          paymentType: "credit"
          installments: 1
        paymentSource:
          sourceType: "card"
          cardId: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
            providerType: "STRIPE"
            transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
            amount: 1500
            authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
            providerAuthorization:
              networkAuthorizationCode: "00"
              networkResponseCode: ""
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
    ChargeApplePayResponse:
      summary: Exemplo resposta cobrança Apple Pay crédito
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        createdAt: "2012-06-30 23:59:59 +0000"
        amount: 150
        currency: BRL
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: false
        isDispute: false
        responsibleProviderType: "CIELO"
        status: pre_authorized
        paymentMethod:
          paymentType: "apple_pay"
          installments: 1
        paymentSource:
          sourceType: "wallet"
          cardId: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
            providerType: "CIELO"
            transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
            amount: 1500
            authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
            providerAuthorization:
              networkAuthorizationCode: "00"
              networkResponseCode: ""
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
    ChargeCard3DS2AuthResponse:
      summary: Exemplo autorização cobrança por cartão com 3D Secure 2
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        createdAt: "2012-06-30 23:59:59 +0000"
        amount: 150
        currency: BRL
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: false
        isDispute: false
        status: authorized
        paymentMethod:
          paymentType: "credit"
          installments: 1
        paymentSource:
          sourceType: "card"
          cardId: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
            providerType: "STRIPE"
            transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
            amount: 1500
            authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
            providerAuthorization:
              networkAuthorizationCode: "00"
              networkResponseCode: ""
    ChargePix:
      summary: Exemplo resposta cobrança PIX
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        createdAt: "2012-06-30 23:59:59 +0000"
        amount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: true
        isDispute: false
        status: pending
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "pix"
          expiresIn: 3600
          qrCodeData: "00020101021126510014BR.GOV.BCB.PIX0129K89VdiUgWN1B3p0IHrgHkNHg9tX5F52040000530398654040.155802BR5913Customer test600062070503***630431C0"
          qrCodeImageUrl: "https://...."
        paymentSource:
          sourceType: "customer"
          customerId: "1cdcf0c9-eb04-4e43-b9b2-b7a4acdead1f"
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
            providerType: "STRIPE"
            transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
            amount: 1500
            authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
            providerAuthorization:
              networkAuthorizationCode: "00"
              networkResponseCode: ""
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
    ChargeBoleto:
      summary: Exemplo resposta cobrança Boleto
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        createdAt: "2012-06-30 23:59:59 +0000"
        amount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: true
        status: pending
        paymentMethod:
          paymentType: "boleto"
          expiresDate: "2021-12-31"
          barcodeData: "412343241324321431241341"
          barcodeImageUrl: "https://...."
        paymentSource:
          sourceType: "customer"
          customerId: "1cdcf0c9-eb04-4e43-b9b2-b7a4acdead1f"
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
            providerType: "STRIPE"
            transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
            amount: 1500
            authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
            providerAuthorization:
              networkAuthorizationCode: "00"
              networkResponseCode: ""
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
    ChargeSplit:
      summary: Exemplo resposta de cobrança Cartão com Split
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        description: "Descrição longa da cobrança"
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        createdAt: "2022-10-04T21:36:21.093Z"
        amount: 150
        originalAmount: 150,
        currency: BRL
        statementDescriptor: "Pedido #231 loja joão"
        capture: false
        isDispute: false
        status: pre_authorized
        paymentMethod:
          paymentType: "credit"
          installments: 1
        paymentSource:
          sourceType: "card"
          cardId: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        splitRules:
          - id: "759af8a1-6f5c-4caf-ae79-98e6aa27b7e9"
            updatedAt: "2022-10-04T20:31:46.776Z"
            createdAt": "2022-10-04T20:31:46.776Z"
            sellerId": "32c68557-902c-408b-b464-cf487c7cda97"
            percentage": 10
            amount": null
            processingFee": false
            chargeEntireFee: true
            chargeRemainderFee: true
            liable: true
            fareMdr: null
            fareFee: null
          - id: "9873712a-3c3a-49ea-a4b1-c6c167c352c3"
            updatedAt: "2023-10-04T20:31:46.776Z"
            createdAt": "2023-10-04T20:31:46.776Z"
            sellerId": "50c68557-802c-408b-b464-cf487c7cda97"
            percentage": 40
            amount": null
            processingFee": false
            chargeEntireFee: false
            chargeRemainderFee: false
            liable: true
            fareMdr: null
            fareFee: null
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
            providerType: "STRIPE"
            transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
            amount: 150
            authorizationCode: "1560708"
            authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            providerAuthorization:
              networkAuthorizationCode: "00"
              networkResponseCode: ""
        appInfo:
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
          platform:
            name: "pluging-vtex-ppp"
            version: "1.12"
            integrator: "malga"
    ChargeSplitPix:
      summary: Exemplo resposta cobrança Pix com Split
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        description: "Descrição longa da cobrança"
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        createdAt: "2022-10-04T21:36:21.093Z"
        amount: 150
        originalAmount: 150,
        currency: BRL
        statementDescriptor: "Pedido #231 loja joão"
        capture: false
        isDispute: false
        status: pre_authorized
        paymentMethod:
          paymentType: "pix"
          expiresIn: 3600
          qrCodeData: "00020101021126510014BR.GOV.BCB.PIX0129K89VdiUgWN1B3p0IHrgHkNHg9tX5F52040000530398654040.155802BR5913Customer test600062070503***630431C0"
          qrCodeImageUrl: "https://...."
        paymentSource:
          sourceType: "customer"
          customerId: "1cdcf0c9-eb04-4e43-b9b2-b7a4acdead1f"
        splitRules:
          - id: "759af8a1-6f5c-4caf-ae79-98e6aa27b7e9"
            updatedAt: "2022-10-04T20:31:46.776Z"
            createdAt": "2022-10-04T20:31:46.776Z"
            sellerId": "32c68557-902c-408b-b464-cf487c7cda97"
            percentage": 10
            amount": null
            processingFee": false
            chargeEntireFee: true
            chargeRemainderFee: true
            liable: true
            fareMdr: null
            fareFee: null
          - id: "9873712a-3c3a-49ea-a4b1-c6c167c352c3"
            updatedAt: "2023-10-04T20:31:46.776Z"
            createdAt": "2023-10-04T20:31:46.776Z"
            sellerId": "50c68557-802c-408b-b464-cf487c7cda97"
            percentage": 40
            amount": null
            processingFee": false
            chargeEntireFee: false
            chargeRemainderFee: true
            liable: true
            fareMdr: null
            fareFee: null
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
            providerType: "STRIPE"
            transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
            amount: 150
            authorizationCode: "1560708"
            authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            providerAuthorization:
              networkAuthorizationCode: "00"
              networkResponseCode: ""
        appInfo:
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
          platform:
            name: "pluging-vtex-ppp"
            version: "1.12"
            integrator: "malga"
    ChargeSplitBoleto:
      summary: Exemplo resposta cobrança Boleto e Split
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        merchantId: "7f8870a2-71c9-4ef0-a531-82000e00b7e1"
        description: "Descrição longa da cobrança"
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        createdAt: "2022-10-04T21:36:21.093Z"
        amount: 150
        originalAmount: 150,
        currency: BRL
        statementDescriptor: "Pedido #231 loja joão"
        capture: false
        isDispute: false
        status: pre_authorized
        paymentMethod:
          paymentType: "boleto"
          expiresDate: "2021-12-31"
          barcodeData: "412343241324321431241341"
          barcodeImageUrl: "https://...."
        paymentSource:
          sourceType: "customer"
          customerId: "1cdcf0c9-eb04-4e43-b9b2-b7a4acdead1f"
        splitRules:
          - id: "759af8a1-6f5c-4caf-ae79-98e6aa27b7e9"
            updatedAt: "2022-10-04T20:31:46.776Z"
            createdAt": "2022-10-04T20:31:46.776Z"
            sellerId": "32c68557-902c-408b-b464-cf487c7cda97"
            percentage": 10
            amount": null
            processingFee": false
            chargeEntireFee: false
            chargeRemainderFee: false
            liable: true
            fareMdr: null
            fareFee: null
          - id: "9873712a-3c3a-49ea-a4b1-c6c167c352c3"
            updatedAt: "2023-10-04T20:31:46.776Z"
            createdAt": "2023-10-04T20:31:46.776Z"
            sellerId": "50c68557-802c-408b-b464-cf487c7cda97"
            percentage": 40
            amount": null
            processingFee": false
            chargeEntireFee: true
            chargeRemainderFee: true
            liable: true
            fareMdr: null
            fareFee: null
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
            providerType: "STRIPE"
            transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
            amount: 150
            authorizationCode: "1560708"
            authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            providerAuthorization:
              networkAuthorizationCode: "00"
              networkResponseCode: ""
        appInfo:
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
          platform:
            name: "pluging-vtex-ppp"
            version: "1.12"
            integrator: "malga"
    ChargeCard3DSecure2:
      summary: Exemplo resposta cobrança por cartão 3D Secure 2
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        createdAt: "2012-06-30 23:59:59 +0000"
        amount: 150
        currency: BRL
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: false
        isDispute: false
        status: pre_authorized
        paymentMethod:
          paymentType: "credit"
          installments: 1
        paymentSource:
          sourceType: "card"
          cardId: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
            providerType: "STRIPE"
            transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
            amount: 1500
            authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
            providerAuthorization:
              networkAuthorizationCode: "00"
              networkResponseCode: ""
        threeDSecure2:
          redirectURL: "https://your-company.com/receive"
          requestorURL: "https://api/your-company.com"
          browser:
            acceptHeader: "text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,image\/apng,*\/*;q=0.8"
            colorDepth: 24
            javaEnabled: true
            javaScriptEnabled: true
            language: "BR"
            screenHeight: 1080
            screenWidth: 1920
            timeZoneOffset: "180"
            userAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
            ip: "0.0.0.0"
          cardHolder:
            email: "cardHolder@email.com"
            mobilePhone: "11 99329899"
          billingAddress:
            city: "Rio de Janeiro"
            country: "BR"
            streetNumber: 159
            zipCode: "2547896"
            state: "RJ"
            street: "Av Brasil"
          shippingAddress:
            city: "São Paulo"
            country: "BR"
            streetNumber: 59
            zipCode: "2547896"
            state: "SP"
            street: "Rua das Flores"
          authData:
            action: "REDIRECT"
            providerType: "ADYEN"
            responseType: "AUTHENTICATION"
            response:
              md: "M2RzMi5lZTBiZTgzZTdmZDBlZDk...AkHGAAAA"
              url: "https://checkoutshopper.adyen.com/checkoutshopper/threeDS2.shtml?pspReference=863677264398111"
              paReq: "BQABAgB-MNl4GsRJSf5EmZE8guLfFQX7Q5Q...L_dRprriZL72QXGCtIPK-Hd"
              termUrl: "https://checkoutshopper.adyen.com/checkoutshopper/threeDS/return/H4sIAA...Hf"
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
    ChargeCard3DSMalga:
      summary: Exemplo resposta cobrança por cartão 3D Secure 2
      value:
        id: "cfaf805f-e4b3-4c2b-bceb-031f61e24806"
        clientId: "e234eeb3-483d-4df2-87eb-1e2be5cdaccd"
        merchantId: "1cce7844-d804-451f-ab40-63bff9bf8fcb"
        description: Null
        orderId: null
        createdAt: "2024-10-01T16:40:35.139Z"
        amount: 100
        originalAmount: 100
        currency: "BRL"
        statementDescriptor: "teste123"
        capture: true
        isDispute: false
        status: "authorized"
        responsibleProviderType: "SANDBOX"
        paymentFlow:
          id: "12345fc0-238e-4fd6-af96-8cab57fd6edc"
        paymentMethod:
          installments: 1
          paymentType: "credit"
        paymentSource:
          sourceType: "card"
          cardId: "a7f3ace8-16ec-4299-9bd4-34219739c7cc"
        fraudAnalysisMetadata:
          sla: null
          customer:
            name: "User Username"
            email: "user@email.co"
            identity: "45762964850"
            identityType: "CPF"
            birthdate: null
            phone: "+5511998326199"
            billingAddress:
              country: "BR"
              street: "Rua General nestor passos"
              number: 226
              complement: "ap 107"
              zipCode: "02417140"
              city: "Sao Paulo"
              state: "SP"
              district: "Jardim Paraiso"
            deliveryAddress:
              country: "BR"
              street: "Rua General nestor passos"
              number: 226
              complement: "ap 107"
              zipCode: "02417140"
              city: "Sao Paulo"
              state: "SP"
              district: "Jardim Paraiso"
          cart:
            items:
              - name: "ItemTeste1"
                quantity: 1
                sku: "20170511"
                unitPrice: 50
                risk: "High"
                locality: null
                date: null
                type: null
                genre: null
                tickets: null
                location: null
          orderOrigin: null
          operationalSystem: null
          country: null
        transactionRequests:
          - id: "ae383789-7608-4c57-ab01-721f722e98e3"
            createdAt: "2024-10-01T16:40:44.993Z"
            updatedAt: "2024-10-01T16:40:44.993Z"
            idempotencyKey: "3356a581-14b3-43f4-9cfe-0ba39b7d9a1a"
            providerId: "56746c7b-c5ac-4ab6-8513-94fa00fa5064"
            providerType: "SANDBOX"
            transactionId: "f5d4cfd6-6813-4ec1-bdfa-8ae4d5d69135"
            amount: 100
            authorizationCode: "6480680"
            authorizationNsu: "2806774"
            requestStatus: "success"
            requestType: "authorization"
            requestStatusReason: null
            responseTs: "35ms"
            providerAuthorization:
              networkAuthorizationCode: "2139951"
              networkResponseCode: "4496916"
            threeds:
              authenticated: false
          - id: "d22753f0-2089-49a7-9b03-b11b2eeeb796"
            createdAt: "2024-10-01T16:40:44.743Z"
            updatedAt: "2024-10-01T16:40:44.743Z"
            idempotencyKey: "2bca8426-8857-4d8c-b3d3-464faf26077e"
            providerId: null
            providerType: "CYBERSOURCE"
            transactionId: "7278008445356393004951"
            amount: 100
            authorizationCode: null
            authorizationNsu: null
            requestStatus: "success"
            requestType: "3DS_authentication_validate"
            requestStatusReason: null
            responseTs: null
            threeds:
              liabilityShift: true
          - id: "10e80b19-09e7-423e-aaff-57168df78040"
            createdAt: "2024-10-01T16:40:36.884Z"
            updatedAt: "2024-10-01T16:40:36.884Z"
            idempotencyKey: "2bca8426-8857-4d8c-b3d3-464faf26077e"
            providerId: null
            providerType: "CYBERSOURCE"
            transactionId: "7278008364396297404953"
            amount: 100
            authorizationCode: null
            authorizationNsu: null
            requestStatus: "success"
            requestType: "3DS_authentication_enroll"
            requestStatusReason: null
            responseTs: null
            threeds:
              cardEnrolled: true
              challenged: true
          - id: "29945667-094a-4934-898a-8b2713eccbba"
            createdAt: "2024-10-01T16:40:36.859Z"
            updatedAt: "2024-10-01T16:40:36.859Z"
            idempotencyKey: "2bca8426-8857-4d8c-b3d3-464faf26077e"
            providerId: null
            providerType: "CYBERSOURCE"
            transactionId: "7278008315186292704953"
            amount: 100
            authorizationCode: null
            authorizationNsu: null
            requestStatus: "success"
            requestType: "3DS_authentication_setup"
            requestStatusReason: null
            responseTs: null
        threeDSecure2:
          requiresLiabilityShift: true
          authenticated: false
          version: "2.1.0"
          offered: true
          liabilityShift: true
          cardEnrolled: true
          cardTokenId: null
          offeredType: "Unknown"
          challenged: true
          redirectURL: "https://localhost:3000/checkout.html"
          requestorURL: "https://localhost:3000"
          networkTransactionId: null
          browser:
            acceptBrowserValue: null
            acceptContent: null
            acceptHeader: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"
            colorDepth: 30
            javaEnabled: false
            javaScriptEnabled: true
            language: "en-US"
            screenHeight: 900
            screenWidth: 1440
            timeZoneOffset: "240"
            userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
            ip: "200.53.196.214"
          billingAddress:
            city: "Aracaju"
            country: "BR"
            streetNumber: "177"
            zipCode: "49089185"
            state: "Sergipe"
            street: "Rua J"
          shippingAddress: null
          cardHolder: null
          authData:
            action: "REDIRECT"
            providerType: "CYBERSOURCE"
            responseType: "AUTHENTICATION"
            response:
              pareq: "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiI3ZGViNWZhYS1lM2NkLTRjZDgtYjUxZC1hNmQ5OWQyMWY0YmIiLCJhY3NUcmFuc0lEIjoiM2U0NjZkMjMtMzk5Yy00OWRkLTlhNzItZTk0ZDY0MWM2NTdiIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjAyIn0"
              token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYjY4NjM5Yi0zMGUwLTRiZDUtYjE0ZC0xYzQ4NjAxNWI2NTMiLCJpYXQiOjE3Mjc4MDA4MzYsImlzcyI6IjVkZDgzYmYwMGU0MjNkMTQ5OGRjYmFjYSIsImV4cCI6MTcyNzgwNDQzNiwiT3JnVW5pdElkIjoiNjU0NDUzNzkzZDJmNTM1NWE3YjljN2IxIiwiUGF5bG9hZCI6eyJBQ1NVcmwiOiJodHRwczovLzBtZXJjaGFudGFjc3N0YWcuY2FyZGluYWxjb21tZXJjZS5jb20vTWVyY2hhbnRBQ1NXZWIvY3JlcS5qc3AiLCJQYXlsb2FkIjoiZXlKdFpYTnpZV2RsVkhsd1pTSTZJa05TWlhFaUxDSnRaWE56WVdkbFZtVnljMmx2YmlJNklqSXVNUzR3SWl3aWRHaHlaV1ZFVTFObGNuWmxjbFJ5WVc1elNVUWlPaUkzWkdWaU5XWmhZUzFsTTJOa0xUUmpaRGd0WWpVeFpDMWhObVE1T1dReU1XWTBZbUlpTENKaFkzTlVjbUZ1YzBsRUlqb2lNMlUwTmpaa01qTXRNems1WXkwME9XUmtMVGxoTnpJdFpUazBaRFkwTVdNMk5UZGlJaXdpWTJoaGJHeGxibWRsVjJsdVpHOTNVMmw2WlNJNklqQXlJbjAiLCJUcmFuc2FjdGlvbklkIjoiSDdocndJaFRLS3ZMbHJHWVN2OTAifSwiT2JqZWN0aWZ5UGF5bG9hZCI6dHJ1ZSwiUmV0dXJuVXJsIjoiaHR0cHM6Ly9hcGkuZGV2Lm1hbGdhLmlvL3YxL2NoYXJnZXMvY2ZhZjgwNWYtZTRiMy00YzJiLWJjZWItMDMxZjYxZTI0ODA2LzNkcy1hdXRob3JpemF0aW9uP2hhc2g9cG4taWNkcHlWaFVJaVowbmppbVdFYVVFeGxGeHFlX3kwVlkxT0lqMlphYyZjbGllbnRJZD1lMjM0ZWViMy00ODNkLTRkZjItODdlYi0xZTJiZTVjZGFjY2QifQ.DzUlK4UPFakvWW_alV0DvtnNSDaJPMBDzWXGX07nTe8"
              stepUrl: "https://centinelapistag.cardinalcommerce.com/V2/Cruise/StepUp"
            networkTransactionId: "7278008364396297404953"
        appInfo: null
    ChargeNupay:
      summary: Exemplo resposta cobrança nupay
      value:
        id: "4cbF2516-b8c0-4222-a28d-2c7e22a9ebe1"
        clientId: "11111111-36dc-4654-9dba-e7167d0e5e2d"
        merchantId: "7cCf07e8-9798-4bf6-a97e-7f0e0822c176"
        description: Null
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        createdAt: "2022-09-30T21:33:42.955Z"
        amount: 100
        originalAmount: 100
        currency: "BRL"
        statementDescriptor: null
        status: "pending"
        paymentMethod:
          paymentType: "nupay"
        paymentSource:
          sourceType: "customer"
          customerId: "ae1b1f52-ee01-4014-9eb6-e529dd6d3f5f"
        transactionRequests:
          - id: "1c57caad-136d-4bc4-a265-c72d408d5ef7"
            createdAt: "2022-09-30T21:33:42.969Z"
            updatedAt: "2022-09-30T21:33:44.105Z"
            idempotencyKey: "84d0ed42-0239-4618-b3b9-e31114bba17b"
            providerId: "72cecc64-2079-4128-8cb0-c5a4ed8fa995"
            providerType: "NUPAY"
            transactionId: "2c57caad-136d-4bc4-a265-c72d408d5ef8"
            amount: 100
            authorizationCode: null
            authorizationNsu: null
            requestStatus: "success"
            requestType: "pending"
            responseTs: "1084ms"
            nupay:
              expiresIn: 200
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
    ChargeDrip:
      summary: Exemplo resposta cobrança Drip
      value:
        id: "4cbF2516-b8c0-4222-a28d-2c7e22a9ebe1"
        clientId: "290f9fcc-2d89-11ee-be56-0242ac120002"
        merchantId: "ba3f0dba-905d-4705-9e61-a75d6a6eca5d"
        description: Null
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        createdAt: "2022-09-30T21:33:42.955Z"
        amount: 150
        originalAmount: 150
        currency: "BRL"
        statementDescriptor: null
        status: "pending"
        paymentMethod:
          paymentType: "drip"
          maxInstallments: 4
          paymentUrl: "https://sandbox-portal.dripapp.com.br/checkouts/75624dd2-a897-4bb7-8f00-b959eb00b38d"
          items:
            - id": "12345"
              quantity": 1
              title": "title item"
              unitPrice": 150
          browser:
            ipAddress: "127.0.0.1"
            browserFingerprint: "cbd4a441-c63c-4dee-ac6b-bfa7fa1df818"
          cancelRedirectUrl: "https://service-example.com/cancel"
          successRedirectUrl: "https://service-example.com/success"
        paymentSource:
          sourceType: "customer"
          customerId: "ae1b1f52-ee01-4014-9eb6-e529dd6d3f5f"
        transactionRequests:
          - id: "1c57caad-136d-4bc4-a265-c72d408d5ef7"
            createdAt: "2022-09-30T21:33:42.969Z"
            updatedAt: "2022-09-30T21:33:44.105Z"
            idempotencyKey: "84d0ed42-0239-4618-b3b9-e31114bba17b"
            providerId: "72cecc64-2079-4128-8cb0-c5a4ed8fa995"
            providerType: "DRIP"
            transactionId: "2c57caad-136d-4bc4-a265-c72d408d5ef8"
            amount: 150
            authorizationCode: 4a87109c-80bc-44da-8170-87bb7d2c52be
            authorizationNsu: null
            requestStatus: "success"
            requestType: "pending"
            responseTs: "1084ms"
            drip:
              paymentUrl: "https://sandbox-portal.dripapp.com.br/checkouts/75624dd2-a897-4bb7-8f00-b959eb00b38d"
              items:
                - id": "12345"
                  quantity": 1
                  title": "title item"
                  unitPrice": 150
              browser:
                ipAddress: "127.0.0.1"
                browserFingerprint: "cbd4a441-c63c-4dee-ac6b-bfa7fa1df818"
              cancelRedirectUrl: "https://service-example.com/cancel"
              successRedirectUrl: "https://service-example.com/success"
    ChargeVoucher:
      summary: Exemplo resposta cobrança Voucher
      value:
        id: "e98d9db9-5c8e-4aa4-b408-7f0e8c53b4d1"
        clientId: "8b8ef36b-575f-4c74-8642-99e7d1a4b769"
        merchantId: "a29d40e6-49d3-4f17-9a2e-20bd96f6b6d3"
        description: "Charge description"
        orderId: "b7e59eeb-8e23-41d1-99d4-6b7c61a5d8e3"
        createdAt: "2023-11-13T16:54:00.645Z"
        amount: 100
        originalAmount: 100
        currency: "BRL"
        statementDescriptor: "Voucher"
        capture: false
        isDispute: false
        status: "authorized"
        paymentMethod:
          name: "Customer test"
          identity: "11111111111"
          billingAddress:
            city: "São Paulo"
            state: SP
            country: BR
            zipCode: "01714140"
            complement: "complement"
          items:
            id: "123"
            title: "ItemTeste1"
            quantity: 1
            unitPrice: 100
          paymentType: voucher
        paymentSource:
          sourceType: "card"
        transactionRequests:
          id: "b7e59eeb-8e23-41d1-99d4-6b7c61a5d8e3"
          createdAt: "2023-11-13T16:54:00.671Z"
          updatedAt: "2023-11-13T16:54:01.554Z"
          idempotencyKey: "43ebbbf7-64ec-4f87-91c0-63a8e3eb12a6"
          providerId: "32c68ff7-902c-408b-b464-cf487c7cda97"
          providerType: PAGARME_V5
          transactionId: "or_lka6LLKSflfOD5z2m"
          amount: 100
          authorizationCode: "704"
          authorizationNsu: "88571"
          requestStatus: "success"
          requestType: "authorization"
          responseTs: "795ms"
    ChargePicpay:
      summary: Exemplo resposta cobrança Picpay
      value:
        id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        createdAt: "2012-06-30 23:59:59 +0000"
        amount: 150
        currency: BRL
        statementDescriptor: "LOJA JOAO"
        description: "Descrição longa da cobrança"
        capture: false
        isDispute: false
        status: pending
        orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
        paymentMethod:
          paymentType: "picpay"
          expiresIn: 1722971550
          qrCodeData: "00020101021226860014COM.PICPAY.P2B0164https://app.picpay.com/checkout/NjY4YmZhNjA5OTdhNTU2YTNmMGRmZTIy5204000053039865802BR5906PICPAY6009SAO PAULO62280524668bfa60997a556a3f0dfe2280580020COM.PICPAY.ECOMMERCE0107nc=true0219checkout=stepbystep6304B9EE"
          qrCodeImageUrl: "https://...."
        paymentSource:
          sourceType: "customer"
          customerId: "1cdcf0c9-eb04-4e43-b9b2-b7a4acdead1f"
        transactionRequests:
          - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
            idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
            providerId: "72cecc64-2079-4128-8cb0-c5a4ed8fa995"
            providerType: "PICPAY"
            transactionId: "84d0ed42-0239-4618-b3b9-e31114bba17b"
            amount: 150
            authorizationNsu: null
            requestStatus: "success"
            requestType: "authorization"
            responseTs: "2633ms"
            createdAt: "2021-08-12T16:08:39.536Z"
            updatedAt: "2021-08-12T16:08:42.212Z"
        appInfo:
          platform:
            integrator: "malga"
            name: "pluging-vtex-ppp"
            version: "1.12"
          device:
            name: "iOS"
            version: "10.12"
          system:
            name: "VTEX"
            version: "13.12"
    SessionList:
      value:
        items:
          - id: "1b0c6960-702a-4074-95c2-eed2790c16a1"
            name: "Nome da sessão"
            status: "created"
            isActive: true
            captchaEnabled: false
            clientId: "1b0c6960-702a-4074-95c2-eed2790c16a1"
            orderId: null
            amount: 100
            currency: "BRL"
            capture: true
            merchantId: "69aea152-ba70-49a3-a31c-044ac1651146"
            dueDate: "2022-10-25T09:28:45.000Z"
            description: "Promoção Black Friday"
            statementDescriptor: "LOJA JOAO"
            paymentMethods:
              - paymentType: "credit"
                installments: 1
            items:
              - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
                name: "Item 1"
                description: "Descrição do item"
                unitPrice: 10000
                quantity: 1
                tangible: false
            createdAt: "2022-10-25T09:28:45.000Z"
            updatedAt: "2022-10-25T09:28:45.000Z"
            publicKey: "1b0c6960-702a-4074-95c2-eed2790c16a1"
            paymentLink: "https://checkout.malga.io/1b0c6960-702a-4074-95c2-eed2790c16a1"
            multiplePayments:
              allow: false
              maxPayments: null
              paymentCount: 0
              pendingCount: 0
              status: "active"
        meta:
          totalItems: 1
          itemCount: 1
          itemsPerPage: 10
          totalPages: 1
          currentPage: 1
    ChargeList:
      value:
        meta:
          itemCount: 10
          totalItems: 20
          itemsPerPage: 10
          totalPages: 5
          currentPage: 2
        items:
          - id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
            customerId: "82aba896-9e37-45b6-aa90-d510c9050596"
            clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
            createdAt: "2012-06-30 23:59:59 +0000"
            amount: 150
            currency: BRL
            statementDescriptor: "LOJA JOAO"
            description: "Descrição longa da cobrança"
            capture: false
            isDispute: false
            orderId: "32c68ff7-902c-408b-b464-cf487c7cda97"
            paymentMethod:
              paymentType: "credit"
              installments: 1
            paymentSource:
              sourceType: "card"
              cardId: "148d5db0-f1c3-439f-902d-f1f268086e1d"
            transactionRequests:
              - id: "78601913-a176-4d71-b7e8-abb6fc49a340"
                idempotencyKey: "fafe857b176e45d6b12e32fcaf228996"
                providerId: "2c3b57d8-ee43-4b19-bc8a-949a88c51df1"
                providerType: "STRIPE"
                transactionId: "ch_3JYE7MHjGFBGEeiP0lfTD3Ob"
                amount: 1500
                authorizationNsu: "1cc8391c-f0d5-4b7a-9fcf-653cea26be13"
                requestStatus: "success"
                requestType: "authorization"
                responseTs: "2633ms"
                createdAt: "2021-08-12T16:08:39.536Z"
                updatedAt: "2021-08-12T16:08:42.212Z"
                providerAuthorization:
                  networkAuthorizationCode: "00"
                  networkResponseCode: ""
            appInfo:
              platform:
                integrator: "malga"
                name: "pluging-vtex-ppp"
                version: "1.12"
              device:
                name: "iOS"
                version: "10.12"
              system:
                name: "VTEX"
                version: "13.12"
    Customer:
      value:
        id: "82aba896-9e37-45b6-aa90-d510c9050596"
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        createdAt: "2012-06-30 23:59:59 +0000"
        name: "Customer test"
        email: "jose2@gmail.com"
        document:
          number: "97055503019"
          type: "cpf"
          country: "BR"
        phoneNumber: "21 98889999099"
        address:
          country: "BR"
          state: "Rio de Janeiro"
          city: "Rio de Janeiro"
          district: "Leblon"
          zipCode: "25650011"
          street: "Av Geraldo Cardoso"
          streetNumber: "205"
          complement: "Apto 203"
    CustomerList:
      value:
        meta:
          itemCount: 10
          totalItems: 20
          itemsPerPage: 10
          totalPages: 5
          currentPage: 2
        items:
          - id: "82aba896-9e37-45b6-aa90-d510c9050596"
            clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
            createdAt: "2012-06-30 23:59:59 +0000"
            name: "Customer test"
            email: "jose2@gmail.com"
            phoneNumber: "21 98889999099"
            document:
              number: "97055503019"
              type: "cpf"
              country: "BR"
            address:
              country: "BR"
              state: "Rio de Janeiro"
              city: "Rio de Janeiro"
              district: "Leblon"
              zipCode: "25650011"
              street: "Av Geraldo Cardoso"
              streetNumber: "205"
              complement: "Apto 203"
    CustomerRequest:
      value:
        name: "Customer test"
        email: "jose2@gmail.com"
        phoneNumber: "21 98889999099"
        document:
          number: "97055503019"
          type: "cpf"
          country: "BR"
        address:
          country: "BR"
          state: "Rio de Janeiro"
          city: "Rio de Janeiro"
          district: "Leblon"
          zipCode: "25650011"
          street: "Av Geraldo Cardoso"
          streetNumber: "205"
          complement: "Apto 203"
        billingAddress:
          country: "BR"
          state: "Rio de Janeiro"
          city: "Rio de Janeiro"
          district: "Leblon"
          zipCode: "25650011"
          street: "Av Geraldo Cardoso"
          streetNumber: "205"
          complement: "Apto 203"
        deliveryAddress:
          country: "BR"
          state: "Rio de Janeiro"
          city: "Rio de Janeiro"
          district: "Leblon"
          zipCode: "25650011"
          street: "Av Geraldo Cardoso"
          streetNumber: "205"
          complement: "Apto 203"

    Merchant:
      value:
        id: "69aea152-ba70-49a3-a31c-044ac1651146"
        updatedAt: "2021-03-12T15:57:20.239Z"
        createdAt: "2021-03-12T15:57:20.239Z"
        clientId: "523afbe7-36dc-4654-9dba-e7167d0e5e2d"
        mcc: "4040"
        status: true
        platformFeeEnabled: true
        platformFees:
          - id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
            paymentMethod: "credit"
            percentage: 2.5
            fixedAmount: null
            installment: null
            createdAt: "2021-03-12T15:57:20.239Z"
            updatedAt: "2021-03-12T15:57:20.239Z"
          - id: "b2c3d4e5-f6a7-8901-bcde-f12345678901"
            paymentMethod: "pix"
            percentage: null
            fixedAmount: 50
            installment: null
            createdAt: "2021-03-12T15:57:20.239Z"
            updatedAt: "2021-03-12T15:57:20.239Z"
        providers:
          - id: "72cc1ff1-5f6e-4eb2-9cc5-6a3a85525e4b"
            updatedAt: "2021-03-12T15:57:20.239Z"
            createdAt: "2021-03-12T15:57:20.239Z"
            name: "PagSeguro"
            priority: 1
            credentials:
              type: "PAGSEGURO"
              token: "1B2B32530CA23412AB63843240F5633"
              email: "email@gmail.com"
            acquirer:
              merchantId: "1111111111"
              bin:
                - brand: "Mastercard"
                  value: "550259"
                  merchantId: "2222222222"
                - brand: "Visa"
                  value: "448768"
                  merchantId: "3333333333"
    MerchantList:
      value:
        meta:
          itemCount: 10
          totalItems: 20
          itemsPerPage: 10
          totalPages: 5
          currentPage: 2
        items:
          - id: "69aea152-ba70-49a3-a31c-044ac1651146"
            updatedAt: "2021-03-12T15:57:20.239Z"
            createdAt: "2021-03-12T15:57:20.239Z"
            clientId: "523afbe7-36dc-4654-9dba-e7167d0e5e2d"
            mcc: "4040"
            status: true
            providers:
              - id: "72cc1ff1-5f6e-4eb2-9cc5-6a3a85525e4b"
                updatedAt: "2021-03-12T15:57:20.239Z"
                createdAt: "2021-03-12T15:57:20.239Z"
                name: "PagSeguro"
                priority: 1
                credentials:
                  type: "PAGSEGURO"
                  token: "1B2B32530CA2464F8AB63843240F5633"
                  email: "email@gmail.com"

    MerchantRequest:
      value:
        mcc: "4040"
        status: true
        providers:
          - name: "PagSeguro"
            priority: 1
            credentials:
              type: "PAGSEGURO"
              token: "1B2B32530CA24641324AB63843240F5633"
              email: "email@gmail.com"
            acquirer:
              merchantId: "1111111111"
              bin:
                - brand: "Mastercard"
                  value: "550259"
                  merchantId: "2222222222"
                - brand: "Visa"
                  value: "448768"
                  merchantId: "3333333333"
    LinkCardRequest:
      value:
        cardId: "82aba896-9e37-45b6-aa90-d510c9050596"
    CustomerCardList:
      value:
        meta:
          itemCount: 10
          totalItems: 20
          itemsPerPage: 10
          totalPages: 5
          currentPage: 2
        items:
          - id: "148d5db0-f1c3-439f-902d-f1f268086e1d"
            customerId: "82aba896-9e37-45b6-aa90-d510c9050596"
            clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
            expirationMonth: "12"
            expirationYear: "2026"
            brand: "Visa"
            cvvChecked: true
            fingerprint: "cbd4a441-c63c-4dee-ac6b-bfa7fa1df818"
            first6digits: "401959"
            last4digits: "9339"
            createdAt: "2012-06-30 23:59:59 +0000"
            status: "active"
    CreateWebhookRequest:
      value:
        event: "transaction.authorized"
        endpoint: "https://enuqkxq2lu8be0y.m.pipedream.net"
        version: 1.1
        status: true
    Webhook:
      value:
        id: "31c142ad-4c30-4964-ba24-2df0f2bbb745"
        event: "transaction.authorized"
        endpoint: "https://enuqkxq2lu8be0y.m.pipedream.net"
        version: 1.1
        publicKey: "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAnFQSIT7Mwg5QLeJLAwhAJx9wS+XsQvnyph/Lz7AJyQA=\n-----END PUBLIC KEY-----\n"
        status: true
        clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
        createdAt: "2021-07-06T21:03:36.590Z"
        updatedAt: "2021-07-06T21:03:36.590Z"
    WebhookList:
      value:
        meta:
          itemCount: 10
          totalItems: 20
          itemsPerPage: 10
          totalPages: 5
          currentPage: 2
        items:
          - id: "31c142ad-4c30-4964-ba24-2df0f2bbb745"
            event: "transaction.authorized"
            endpoint: "https://enuqkxq2lu8be0y.m.pipedream.net"
            version: 1.1
            publicKey: "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAnFQSIT7Mwg5QLeJLAwhAJx9wS+XsQvnyph/Lz7AJyQA=\n-----END PUBLIC KEY-----\n"
            status: true
            clientId: "cc0b1e41-2936-45c5-947f-93995ffcdc00"
            createdAt: "2021-07-06T21:03:36.590Z"
            updatedAt: "2021-07-06T21:03:36.590Z"
    Event:
      value:
        id: "5616b19e-4d99-4bd3-b415-4990e5cab4f4"
        apiVersion: "1.1"
        object: "transaction"
        event: "authorized"
        createdAt: "2021-07-05T18:56:08.672Z"
        data:
          id": "242b9be8-cd60-461d-af27-f31e3d6e3fb7"
          updatedAt": "2021-07-05T18:56:08.247Z"
          createdAt": "2021-07-05T18:56:08.247Z"
          amount": 1500
          currency: BRL
          originalAmount": 1500
          installments": 1
          clientId": "cc0b1e41-2936-45c5-947f-93995ffcdc00"
          description": null
          statementDescriptor": "LOJA JOAO"
          status": "authorized"
          capture": true
          fee": null
          feeAmount": null
    SplitRules:
      value:
        splitRules:
          - sellerId: "32c68557-902c-408b-b464-cf487c7cda97"
            percentage: 80
            liable: true
            processingFee": true
            chargeEntireFee: false
            chargeRemainderFee: true
    Subscription:
      value:
        id: "32c68557-902c-408b-b464-cf487c7cda97"
        name: "Assinatura 1"
        description: "Assinatura 1"
        status: "active"
        createdAt: "2021-07-05T18:56:08.672Z"
    SellerRequestBusiness:
      summary: Exemplo de recebedor pessoa jurídica
      value:
        merchantId: "b1612460-0fef-447d-9590-97825cf60cf6"
        owner:
          name: "Seller test"
          email: "seller@gmail.com"
          phoneNumber: "21 98889999099"
          birthdate: "1995-01-27"
          document:
            type: "cpf"
            number: "36243319067"
            country: "BR"
          address:
            street: "Av Geraldo Cardoso"
            streetNumber: "205"
            complement: "Apto 203"
            zipCode: "25650011"
            country: "BR"
            state: "Rio de Janeiro"
            city: "Rio de Janeiro"
            district: "Leblon"
            referencePoint: "Proximo a praia"
          businessCategory: "OTHER_SERVICES"
        business:
          name: "Seller business test"
          corporateReason: "Seller company social reason"
          phoneNumber: "21 98889999099"
          email: "seller@gmail.com"
          website: "https://sellerbusiness.com.br"
          description: "Seller business"
          facebook: "facebook Seller business"
          twitter: "twitter Seller business"
          openingDate: "1995-01-27"
          annualRevenue: 2500000
          address:
            street: "Rua Nova Lua"
            streetNumber: "30"
            complement: "sala 100"
            zipCode: "61000-320"
            country: "BR"
            state: "CE"
            city: "Maracanaú"
            district: "AB"
          document:
            type: "cnpj"
            number: "94938591000196"
            country: "BR"
        mcc: 4040
        bankAccount:
          holderName: "Seller Name"
          holderDocument: "94938591000196"
          bank: "077"
          branchNumber: "492"
          branchCheckDigit: "1"
          accountNumber: "4929"
          accountCheckDigit: "12"
          type: "conta_corrente"
          pixKey: "1234567890"
        transferPolicy:
          transferDay: "5"
          transferEnabled: true
          transferInterval: "weekly"
          automaticAnticipationEnabled: false
          anticipatableVolumePercentage: ""
          automaticAnticipationType: ""
          automaticAnticipationDays: ""
          automaticAnticipation1025Delay: ""
        notifyOnPayout: true
    SellerRequestOwner:
      summary: Exemplo de recebedor pessoa física
      value:
        merchantId: "5616b19e-4d99-4bd3-b415-4990e5cab4f4"
        owner:
          name: "Seller test"
          email: "seller@gmail.com"
          phoneNumber: "21 98889999099"
          birthdate: "1995-01-27"
          document:
            type: "cpf"
            number: "36243319067"
            country: "BR"
          address:
            street: "Av Geraldo Cardoso"
            streetNumber: "205"
            complement: "Apto 203"
            zipCode: "25650011"
            country: "BR"
            state: "Rio de Janeiro"
            city: "Rio de Janeiro"
            district: "Leblon"
            referencePoint: "Proximo a praia"
          monthlyIncome: 20000
          isBusinessRepresentative: true
          professionalOccupation: "Comerciante"
          annualRevenue: 240000
          businessCategory: "OTHER_SERVICES"
        mcc: 4040
        bankAccount:
          holderName: "Seller Name"
          holderDocument: "36243319067"
          bank: "077"
          ispb: "60746948"
          branchNumber: "492"
          branchCheckDigit: "1"
          accountNumber: "4929"
          accountCheckDigit: "11"
          type: "poupanca"
          pixKey: "1234567890"
        transferPolicy:
          transferDay: "5"
          transferEnabled: true
          transferInterval: "monthly"
          automaticAnticipationEnabled: false
          anticipatableVolumePercentage: ""
          automaticAnticipationType: ""
          automaticAnticipationDays: ""
          automaticAnticipation1025Delay: ""
    SellerRequestIspbOnly:
      summary: Exemplo de recebedor identificando o banco apenas por ISPB
      value:
        merchantId: "5616b19e-4d99-4bd3-b415-4990e5cab4f4"
        owner:
          name: "Seller test"
          email: "seller@gmail.com"
          phoneNumber: "21 98889999099"
          birthdate: "1995-01-27"
          document:
            type: "cpf"
            number: "36243319067"
            country: "BR"
          address:
            street: "Av Geraldo Cardoso"
            streetNumber: "205"
            complement: "Apto 203"
            zipCode: "25650011"
            country: "BR"
            state: "Rio de Janeiro"
            city: "Rio de Janeiro"
            district: "Leblon"
          businessCategory: "OTHER_SERVICES"
        mcc: 4040
        bankAccount:
          holderName: "Seller Name"
          holderDocument: "36243319067"
          ispb: "60746948"
          branchNumber: "492"
          branchCheckDigit: "1"
          accountNumber: "4929"
          accountCheckDigit: "11"
          type: "conta_corrente"
        transferPolicy:
          transferDay: "5"
          transferEnabled: true
          transferInterval: "monthly"
    SellerPatchBankIdentifierSwap:
      summary: PATCH trocando COMPE por ISPB no mesmo seller
      value:
        bankAccount:
          bank: null
          ispb: "60746948"
    BankIdentifierRequiredError:
      summary: Erro 400 — sem identificador de banco após o merge
      value:
        error:
          type: "bad_request"
          code: 400
          key: "bank_identifier_required"
          details:
            - "bank account must keep at least one of bank (COMPE) or ispb after update"
    SellerResponseOwner:
      summary: Exemplo resposta seller pessoa física
      value:
        id: "ea115e44-7048-11ed-a1eb-0242ac120002"
        providers:
          providerType: "SANDBOX"
          externalId: "1103976"
          externalStatus: "active"
          externalStatusReason: "ok"
          status: "active"
          createdAt: "2021-08-12T16:08:39.536Z"
          updatedAt: "2021-08-12T16:08:39.536Z"
        merchantId: "5616b19e-4d99-4bd3-b415-4990e5cab4f4"
        clientId: "e234eeb3-483d-4df2-87eb-1e2be5cdaccd"
        metadata: null
        owner:
          id: "fade44d6-cdad-4d5e-985a-9dae4d403eed"
          updatedAt: "2023-07-05T18:55:29.878Z"
          createdAt: "2023-07-05T18:55:29.878Z"
          name: "Seller test"
          email: "seller@gmail.com"
          phoneNumber: "21 98889999099"
          birthdate: "2022-01-10T00:00:00.000Z"
          address:
            country: "BR"
            id: "26d0f947-a487-41c6-b54a-a6bef58cf196"
            updatedAt: "2023-07-05T18:55:29.890Z"
            createdAt: "2023-07-05T18:55:29.890Z"
            street: "Av Geraldo Cardoso"
            streetNumber: "205"
            complement: "Apto 203"
            zipCode: "25650011"
            state: "Rio de Janeiro"
            city: "Rio de Janeiro"
            district: "Leblon"
          document:
            country: "BR"
            id: "f4ebcba0-dc80-44aa-aac4-3957496f7112"
            updatedAt: "2023-07-05T18:55:29.904Z"
            createdAt: "2023-07-05T18:55:29.904Z"
            type: "cpf"
            number: "97055503019"
        business: null
        bankAccount:
          id: "924ab8c7-df93-465b-97e3-c211c75a3e6e"
          updateAT: "2023-02-28T18:00:00.573Z"
          createdAt: "2023-02-28T18:00:00.573Z"
          holderName: "Seller name"
          holderDocument: "36243319067"
          bank: "077"
          branchNumber: "492"
          branchCheckDigit: "1"
          accountNumber: "4929"
          accountCheckDigit: "22"
          type: "conta_corrente"
        transferPolicy:
          id: "6d76b361-a9a8-4e26-865e-d1c790ad5c72"
          updatedAt: "2023-07-05T18:55:29.809Z"
          createdAt: "2023-07-05T18:55:29.809Z"
          transferDay: "5"
          transferEnabled: true
          transferInterval: "monthly"
          automaticAnticipationEnabled: null
          anticipatableVolumePercentage: null
          automaticAnticipationType: null
          automaticAnticipationDays: null
          automaticAnticipation1025Delay: null
        mcc: 4040
        status: "pending"
        notifyOnPayout: true
    SellerResponseBusiness:
      summary: Exemplo resposta seller pessoa jurídica
      value:
        id: "19d05a45-0e92-478e-8366-955231bcf3d6"
        providers:
          providerType: "SANDBOX"
          externalId: "1966811"
          externalStatus: "active"
          externalStatusReason: "ok"
          status: "pending"
          createdAt: "2022-12-21T23:10:13.498Z"
          updatedAt: "2022-12-21T20:10:13.951Z"
        merchantId: "5616b19e-4d99-4bd3-b415-4990e5cab4f4"
        clientid: "e234eeb3-483d-4df2-87eb-1e2be5cdaccd"
        metadata: null
        owner:
          id: "8231ba21-3758-4bd7-b664-5b5fdeda37a0"
          updatedAt: "2023-07-11T23:02:51.581Z"
          createdAt: "2023-07-11T23:02:51.581Z"
          name: "Seller"
          email: "seller@email.com"
          phoneNumber: "85988350264"
          birthdate: "1995-01-27T02:00:00.000Z"
          address:
            country: "BR"
            id: "883631f0-fea0-4682-ae1a-f4ac6349e0d9"
            updatedAt: "2023-07-11T23:02:51.585Z"
            createdAt: "2023-07-11T23:02:51.585Z"
            street: "Rua Nova Lua"
            streetNumber: "30"
            complement: "casa 4"
            zipCode: "61000-320"
            state: "CE"
            city: "Maracanaú"
            district: "AB"
          document:
            country: "BR"
            id: "32543bbe-42c1-4000-9b68-d01a2735708e"
            updatedAt: "2023-07-11T23:02:51.588Z"
            createdAt: "2023-07-11T23:02:51.588Z"
            type: "cpf"
            number: "36243319067"
        business:
          id: "607bb56a-974a-4d1d-9f56-cda865dfafbd"
          updatedAt: "2023-07-11T23:02:51.571Z"
          createdAt: "2023-07-11T23:02:51.571Z"
          name: "Seller business"
          corporateReason: "Seller company social reason"
          phoneNumber: "85988350264"
          email: "seller@email.com"
          website: "www.sellerbusiness.com.br"
          description: "Seller business"
          facebook: "facebook Seller business"
          twitter: "twitter Seller business"
          openingDate: "1995-01-27"
          address:
            country: "BR"
            id: "b681dd2e-ebdb-4fad-8c8b-e703a17825ce"
            updatedAt: "2023-07-11T23:02:51.574Z"
            createdAt: "2023-07-11T23:02:51.574Z"
            street: "Rua Nova Lua"
            streetNumber: "30"
            complement: "sala 100"
            zipCode: "61000-320"
            state: "CE"
            city: "Maracanaú"
            district: "AB"
          document:
            country: "BR"
            id: "b9380f2c-a657-4f47-a7da-21f3bf08182c"
            updatedAt: "2023-07-11T23:02:51.578Z"
            createdAt: "2023-07-11T23:02:51.578Z"
            type: "cnpj"
            number: "94938591000196"
        bankAccount:
          id: "f7ac3221-8f69-4276-b88b-34ddbe5ec24a"
          updatedAt: "2023-07-11T23:02:51.563Z"
          createdAt: "2023-07-11T23:02:51.563Z"
          holderName: "Seller name"
          holderDocument: "36243319067"
          bank: "077"
          ispb: "60746948"
          branchNumber: "492"
          branchCheckDigit: "1"
          accountNumber: "4929"
          accountCheckDigit: "22"
          type: "conta_corrente"
        transferPolicy:
          id: "a04bca24-f7d1-4cb5-acce-41f12680e5bf"
          updatedAt: "2023-07-11T23:02:51.567Z"
          createdAt: "2023-07-11T23:02:51.567Z"
          transferDay: "5"
          transferEnabled: true
          transferInterval: "weekly"
          automaticAnticipationEnabled: false
          anticipatableVolumePercentage: ""
          automaticAnticipationType: ""
          automaticAnticipationDays: ""
          automaticAnticipation1025Delay: ""
        mcc: 4040
        status: "active"
        notifyOnPayout: true
    RegistrationReviewPaginatedResponse:
      summary: Exemplo resposta paginada de revisão cadastral
      value:
        items:
          - processId: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
            sellerId: "ea115e44-7048-11ed-a1eb-0242ac120002"
            provider: "ZOOP"
            providerId: "8f14e45f-ceea-467a-9e6f-6c1a5b3a1f2d"
            reviewType: "acp"
            status: "pending"
            deadlineAt: "2026-09-15T23:59:59.000Z"
            daysRemaining: 18
            requestedFields:
              raw:
                - "revenue"
                - "owner.address.postal_code"
              fields:
                - path: "revenue"
                  type: "enum"
                  required: true
                  providerField: "revenue"
                  label:
                    pt-br: "Faixa de faturamento"
                    en: "Revenue range"
                  allowedValues:
                    - "10000_to_50000"
                    - "50000_to_100000"
                    - "100000_to_500000"
                - path: "owner.address.zipCode"
                  type: "string"
                  required: true
                  providerField: "owner.address.postal_code"
                  label:
                    pt-br: "CEP"
                    en: "Postal code"
                  format:
                    pt-br: "8 dígitos, sem pontuação"
                    en: "8 digits, no punctuation"
                  pattern: "^[0-9]{8}$"
            requestedFieldsPending: false
            createdAt: "2026-08-28T13:04:11.320Z"
        meta:
          totalItems: 1
          itemCount: 1
          itemsPerPage: 100
          totalPages: 1
          currentPage: 1
    SubmitRegistrationReviewRequest:
      summary: Exemplo envio de revisão cadastral
      value:
        collection:
          channel: "in_app"
          collectedAt: "2026-08-28T14:20:00.000Z"
          journeyId: "jr_8f14e45fceea"
          sourceIp: "200.150.10.22"
          userAgent: "Mozilla/5.0"
        data:
          revenue: "10000_to_50000"
          owner:
            address:
              zipCode: "01310200"
    RegistrationReviewFieldMismatchError:
      summary: Erro 400 — dados fora da lista de campos pedidos
      value:
        error:
          type: "bad_request"
          code: 400
          key: "invalid_registration_review_payload"
          details:
            - "missing requested field: owner.address.zipCode"
            - "field not requested by the provider: business.email"
    RegistrationReviewAlreadySubmittedError:
      summary: Erro 409 — processo já enviado
      value:
        error:
          type: "bad_request"
          code: 409
          key: "invalid_registration_review_transition"
          details:
            - 'transition "pending_to_submitting" is not allowed while the registration review is "finished"'
    SellerPaginatedResponse:
      summary: Exemplo resposta paginada de seller
      value:
        items:
          - id: "ea115e44-7048-11ed-a1eb-0242ac120002"
            providers:
              - providerType: "PLUG_SANDBOX"
                externalStatus: "active"
                externalStatusReason: "ok"
                status: "pending"
                createdAt: "2021-08-12T16:08:39.536Z"
                updatedAt: "2021-08-12T16:08:39.536Z"
            merchantId: "5616b19e-4d99-4bd3-b415-4990e5cab4f4"
            clientId: "5616b19e-4d99-4bd3-b415-4990e5cab4f4"
            business:
              id: "72a574b8-e97e-409c-8402-04208f63e027"
              updatedAt: "2023-05-15T22:27:48.267Z"
              createdAt: "2023-05-15T22:27:48.267Z"
              name: "Seller test"
              phoneNumber: "21 98889999099"
              email: "seller@gmail.com"
              website: null
              description: "Description"
              facebooks: null
              twitter: null
              openingDate: "1995-01-27"
            mcc: 4040
            notifyOnPayout: true
        meta:
          totalItems: 16
          itemCount: 1
          itemsPerPage: 1
          totalPages: 2
          currentPage: 1
    VendorAddress:
      value:
        country: "BR"
        state: "SP"
        city: "São Paulo"
        district: "Centro"
        zipCode: "01001-000"
        street: "Avenida Paulista"
        streetNumber: "1000"
        complement: "Apto 101"

    VendorRequest:
      summary: Exemplo de requisição de vendor
      value:
        referenceId: "12345"
        identityType: "CNPJ"
        identity: "12.345.678/0001-99"
        mcc: "1234"
        name: "Empresa Exemplo Ltda"
        email: "contato@empresaexemplo.com"
        phoneNumber: "5511999999999"
        website: "https://www.empresaexemplo.com"
        address:
          country: "BR"
          state: "SP"
          city: "São Paulo"
          district: "Centro"
          zipCode: "01001-000"
          street: "Avenida Paulista"
          streetNumber: "1000"
          complement: "Apto 101"

    VendorUpdateRequest:
      summary: Exemplo de atualização de vendor
      value:
        referenceId: "12345"
        name: "Empresa Exemplo Ltda"

    VendorResponse:
      summary: Exemplo resposta de vendor
      value:
        id: "db56bd6a-10d7-4039-9c68-fc4405a1a3e1"
        referenceId: "12345"
        identityType: "CNPJ"
        identity: "12.345.678/0001-99"
        mcc: "1234"
        name: "Empresa Exemplo Ltda"
        email: "contato@empresaexemplo.com"
        phoneNumber: "5511999999999"
        website: "https://www.empresaexemplo.com"
        address:
          country: "BR"
          state: "SP"
          city: "São Paulo"
          district: "Centro"
          zipCode: "01001-000"
          street: "Avenida Paulista"
          streetNumber: "1000"
          complement: "Apto 101"
        updatedAt: "2024-06-26T12:34:56Z"
        createdAt: "2024-06-01T08:00:00Z"

    VendorPaginatedResponse:
      summary: Exemplo resposta paginada de vendor
      value:
        items:
          - id: "db56bd6a-10d7-4039-9c68-fc4405a1a3e1"
            referenceId: "12345"
            identityType: "CNPJ"
            identity: "12.345.678/0001-99"
            mcc: "1234"
            name: "Empresa Exemplo Ltda"
            email: "contato@empresaexemplo.com"
            phoneNumber: "5511999999999"
            website: "https://www.empresaexemplo.com"
            address:
              country: "BR"
              state: "SP"
              city: "São Paulo"
              district: "Centro"
              zipCode: "01001-000"
              street: "Avenida Paulista"
              streetNumber: "1000"
              complement: "Apto 101"
            updatedAt: "2024-06-26T12:34:56Z"
            createdAt: "2024-06-01T08:00:00Z"
        meta:
          totalItems: 16
          itemCount: 1
          itemsPerPage: 1
          totalPages: 2
          currentPage: 1
    SettingsRequest:
      summary: Exemplo de requisição de settings
      value:
        mainColor: "#000000"
        SecondaryColor: "#FFFFFF"
        attentionColor: "#FF0000"
        errorColor: "#FF0000"
        successColor: "#00FF00"
        backgroundColor: "#FFFFFF"
        logo: '@"/C:/Users/caminho/para/a/imagem/logo.jpg"'
        companyUrl: "https://www.company.com"
    SettingsPatchCompanyUrl:
      summary: Atualizar apenas companyUrl via JSON
      value:
        companyUrl: "https://www.company.com"
    UserSettings:
      value:
        id: "id da setting"
        clientId: "id da setting"
        mainColor: "#000000"
        SecondaryColor: "#FFFFFF"
        attentionColor: "#FF0000"
        errorColor: "#FF0000"
        successColor: "#00FF00"
        backgroundColor: "#FFFFFF"
        logo: "https://url.com/logo.jpg"
        companyUrl: "https://www.company.com"
        mastercardClickToPayDpaid: "223efa95-a0bc-43d6-aea9-715281b6b062"
        merchantId: "df601922-e024-6394-8f12-af21ec4218b1"
    PayoutBalanceResponse:
      summary: Exemplo de saldo de payouts
      value:
        available: 1500000
        receivable: 320000
    PayoutPaymentBatchResponse:
      summary: Exemplo de repasse
      value:
        id: "9b1a3a3e-2f87-4b2f-ae59-1234567890ab"
        createdAt: "2026-04-25T18:00:00.000Z"
        updatedAt: "2026-04-25T18:00:00.000Z"
        amount: 250000
        feeAmount: 5000
        totalFeeAmount: 7500
        balanceAmount: 0
        creditAmount: 0
        refundAmount: 0
        debitAdjustmentAmount: 0
        creditAdjustmentAmount: 0
        finalBalance: 242500
        withdrawalFeeAmount: 0
        reportUrl: null
        paymentDate: "2026-04-28"
        payoutDate: "2026-04-28"
        status: "paid"
        feature: "subacquirer"
        paymentMethod: "credit"
        paymentArrangement: "VCC"
        error: null
    PayoutPaymentBatchListResponse:
      summary: Exemplo de listagem de repasses
      value:
        items:
          - id: "9b1a3a3e-2f87-4b2f-ae59-1234567890ab"
            createdAt: "2026-04-25T18:00:00.000Z"
            updatedAt: "2026-04-25T18:00:00.000Z"
            amount: 250000
            feeAmount: 5000
            totalFeeAmount: 7500
            balanceAmount: 0
            creditAmount: 0
            refundAmount: 0
            debitAdjustmentAmount: 0
            creditAdjustmentAmount: 0
            finalBalance: 242500
            withdrawalFeeAmount: 0
            reportUrl: null
            paymentDate: "2026-04-28"
            payoutDate: "2026-04-28"
            status: "paid"
            feature: "subacquirer"
            paymentMethod: "credit"
            paymentArrangement: "VCC"
            error: null
        meta:
          totalItems: 1
          itemCount: 1
          itemsPerPage: 10
          totalPages: 1
          currentPage: 1
    PayoutOrderResponse:
      summary: Exemplo de ordem
      value:
        id: "0f3d5b1a-7c89-4f23-9bd6-aabbccddeeff"
        chargeId: "1c1e6a87-44ab-44d9-9311-9876543210ab"
        amount: 9700
        grossAmount: 10000
        totalFeeAmount: 300
        currency: "BRL"
        installment: 1
        totalInstallments: 1
        paymentMethod: "credit"
        type: "capture"
        paymentArrangement: "VCC"
        paymentScheduledAt: "2026-04-28"
        paymentBatchId: "9b1a3a3e-2f87-4b2f-ae59-1234567890ab"
        createdAt: "2026-04-20T15:30:00.000Z"
        updatedAt: "2026-04-20T15:30:00.000Z"
    PayoutOrderListResponse:
      summary: Exemplo de listagem de ordens
      value:
        items:
          - id: "0f3d5b1a-7c89-4f23-9bd6-aabbccddeeff"
            chargeId: "1c1e6a87-44ab-44d9-9311-9876543210ab"
            amount: 9700
            grossAmount: 10000
            totalFeeAmount: 300
            currency: "BRL"
            installment: 1
            totalInstallments: 1
            paymentMethod: "credit"
            type: "capture"
            paymentArrangement: "VCC"
            paymentScheduledAt: "2026-04-28"
            paymentBatchId: "9b1a3a3e-2f87-4b2f-ae59-1234567890ab"
            createdAt: "2026-04-20T15:30:00.000Z"
            updatedAt: "2026-04-20T15:30:00.000Z"
        meta:
          totalItems: 1
          itemCount: 1
          itemsPerPage: 10
          totalPages: 1
          currentPage: 1

    PrepaymentReceivablesResponse:
      summary: Exemplo de recebíveis disponíveis
      value:
        summary:
          availableAmount: 25000
          receivableCount: 3
        receivables:
          - id: "019d6afe-c505-70a9-8df0-d052b578b35a"
            settlementDate: "2026-06-15"
            paymentArrangement: "vcc"
            amount: 12000
          - id: "019d6afe-c505-70a9-8df0-d052b578b35b"
            settlementDate: "2026-06-15"
            paymentArrangement: "vcc"
            amount: 8000
          - id: "019d6afe-c505-70a9-8df0-d052b578b35c"
            settlementDate: "2026-06-20"
            paymentArrangement: "mcc"
            amount: 5000

    PrepaymentSimulateRequest:
      summary: Simulação por período (até endDate, inclusive)
      value:
        endDate: "2026-06-20"

    PrepaymentResponse:
      summary: Exemplo de simulação criada
      value:
        id: "01964c5a-0001-7000-8000-000000000001"
        status: "pending"
        grossAmount: 20000
        netAmount: 19323
        markupAmount: 387
        feeAmount: 290
        effectiveRate: 0.033850
        monthlyRate: 0.015
        markup: 0.02
        expiresAt: "2026-05-27T18:00:00Z"
        endDate: "2026-06-20"
        paymentDate: "2026-05-28"
        items:
          - receivableUnitExternalId: "ru-ext-ok-1"
            grossAmount: 12000
            netAmount: 11594
            markupAmount: 232
            feeAmount: 174
            daysToAnticipate: 30
            settlementDate: "2026-06-15"
            paymentArrangement: "vcc"
          - receivableUnitExternalId: "ru-ext-ok-2"
            grossAmount: 8000
            netAmount: 7729
            markupAmount: 155
            feeAmount: 116
            daysToAnticipate: 30
            settlementDate: "2026-06-15"
            paymentArrangement: "vcc"

    PrepaymentCommittedResponse:
      summary: Exemplo de antecipação confirmada
      value:
        id: "01964c5a-0001-7000-8000-000000000001"
        status: "committed"
        grossAmount: 20000
        netAmount: 19323
        markupAmount: 387
        feeAmount: 290
        effectiveRate: 0.033850
        monthlyRate: 0.015
        markup: 0.02
        expiresAt: "2026-05-27T18:00:00Z"
        endDate: "2026-06-20"
        paymentDate: "2026-05-28"
        items:
          - receivableUnitExternalId: "ru-ext-ok-1"
            grossAmount: 12000
            netAmount: 11594
            markupAmount: 232
            feeAmount: 174
            daysToAnticipate: 30
            settlementDate: "2026-06-15"
            paymentArrangement: "vcc"
          - receivableUnitExternalId: "ru-ext-ok-2"
            grossAmount: 8000
            netAmount: 7729
            markupAmount: 155
            feeAmount: 116
            daysToAnticipate: 30
            settlementDate: "2026-06-15"
            paymentArrangement: "vcc"
    PrepaymentListResponse:
      summary: Exemplo de listagem de antecipações
      value:
        items:
          - id: "01964c5a-0001-7000-8000-000000000001"
            status: "pending"
            grossAmount: 20000
            netAmount: 19323
            markupAmount: 387
            feeAmount: 290
            effectiveRate: 0.033850
            monthlyRate: 0.015
            markup: 0.02
            expiresAt: "2026-05-27T18:00:00Z"
            endDate: "2026-06-20"
            paymentDate: "2026-05-28"
            items:
              - receivableUnitExternalId: "ru-ext-ok-1"
                grossAmount: 12000
                netAmount: 11594
                markupAmount: 232
                feeAmount: 174
                daysToAnticipate: 30
                settlementDate: "2026-06-15"
                paymentArrangement: "vcc"
              - receivableUnitExternalId: "ru-ext-ok-2"
                grossAmount: 8000
                netAmount: 7729
                markupAmount: 155
                feeAmount: 116
                daysToAnticipate: 30
                settlementDate: "2026-06-15"
                paymentArrangement: "vcc"
          - id: "01964c5a-0001-7000-8000-000000000002"
            status: "paid"
            grossAmount: 5000
            netAmount: 4831
            markupAmount: 100
            feeAmount: 69
            effectiveRate: 0.033800
            monthlyRate: 0.015
            markup: 0.02
            expiresAt: "2026-05-20T18:00:00Z"
            endDate: "2026-06-10"
            paymentDate: "2026-05-21"
            items:
              - receivableUnitExternalId: "ru-ext-ok-3"
                grossAmount: 5000
                netAmount: 4831
                markupAmount: 100
                feeAmount: 69
                daysToAnticipate: 30
                settlementDate: "2026-06-10"
                paymentArrangement: "vcc"
        meta:
          totalItems: 2
          itemCount: 2
          itemsPerPage: 10
          totalPages: 1
          currentPage: 1

    TogglePlatformFeeRequest:
      summary: Ativar platform fee para o merchant
      value:
        enabled: true
    TogglePlatformFeeResponse:
      summary: Resposta após ativar ou desativar platform fee
      value:
        platformFeeEnabled: true
    PlatformFeeRequest:
      summary: Criar ou atualizar regras de platform fee
      value:
        - paymentMethod: credit
          percentage: 3.5
          fixedAmount: 50
          installment: 3
        - paymentMethod: pix
          fixedAmount: 50
        - paymentMethod: boleto
          percentage: 1.0
          fixedAmount: 100
    PlatformFeeRulesArrayResponse:
      summary: Resposta em array ao criar ou atualizar regras de platform fee
      value:
        - id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
          paymentMethod: credit
          percentage: 3.5
          fixedAmount: 50
          installment: 3
          createdAt: "2024-01-15T10:30:00.000Z"
          updatedAt: "2024-01-15T10:30:00.000Z"
        - id: "b2c3d4e5-f6a7-8901-bcde-f12345678901"
          paymentMethod: pix
          percentage: null
          fixedAmount: 50
          installment: null
          createdAt: "2024-01-15T10:30:00.000Z"
          updatedAt: "2024-01-15T10:30:00.000Z"
        - id: "c3d4e5f6-a7b8-9012-cdef-123456789012"
          paymentMethod: boleto
          percentage: 1.0
          fixedAmount: 100
          installment: null
          createdAt: "2024-01-15T10:30:00.000Z"
          updatedAt: "2024-01-15T10:30:00.000Z"
    PlatformFeeListResponse:
      summary: Listagem de regras com flag de ativação (GET /platform-fee)
      value:
        platformFeeEnabled: true
        rules:
          - id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
            paymentMethod: credit
            percentage: 3.5
            fixedAmount: 50
            installment: 3
            createdAt: "2024-01-15T10:30:00.000Z"
            updatedAt: "2024-01-15T10:30:00.000Z"
          - id: "b2c3d4e5-f6a7-8901-bcde-f12345678901"
            paymentMethod: pix
            percentage: null
            fixedAmount: 50
            installment: null
            createdAt: "2024-01-15T10:30:00.000Z"
            updatedAt: "2024-01-15T10:30:00.000Z"
          - id: "c3d4e5f6-a7b8-9012-cdef-123456789012"
            paymentMethod: boleto
            percentage: 1.0
            fixedAmount: 100
            installment: null
            createdAt: "2024-01-15T10:30:00.000Z"
            updatedAt: "2024-01-15T10:30:00.000Z"
