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

# Cadastrar loja

> Cadastra uma loja na rede do parceiro identificado automaticamente pelo token de acesso e vincula a loja ao parceiro.

O endereço é opcional no cadastro — você pode enviá-lo depois em `PUT /v1/establishment/{estabelecimentoId}/address`.


Cadastra uma loja na rede do parceiro identificado automaticamente pelo token de acesso.

## Modelos de desembolso

O modelo de desembolso define quem recebe o valor das vendas da loja.

| Valor | Modelo      | Quem recebe                                                                               |
| ----- | ----------- | ----------------------------------------------------------------------------------------- |
| `1`   | **Rede**    | A conta bancária da rede recebe o desembolso de todas as lojas.                           |
| `2`   | **Loja**    | A conta bancária da própria loja recebe.                                                  |
| `3`   | **Externo** | Uma conta de terceiro recebe. Exige `nomeTitular` e `documentoTitular` na conta bancária. |

<Note>
  A conta bancária é obrigatória no cadastro mesmo quando o desembolso é da rede (`1`) — ela fica registrada na loja para uso futuro.
</Note>

## Endereço

O endereço é opcional aqui. Se você ainda não tem o endereço no momento do cadastro, envie depois em [Editar loja](/pages/establishments/update).

## Resposta

A resposta traz `estabelecimentoId`. Guarde esse valor — é ele que identifica a loja nos demais endpoints.

<Warning>
  O CNPJ e a razão social precisam ser únicos entre todas as lojas. Reenviar um CNPJ ou uma razão social já cadastrados retorna `409`.
</Warning>


## OpenAPI

````yaml POST /v1/establishment
openapi: 3.0.1
info:
  title: WebIntegration
  description: Este documento descreve os endpoints disponíveis da API.
  version: '1.0'
servers:
  - url: https://api.parcelemais.com.br/integration
    description: Servidor para o ambiente de produção
  - url: https://api.staging.parcelemais.com.br/integration
    description: Servidor para o ambiente de staging
security:
  - bearerAuth: []
paths:
  /v1/establishment:
    post:
      tags:
        - Loja
      summary: Cadastrar loja.
      description: >
        Cadastra uma loja na rede do parceiro identificado automaticamente pelo
        token de acesso e vincula a loja ao parceiro.


        O endereço é opcional no cadastro — você pode enviá-lo depois em `PUT
        /v1/establishment/{estabelecimentoId}/address`.
      operationId: createEstablishment
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEstablishmentRequest'
            example:
              documento: '12345678000199'
              razaoSocial: Loja Centro LTDA
              nomeFantasia: Loja Centro
              modeloDesembolso: 1
              responsavel:
                nome: Maria Souza
                email: maria.souza@lojacentro.com.br
                celular: '+5511999998888'
              contaBancaria:
                banco: '341'
                agencia: '1234'
                digitoAgencia: ''
                conta: '56789'
                digitoConta: '0'
                tipoConta: 1
              endereco:
                rua: Av. Paulista
                numero: '1578'
                complemento: Loja 3
                bairro: Bela Vista
                cidade: São Paulo
                estado: SP
                cep: '01310100'
      responses:
        '200':
          description: Loja cadastrada com sucesso.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateEstablishmentResponse'
              example:
                estabelecimentoId: 9c0969d7-561e-4fae-88e7-790968fd1ddf
        '400':
          description: Dados inválidos.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '404':
          description: Parceiro ou rede não encontrada.
        '409':
          description: CNPJ ou razão social já cadastrados em outra loja.
        '500':
          description: Internal Server Error
components:
  schemas:
    CreateEstablishmentRequest:
      required:
        - documento
        - razaoSocial
        - nomeFantasia
        - modeloDesembolso
        - responsavel
        - contaBancaria
      type: object
      properties:
        documento:
          type: string
          description: CNPJ da loja, somente números.
          example: '12345678000199'
        razaoSocial:
          type: string
          description: Razão social da loja. Não pode ser alterada depois do cadastro.
        nomeFantasia:
          type: string
          description: Nome fantasia da loja.
        modeloDesembolso:
          type: integer
          format: int32
          enum:
            - 1
            - 2
            - 3
          description: >-
            1: a rede recebe o desembolso; 2: a própria loja recebe (exige conta
            bancária da loja); 3: conta de terceiro (exige `nomeTitular` e
            `documentoTitular`).
        responsavel:
          $ref: '#/components/schemas/EstablishmentOwnerRequest'
        contaBancaria:
          $ref: '#/components/schemas/EstablishmentBankAccountRequest'
        endereco:
          $ref: '#/components/schemas/EstablishmentAddressRequest'
      additionalProperties: false
    CreateEstablishmentResponse:
      type: object
      properties:
        estabelecimentoId:
          type: string
          format: uuid
          description: >-
            Identificador da loja cadastrada. Guarde-o para consultar, editar,
            alterar o endereço ou a situação da loja.
      additionalProperties: false
    Microsoft.AspNetCore.Mvc.ProblemDetails:
      type: object
      properties:
        tipo:
          type: string
          nullable: true
        titulo:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detalhe:
          type: string
          nullable: true
        instancia:
          type: string
          nullable: true
        erros:
          type: object
          nullable: true
          description: >-
            Detalhamento por campo, presente quando o erro é de validação de
            payload. Ausente (`null`) para erros de regra de negócio, que trazem
            a explicação apenas em `detalhe`.
          additionalProperties:
            type: array
            items:
              type: string
        correlationId:
          type: string
          nullable: true
          description: >-
            Identificador de correlação da requisição (ver cabeçalho
            `CorrelationId`), útil para localizar logs ao abrir um chamado de
            suporte.
      example:
        tipo: https://tools.ietf.org/html/rfc7231#section-6.5.1
        titulo: Requisição inválida.
        status: 400
        detalhe: O campo 'cpf' é obrigatório.
        instancia: /v1/order
        erros:
          cpf:
            - O campo 'cpf' é obrigatório.
        correlationId: 0HN7E4B8Q9K3D:00000001
    EstablishmentOwnerRequest:
      required:
        - nome
        - email
        - celular
      type: object
      description: Responsável pela loja.
      properties:
        nome:
          type: string
          description: Nome do responsável pela loja.
        email:
          type: string
          format: email
          description: E-mail do responsável pela loja.
        celular:
          type: string
          description: Telefone celular no formato E.164 (código do país + DDD + número).
          example: '+5511999998888'
      additionalProperties: false
    EstablishmentBankAccountRequest:
      required:
        - banco
        - agencia
        - conta
        - digitoConta
        - tipoConta
      type: object
      description: Conta bancária da loja.
      properties:
        banco:
          type: string
          description: Código do banco.
          example: '341'
        agencia:
          type: string
          description: Número da agência, sem dígito.
        digitoAgencia:
          type: string
          description: Dígito da agência. Envie vazio quando a agência não tiver dígito.
        conta:
          type: string
          description: Número da conta, sem dígito.
        digitoConta:
          type: string
          description: Dígito da conta.
        tipoConta:
          type: integer
          format: int32
          enum:
            - 1
            - 2
            - 3
          description: '1: Corrente; 2: Poupança; 3: Pagamento.'
        nomeTitular:
          type: string
          nullable: true
          description: >-
            Nome do titular da conta. Obrigatório quando o modelo de desembolso
            é externo (`3`).
        documentoTitular:
          type: string
          nullable: true
          description: >-
            CPF ou CNPJ do titular da conta. Obrigatório quando o modelo de
            desembolso é externo (`3`).
      additionalProperties: false
    EstablishmentAddressRequest:
      required:
        - rua
        - numero
        - bairro
        - cidade
        - estado
        - cep
      type: object
      description: Endereço da loja.
      properties:
        rua:
          type: string
          description: Logradouro da loja.
        numero:
          type: string
          description: Número do endereço.
        complemento:
          type: string
          nullable: true
          description: Complemento do endereço.
        bairro:
          type: string
          description: Bairro da loja.
        cidade:
          type: string
          description: Cidade da loja.
        estado:
          type: string
          description: Unidade federativa, com duas letras.
          example: SP
        cep:
          type: string
          description: CEP da loja, somente números.
          example: '01310100'
        pais:
          type: string
          nullable: true
          description: País da loja. Quando omitido, assume Brasil.
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Cabeçalho de autenticação Bearer no formato `Bearer <token>` onde
        `<token>` é seu TOKEN de autenticação

````