Malga Vendors API

The Vendors API from Malga — 2 operation(s) for vendors.

OpenAPI Specification

plug-vendors-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: '0.5'
  title: Documentação Malga 3DS2 Malga Vendors API
  description: "# Authentication\n\nOs 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.\n\nÉ 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.\n\nA 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.\n\n## X-Client-ID\n\nIdentificador única da sua conta na Malga. Deve ser enviado no header obrigatóriamente em todas as requisições feitas a API.\n\n| Security Scheme Type | API Key |\n|-----------------------|-----------|\n| Header parameter name | `X-Client-ID` |\n\n## X-Api-Key\n\nSua 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.\n\n| Security Scheme Type | API Key |\n|-----------------------|-----------|\n| Header parameter name | `X-Api-Key` |\n\n## Exemplo de requisicão autenticada\n\n```bash\n  curl --location --request GET 'https://api.malga.io/v1/' \\\n    --header 'X-Client-Id: <YOUR_CLIENT_ID>' \\\n    --header 'X-Api-Key: <YOUR_SECRET_KEY>'\n```\n"
servers:
- url: https://api.malga.io
  description: Production
security:
- X-Client-ID: []
  X-Api-Key: []
tags:
- name: Vendors
paths:
  /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
components:
  examples:
    VendorUpdateRequest:
      summary: Exemplo de atualização de vendor
      value:
        referenceId: '12345'
        name: Empresa Exemplo Ltda
    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
    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
    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'
  schemas:
    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
    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
    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
    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'
    ErrorResponse:
      properties:
        error:
          type: object
          allOf:
          - $ref: '#/components/schemas/ErrorItem'
    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'
  securitySchemes:
    X-Client-ID:
      type: apiKey
      in: header
      name: X-Client-Id
    X-Api-Key:
      type: apiKey
      in: header
      name: X-Api-Key
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