{
  "swagger": "2.0",
  "info": {
    "version": "v1",
    "title": "MeuK8 CobrancasAdminAPI"
  },
  "host": "homolog.k8bank.com.br",
  "basePath": "/CobrancasAdminAPI",
  "schemes": [
    "https"
  ],
  "paths": {
    "/api/Credenciais": {
      "post": {
        "tags": [
          "Credenciais"
        ],
        "summary": "Obtem as credenciais de um cliente com base em seu ID",
        "description": "Obtem as credenciais de um cliente com base em seu ID, caso o cliente nao seja \r\nencontrado ou ele nao possua credenciais vinculadas, sera retornado Not Found",
        "operationId": "Credenciais_Obter",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "request",
            "in": "body",
            "description": "requisição de entrada",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CredenciaisRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Credenciais obtidas",
            "schema": {
              "$ref": "#/definitions/CredenciaisResponse"
            }
          },
          "400": {
            "description": "Cliente ID invalido",
            "schema": {
              "type": "string"
            }
          },
          "404": {
            "description": "Cliente ID nao encontrado",
            "schema": {
              "type": "string"
            }
          },
          "500": {
            "description": "Erro durante a operação",
            "schema": {
              "type": "string"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "BknBankCobrancasAdminAPI"
            ]
          }
        ]
      }
    },
    "/api/ConsultaCliente": {
      "post": {
        "tags": [
          "RegistraCliente"
        ],
        "summary": "Consulta um cliente no sistema de Pagamentos e puxa os parametros ArbiContaConta e ArbiDocumento do mesmo.",
        "description": "Consulta cliente por cnpj e retorna parâmetros cadastrados.",
        "operationId": "RegistraCliente_ConsultaCliente",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "request",
            "in": "body",
            "description": "requisição de entrada",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ConsultaClienteRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cliente consultado com sucesso",
            "schema": {
              "$ref": "#/definitions/ConsultaClienteRequest"
            }
          },
          "400": {
            "description": "Dados invalidos na requisicao",
            "schema": {
              "type": "string"
            }
          },
          "404": {
            "description": "Nenhum cliente encontrado",
            "schema": {
              "type": "string"
            }
          },
          "409": {
            "description": "Conflito na consulta do(s) cliente(s) na base",
            "schema": {
              "type": "string"
            }
          },
          "500": {
            "description": "Erro durante a operação",
            "schema": {
              "type": "string"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "BknBankCobrancasAdminAPI"
            ]
          }
        ]
      }
    },
    "/api/RegistraCliente": {
      "put": {
        "tags": [
          "RegistraCliente"
        ],
        "summary": "Atualiza um cliente no sistema de Pagamentos e/ou no sistema de Cobranças",
        "description": "Atualiza clientes pelos critérios definidos",
        "operationId": "RegistraCliente_AtualizaCliente",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "request",
            "in": "body",
            "description": "requisição de entrada",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AtualizaClienteRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cliente Atualizado com sucesso",
            "schema": {
              "type": "string"
            }
          },
          "400": {
            "description": "Dados invalidos na requisicao",
            "schema": {
              "type": "string"
            }
          },
          "409": {
            "description": "Conflito na alteracao dos dados na base",
            "schema": {
              "type": "string"
            }
          },
          "500": {
            "description": "Erro durante a operação",
            "schema": {
              "type": "string"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "BknBankCobrancasAdminAPI"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "RegistraCliente"
        ],
        "summary": "Registra um cliente no sistema de Pagamentos e/ou no sistema de Cobranças",
        "description": "Registra clientes pelos critérios definidos",
        "operationId": "RegistraCliente_RegistraCliente",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "request",
            "in": "body",
            "description": "requisição de entrada",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RegistraClienteRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cliente Registrado com sucesso",
            "schema": {
              "$ref": "#/definitions/RegistraClienteResponse"
            }
          },
          "400": {
            "description": "Dados invalidos na requisicao",
            "schema": {
              "type": "string"
            }
          },
          "409": {
            "description": "Conflito na inserção dos dados na base",
            "schema": {
              "type": "string"
            }
          },
          "500": {
            "description": "Erro durante a operação",
            "schema": {
              "type": "string"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "BknBankCobrancasAdminAPI"
            ]
          }
        ]
      }
    }
  },
  "definitions": {
    "CredenciaisRequest": {
      "description": "Requisição de credenciais",
      "required": [
        "Id"
      ],
      "type": "object",
      "properties": {
        "Id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        }
      }
    },
    "CredenciaisResponse": {
      "description": "Resposta de Credenciais do cliente",
      "type": "object",
      "properties": {
        "ClientId": {
          "description": "ClientId para uso no sistema de Pagamentos",
          "type": "string"
        },
        "ClientSecret": {
          "description": "ClientSecret para uso no sistema de Pagamentos",
          "type": "string"
        },
        "AesKey": {
          "description": "AesKey para uso no sistema de Pagamentos",
          "type": "string"
        }
      }
    },
    "ConsultaClienteRequest": {
      "description": "Representa uma solicitação de consulta de cliente.",
      "type": "object",
      "properties": {
        "cpfcnpj": {
          "description": "Obtém ou define o CPF ou CNPJ do cliente a ser consultado.",
          "type": "string"
        }
      }
    },
    "RegistraClienteRequest": {
      "description": "Requisição de Registro de cliente",
      "required": [
        "Pessoa",
        "CPFCNPJ",
        "Nome",
        "RazaoSocial",
        "Titularidade",
        "NomeCurto",
        "Email",
        "Telefone",
        "Cep",
        "Logradouro",
        "Numero",
        "Bairro",
        "Cidade",
        "UF",
        "NomeUsuario",
        "LoginUsuario",
        "SenhaUsuario",
        "EmailUsuario"
      ],
      "type": "object",
      "properties": {
        "Pessoa": {
          "description": "Tipo de pessoa (F ou J)",
          "pattern": "^[FJ]$",
          "type": "string"
        },
        "CPFCNPJ": {
          "description": "CPF/CNPJ do cliente",
          "type": "string"
        },
        "Nome": {
          "description": "Nome do cliente",
          "type": "string"
        },
        "RazaoSocial": {
          "description": "Razao social da empresa/Nome do seller",
          "type": "string"
        },
        "Titularidade": {
          "description": "Nome do titular da conta corrente de destino",
          "type": "string"
        },
        "NomeCurto": {
          "description": "Nome curto para envio de SMS",
          "type": "string"
        },
        "Email": {
          "description": "E-mail do cliente",
          "type": "string"
        },
        "Telefone": {
          "description": "Telefone do cliente",
          "type": "string"
        },
        "Cep": {
          "description": "Cep do endereco (somente numeros)",
          "type": "string"
        },
        "Logradouro": {
          "description": "O logradouro do endereco",
          "type": "string"
        },
        "Complemento": {
          "description": "Complemento do endereco",
          "type": "string"
        },
        "Numero": {
          "description": "Numero do endereco",
          "type": "string"
        },
        "Bairro": {
          "description": "Bairro do endereco",
          "type": "string"
        },
        "Cidade": {
          "description": "Cidade do endereco",
          "type": "string"
        },
        "UF": {
          "description": "UF do endereco",
          "type": "string"
        },
        "ProvedorPagamentoBoleto": {
          "description": "Forma de pagamento de boletos do cliente, ou vazio se não configurado",
          "type": "string"
        },
        "ProvedorPagamentoCartao": {
          "description": "Forma de pagamento de cartão do cliente, ou vazio se não configurado",
          "type": "string"
        },
        "ProvedorPagamentoPix": {
          "description": "Forma de pagamento de pix do cliente, ou vazio se não configurado",
          "type": "string"
        },
        "Parametros": {
          "description": "Parâmetros dos provedores de pagamento,",
          "type": "array",
          "items": {
            "$ref": "#/definitions/ProvedorParametro"
          }
        },
        "NomeUsuario": {
          "description": "Nome do usuário",
          "type": "string"
        },
        "LoginUsuario": {
          "description": "Login do usuário",
          "type": "string"
        },
        "SenhaUsuario": {
          "description": "Senha do usuário",
          "type": "string"
        },
        "EmailUsuario": {
          "description": "Nome do usuário",
          "type": "string"
        },
        "CriarAcessoCobrancas": {
          "description": "Indicativo de criar acesso no sistema de cobranças",
          "type": "boolean"
        },
        "CriarAcessoPagamentos": {
          "description": "Indicativo de criar acesso no sistema de pagamentos",
          "type": "boolean"
        },
        "ClienteAtivo": {
          "description": "Indica se o cliente no pay estara ativo",
          "type": "boolean"
        },
        "UsuarioAtivo": {
          "description": "Indica se o usuario no pay estara ativo",
          "type": "boolean"
        },
        "ModalidadeSistemaCobrancas": {
          "description": "Tipo de uso do sistema de Cobranças",
          "enum": [
            "ContaCliente",
            "ContaK8"
          ],
          "type": "string"
        },
        "TipoInterno": {
          "format": "int32",
          "description": "Define o tipo de cliente que sera cadastrado (nao aceita WhiteLabel como parametro)",
          "type": "integer"
        }
      }
    },
    "ProvedorParametro": {
      "description": "Parâmetro de provedor",
      "required": [
        "Nome",
        "Valor"
      ],
      "type": "object",
      "properties": {
        "Nome": {
          "description": "Nome do parâmetro",
          "type": "string"
        },
        "Valor": {
          "description": "Valor do parâmetro",
          "type": "string"
        }
      }
    },
    "RegistraClienteResponse": {
      "description": "Resposta de Registro de cliente",
      "type": "object",
      "properties": {
        "ClienteId": {
          "description": "ID do cliente criado",
          "type": "string"
        },
        "CobrancasClientId": {
          "description": "ClientId para uso no sistema de Cobranças, se solicitado",
          "type": "string"
        },
        "CobrancasClientSecret": {
          "description": "ClientSecret para uso no sistema de Cobranças, se solicitado",
          "type": "string"
        },
        "CobrancasAesKey": {
          "description": "AesKey para uso no sistema de Cobranças, se solicitado",
          "type": "string"
        },
        "PagamentosClientId": {
          "description": "ClientId para uso no sistema de Pagamentos, se solicitado",
          "type": "string"
        },
        "PagamentosClientSecret": {
          "description": "ClientSecret para uso no sistema de Pagamentos, se solicitado",
          "type": "string"
        },
        "PagamentosAesKey": {
          "description": "AesKey para uso no sistema de Pagamentos, se solicitado",
          "type": "string"
        }
      }
    },
    "AtualizaClienteRequest": {
      "description": "Representa uma solicitação de atualização de cliente.",
      "type": "object",
      "properties": {
        "Id": {
          "description": "Obtém ou define o ID do cliente a ser atualizado.",
          "type": "string"
        },
        "TipoInterno": {
          "format": "int32",
          "description": "Define o tipo interno do cliente, se null nao realiza nenhuma mudanca",
          "type": "integer"
        },
        "Parametros": {
          "description": "Obtém ou define a lista de parâmetros do provedor associados ao cliente.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/ProvedorParametro"
          }
        }
      }
    }
  },
  "securityDefinitions": {
    "oauth2": {
      "type": "oauth2",
      "description": "OAuth2 Password Grant",
      "flow": "password",
      "authorizationUrl": "/CobrancasAdminAPI/authorize",
      "tokenUrl": "/CobrancasAdminAPI/token",
      "scopes": {
        "CobrancasAdminAPI": "try out"
      }
    }
  }
}