Leia-me
O objetivo desta documentação é orientar o desenvolvedor sobre como integrar com as APIs da Muxi, descrevendo as funcionalidades e os métodos a serem utilizados, listando informações a serem enviadas e recebidas através de exemplos e com uma linguagem simples e acessível. Desse modo, será necessário apenas conhecimentos básicos em linguagem de programação para Web, requisições HTTP/HTTPS e manipulação de arquivos JSON para interagir com nossas APIs.
Nesse manual, você também encontrará a referência sobre todas as operações disponíveis na API REST da Muxi. Essas operações devem ser executadas utilizando sua chave específica (token de autorização) nos respectivos endpoints a seguir. Para executar uma operação, combine a URL base do ambiente com o endpoint da operação desejada e envie utilizando o verbo HTTP conforme descrito no item do menu ENVIANDO UMA TRANSAÇÃO. Caso esses termos estejam complexos para você, leia o subitem O QUE É WEB SERVICE?.
Para facilitar a integração, nós disponibilizamos um ambiente de Sandbox onde você pode realizar testes antes de mudar o ambiente para produção. Após o desenvolvimento, o acesso deve ser modificado para o ambiente produtivo.
| SANDBOX | PRODUÇÃO | |
|---|---|---|
| Requisições | http://hmg-gw.muxidev.com:8085/ | https://ecommerce.muxipay.net/ |
| Consultas | https://hmg-transaction-api.muxi.net.br | https://transaction.muxi.com.br/ |
| Onboarding de ECs | https://hmg-merchant-api.muxi.net.br | https://merchant.muxi.com.br/ |
Transações CNP
Transações de Cartão Não Presente (CNP) permitem que as empresas digitais vendam de forma conveniente seus produtos ou serviços digitais para clientes em todo o mundo. Nossas APIs oferecem um ambiente seguro para se realizar esse tipo de transação e com isso potencializar seus negócios.
Por meio dos gateways de pagamento, o cliente insere as informações do seu cartão, as quais são enviadas às operadoras de cartão e às instituições financeiras e, a partir daí, o banco confirma se há limite disponível e aprova ou nega a compra em segundos.
Mas é seguro?
S-I-M!! Nós da Muxi sabemos o quanto é ruim sermos enganados. Quando usamos um serviço, não começamos pensando que pode dar errado, que podem nos dar uma volta, e certamente não é isso que oferecemos aos nossos clientes. Temos um compromisso com nossos usuários e parceiros a sempre buscar o mais alto padrão de segurança no que diz respeito a pagamentos. Quer saber como fazemos isso?
-
PCI -> Seguimos 100% dos padrões definidos pelo PCI. O Payment Card Industry – Data Security Standard (PCI-DSS) é um padrão de segurança, voltado para a indústria de cartões de pagamento, que definem os modelos de segurança através de padrões que devem ser seguidos de forma rigorosa. Essa certificação é necessária para qualquer empresa que armazene, transmita ou processe informações sigilosas de portadores de cartões. Dados como nome, número do cartão e código de segurança devem ser criptografados para a segurança dos portadores de cartões. E como queremos que você se sinta seguro, somos uma empresa totalmente certificada pelo PCI-DSS.
-
Criptografia -> Todos os dados sensíveis que transitam em nosso gateway são protegidos através dos certificados usados durante a transação. Aqui usamos o HTTPS, que é uma implementação do protocolo HTTP sobre uma camada adicional de segurança que utiliza o protocolo SSL/TLS. Essa camada adicional permite que os dados sejam transmitidos por meio de uma conexão criptografada e que se verifique a autenticidade do servidor e do cliente por meio de certificados digitais.
-
Token -> Não salvamos os dados do seu cartão, eles são tokenizados. A tokenização permite a utilização dos dados do cartão do portador de forma segura e compatível com as normas do PCI-DSS. O conceito básico consiste em enviar os dados do cartão do cliente diretamente do browser dele para a Muxi e então receber de volta um código (token) que representa o cartão em questão. Leia o subitem Tokenização e esteja por dentro da forma mais segura de efetuar um pagamento hoje em dia.
Autenticação do Lojista
Precisamos saber quem é você =)
Para usar nossos serviços, serão necessárias duas coisas importantes:
- Identificador do lojista
- Token de Autenticação
E como eu consigo essas coisas, senhor???
Só ligar para gente! Ao entrar em contato com o time operaconal da Muxi, você gerar para você um número de identificação, que chamamos de Merchant Id, e um token de autenticação, que será usado na inicialização do terminal virtual.
Fale-me mais…
Merchant Id -> é um hash de 34 bits que você guardará com você para sempre! Essa hash vai ser tipo o seu CNPJ, ou seja, um número que me diz que lojista você é. Você vai usar esse dado no corpo da transação de inicialização.
Token de Autenticação -> Esse dado será usado no campo Authentication do HTTP header da transação de inicialização de acordo com o ambiente que deseja acessar. Após a inicialização, você receberá de resposta o token transacional (que é diferente do token de autenticação!) e passará a usar este token ao invés do token de autenticação nas próximas transações. Para gerar o nosso token de autenticação nos baseamos na especificação JWT.io, logo o seu tamanho é variável de acordo com a geração do mesmo.
Veja a seguir um exemplo de comando curl para realizar uma requisição de consulta a ciclos de transação.
curl --request GET --url https://hmg-transaction-api.muxi.net.br/v1/financial_cycles --header 'Authorization:<token>'
O que é Web Service?
Webservices permitem que duas (ou mais) maquinas se comuniquem via uma rede. Veja um exemplo:

Para uma explicação mais profunda, imagine o seguinte cenário: A sua empresa negocia produtos em dólar, cujo valor flutua diariamente. É extremamente importante que você tenha esses valores atualizados para que você tome decisões que lhe tragam melhores resultados. Você pode contratar um estagiário pra ficar atualizando esses valores manualmente, ou você pode consumir um serviço que lhe forneça essa informação automaticamente e com confiabilidade.
Esse serviço é o tal do webservice. Você faz uma pergunta “Quantos reais valem um dólar hoje?” e ele lhe responde. Esse processo, a nível de comunicação, dá-se por requisições baseadas no protocolo HTTP. Existe uma URL específica, que chamamos de endpoint, em um servidor que está sempre esperando pela pergunta e, se ela for feita da maneira correta, ele responde. Chamamos essa URL de endpoint porque ela é sim uma URL, mas ela tem vários “finais” que especificam exatamente onde você quer ir. Imagine como se a URL fosse o endereço de uma rua e o endpoint fosse o número da casa, e dentro de cada casa existe um serviço. Por exemplo, em uma casa você entrega a farinha, ovos, leite e te devolvem um bolo; em outra casa você entrega o tecido, linha, agulha e te devolvem uma roupa. Depois da roupa pronta, você ainda pode voltar na casa para fazer um ajuste, ou adicionar um bordado. Assim como existem casas que podem jogar a roupa fora, se você não vai usar mais. Existem também as casas onde você consulta a quantidades de roupas que já solicitou. Isso tudo será traduzido em verbos. Por exemplo: /
- Fazer uma roupa/transação -> POST
- Consultar quantas roupas/transações já foram feitas -> GET
- Alterar/ajustar uma roupa/transação -> PUT
- Excluir/Jogar fora uma roupa/transação -> DELETE
Lembre-se de que a pergunta (ou requisição) deve ser feita corretamente, caso contrário o webservice não vai conseguir entender o pedido. Use esta documentação para conferir se seus dados estão corretos e não há nada faltando. Há também um exemplo de arquivo JSON funcional para download que você pode usar para comparar com o que estiver usando.
Ferramentas
Postman
Para agilizar os testes de comunicação com as nossas APIs, pode-se utilizar qualquer cliente HTTP. Aqui na Muxi, nós utilizamos o Postman; pois além de atender muito bem às nossas necessidades, é mais difundido na comunidade. Esse cliente permite configurar e realizar testes antes mesmo de iniciar o desenvolvimento das integrações como as APIs da Muxi. No caso do Postman, existe uma documentation bem desenvolvida explicando como utilizar a ferramenta. Ele também gera para o desenvolvedor exemplos de códigos em algumas linguagens, tais como:
- ASP
- Net
- Java
- PHP
- Ruby
- Python
JSONLint
Para validar se o objeto JSON gerado é válido de acordo com o padrão, podemos utilizar várias ferramentas. Aqui na Muxi, usamos o JSONLint, por ser web e possuir uma interface simples de ser entendida.
SDKs
Para quem usa a linguagem Java estamos desenvolvendo SDKs (Kit de desenvolvimento de software) para facilitar a integração com nossas APIs. Aguarde!
Introdução
O que é uma Transação?
Do ponto de vista da aplicação, a transação é uma operação que consiste em uma série de instruções ou procedimentos que devem ser realizados em conjunto. Este tipo de circunstância se deve às instruções que apenas tem sentido quando executadas juntas. Nossa aplicação oferece vários tipo de transações como inicialização, autorização, estorno, tokenicação etc. Toda vez que dados forem enviados para API e algo for respondido, teremos uma transação; porém se valores monetários estiverem envolvidos nessa transação, teremos uma transação financeira.
Transação financeira é uma operação comercial que consiste em trocar um bem ou serviço por uma determinada quantidade de dinheiro. O termo também se refere à própria operação técnica do banco de dados que executa uma série de operações. No entanto, o significado mais comum se refere à troca de bens, circunstância própria da atividade econômica.
Exemplos de transações financeiras:
- Autorização / Venda
- Pré-autorização
- Confirmação de Pré-autorização
- Cancelamento de Pré-autorização
- Cancelamento de Venda
- Pagamento Recorrente
Exemplos de transações não financeiras:
- Inicialização
- Cadastro de Assinante
- Registro de Cartão - Tokenização
O que é necessário para realizar uma transação financeira?
Temos diversos meios de envio de uma transação financeira. Para realizá-la, necessitamos antes gerar um token transacional. Quando receber o token de autenticação. Em posse desses dados, enviará uma mensagem de inicialização, e assim obterá o token transacional que é válido por 1 hora, caso gere outro o anterior é invalidado.
Calma aí! Me explica melhor o que é o Token Transacional!
Claro! O token transacional é uma chave única que identifica para nossa sistema quem é você! Toda vez que você quiser transacionar, você começa fazendo uma inicialização com o token de autenticação no campo Authentication do HTTP header. A resposta dessa inicialização vai gerar para você o token transacional. Você vai copiar esse token transacional e trocar o token de autenticação que estava no campo Authetication do cabeçalho por esse token novo. Com isso, você vai poder fazer todas as outras transações, veja um exemplo mais a seguir. O token transacional tem validade de 1 hora, sendo assim, ao acabar esse tempo, você precisa inicializar novamente para conseguir um novo token e voltar a transacionar normalmente.
Header HTTP
Toda requisição precisa de um cabeçalho contendo as informações detalhadas a seguir:
- Content-Type -> Indica o formato do corpo da requisiçao.
- Accept -> Indica o tipo de retorno esperado.
- Authorization -> É o campo preenchido por dois valores possíveis:
- Token de Autenticação -> Se for uma inicialização.
- Token Transacional -> Se for qualquer outra transação, exceto a inicialização.
Exemplo
| Header HTTP |
| Nome | Valor |
|---|---|
| Content-type | application/json |
| Accept | application/json |
| Authorization | token transacional ou token de autenticação |
Antes de começar, temos um recado importante!
Possuímos uma collection do Postman frequentemente atualizada com todas as requisições descritas nesta documentação. Caso queira fazer o download para ultilizá-la em seus testes, basta clicar no link a seguir:
https://www.getpostman.com/collections/ab422606e01214a7193c
Inicialização
POST /v1/initialization
O que é a Inicialização?
A inicialização é um processo usado para fornecer as configurações necessárias para deixar o terminal virtual operante, e com isso poder realizar as transações desejadas. Não é possível transacionar antes de ocorrer a inicialização, pois ela retorna o token transacional que é um campo necessário para todas as outras transações existirem.
Como fazer uma Inicialização?
Para conseguir inicializar o terminal virtual, você precisa ter o Token de Autenticação e o CNPJ/CPF do lojista. Caso você não tenha ainda essas informações, entre em contato com o time operacional da Muxi que teremos um imenso prazer em ajudar.
Em posse do Token de Autenticação e do CNPJ/CPF do lojista, envie uma requisição HTTP/HTTPS para o endpoint initialization
Requisição
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| documentId | String | Sim | Identificador do lojista (CNPJ ou CPF) |
Exemplo
{
"documentId": "99999999000199"
}
Resposta
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| code | String | Sim | Código de resposta da transação (ex.: ACCEPTED/REJECTED) |
| currencyList | Lista | Sim | Listagem com os tipos de moeda |
| slugMerchant | String | Sim | Identificador do estabelecimento comercial no qual o terminal está alocado |
| transactionalToken | String | Sim | token transacional válido por 1 hora |
| slugAuthorizer | String | Sim | Identificador do autorizador que realizou o processamento da transação |
Exemplo
{
"slugIssuer": "379E71518C0A4E11A4DEF4498ECDB074",
"code": "ACCEPTED",
"currencyList": ["BRL"],
"slugMerchant": "285E73E7F3F441239D0E5EFC60CF5562",
"transactionalToken": "eyJraWQiOiJUUkFOU0FDVElPTkFMIiwidHlwIjoiSldUIiwiYWxnIjoiSFM1MTIifQ.eyJ0dGQiOiIwMjA3MDRmNy02MzIyLTQ1MTktODBkOC1mN2FjOTExMjg5ZGIifQ.g8oxKmCAWix0fQGhlxflfywV1oeNbjEsp-ctCSPsyIdNSXUnZLcsc1I-nLrmqqYfzwdmNIz5gQ-IH_nNp_ZHQA",
"slugAuthorizer": "160B4B8A4991457A997CD4F3294D1DCB"
}
Venda
POST /v1/sale
A Venda é a transação financeira mais tradicional possível. Ela é a troca de um produto ou serviço por um valor monetário. A venda pode ser estornada ou reembolsada caso haja desistência.
Em posse dos dados necessários, token transacional, devemos realizar uma requisição HTTP/HTTPS para o endpoint sale
Requisição
| Body | |||
|---|---|---|---|
| Nome | Tipo | Obrigatório | Descrição |
| String | Sim | ||
| currency | String | Sim | Código da moeda |
| amount | Number | Sim | Valor |
| orderId | String | Não | Identificador da compra |
| installments | Number | Não | Parcelas |
| note | String | Não | Observações sobre a transação |
| cardNumber | String | Sim | Número do cartão |
| cardSecurityCode | String | Sim | Código de segurança do cartão |
| cardExpirationDate | String | Sim | Data de expiração do cartão |
| cardHolderName | String | Sim | Nome do portador do cartão |
| documentId | String | Não | Documento de identidade do comprador |
| billingAddress.postalCode | String | Não | Cep |
| billingAddress.street | String | Não | Logradouro |
| billingAddress.complement | String | Não | Complemento |
| billingAddress.phone | String | Não | Telefone |
Exemplo
{
"email": "teste@teste.com",
"currency": "BRL",
"amount": 10.0,
"orderId": "123456",
"installments": 3,
"note": "Cobrança por serviço de streaming",
"cardNumber": "4111111111111111",
"cardSecurityCode": "099",
"cardExpirationDate": "122020",
"cardHolderName": "Teste Teste",
"documentId": "11111111"
"billingAddress": {
"postalCode": "20020100",
"street": "Rua do Carmo, 43",
"complement": "Centro",
"phone": "21222333444"
}
}
Resposta
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| muid | String | Sim | Identificador único da Muxi |
| code | String | Sim | Código de resposta da transação (ex.: ACCEPTED/REJECTED) |
| amount | Number | Sim | Valor da transação |
| authorizationCode | Number | Sim | Código de autorização |
| currency | String | Sim | Moeda da transação |
| rrn | Number | Sim | Número de referência |
| trackingNumber | String | Sim | Tracking Number |
| lastDigits | Number | Sim | Últimos dígitos do cartão |
Exemplo
{
"muid": "7c2cb2e0a9004a8893358b1dd7ae5b1d",
"code": "ACCEPTED",
"amount": 40.0,
"authorizationCode": "099218",
"currency": "BRL",
"rrn": "999999999999",
"trackingNumber": "1111111111",
"lastDigits": "9999"
}
Pré-Autorização
POST /v1/pre_authorization
A pré-autorização de compra no cartão consiste em uma checagem de limite e/ou saldo do cartão utilizado. Essa transação serve para fazer um bloqueio de limite no valor da pré-autorização e esse valor fica constando como pendende para a administradora. Durante o período em que o valor da pré-autorização não for confirmada, o valor fica indisponível para novas compras.
Em posse dos dados necessários, token transacional, devemos realizar uma requisição HTTP/HTTPS para o endpoint pre_authorization
Requisição
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| String | Sim | ||
| currency | String | Sim | Moeda |
| amount | Number | Sim | Valor |
| orderId | String | Não | Identificador da compra |
| installments | Number | Não | Parcelas |
| note | String | Não | Observação |
| cardNumber | String | Sim | Número do cartão |
| cardSecurityCode | String | Sim | Código de segurança |
| cardExpirationDate | String | Sim | Data de expiração |
| cardHolderName | String | Sim | Nome do portador do cartão |
| billingAddress.postalCode | String | Não | Cep |
| billingAddress.street | String | Não | Logradouro |
| billingAddress.complement | String | Não | Complemento |
| billingAddress.phone | String | Não | Telefone |
Exemplo
{
"email": "teste@teste.com",
"currency": "BRL",
"amount": 10.0,
"orderId": "123456",
"installments": 3,
"note": "Cobrança por serviço de streaming",
"cardNumber": "4111111111111111",
"cardSecurityCode": "099",
"cardExpirationDate": "122020",
"cardHolderName": "Teste Teste",
"billingAddress": {
"postalCode": "20020100",
"street": "Rua do Carmo, 43",
"complement": "Centro",
"phone": "21222333444"
}
}
Resposta
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| muid | String | Sim | Identificador único da Muxi |
| code | String | Sim | Código de resposta da transação (ex.: ACCEPTED/REJECTED) |
| amount | Number | Sim | Valor da transação |
| authorizationCode | Number | Sim | Código de autorização |
| currency | String | Sim | Moeda da transação |
| rrn | Number | Sim | Número de referência |
| trackingNumber | String | Sim | Tracking Number |
| lastDigits | Number | Sim | Últimos dígitos do cartão |
Exemplo
{
"muid": "7c2cb2e0a9004a8893358b1dd7ae5b1d",
"code": "ACCEPTED",
"amount": 40.0,
"authorizationCode": "099218",
"currency": "BRL",
"rrn": "999999999999",
"trackingNumber": "1111111111",
"lastDigits": "9999"
}
Confirmação Pré-Autorização (Captura)
POST /v1/capture
A confirmação de uma pré-autorização é uma transação usada para efetivar a cobrança de um valor já reservado é autorizado no cartão. A partir do momento que a pré-autorização é confirmada, o fluxo a transação passa a ser o de uma venda que pode ser cancelada pelos meios explicados nos itens Estorno e Reembolso.
Em posse dos dados necessários, token transacional, devemos realizar uma requisição HTTP/HTTPS para o endpoint capture
Requisição
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| String | Sim | ||
| currency | String | Sim | Código da moeda |
| amount | Number | Sim | Valor |
| trackingNumber | Number | Sim | Traking Number |
| installments | Number | Não | Parcelas |
| muid | String | Sim | Identificador único da Muxi |
| orderId | String | Não | Identificador da compra |
Exemplo
{
"email": "teste@teste.com",
"currency": "BRL",
"amount": 10.00,
"trackingNumber": "1111111111",
"installments": 3,
"muid": "9542a7a934444b59af79b792ef72696d",
"orderId": "123456"
}
Resposta
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| muid | String | Sim | Identificador único da Muxi |
| amount | Number | Sim | Valor da transação |
| code | String | Sim | Código de resposta da transação (ex.: ACCEPTED/REJECTED) |
| authorizationCode | Number | Sim | Código de autorização |
| currency | String | Sim | Moeda da transação |
| trackingNumber | String | Sim | Tracking Number |
| rrn | Number | Sim | Número de referência |
Exemplo
{
"muid": "7c2cb2e0a9004a8893358b1dd7ae5b1d",
"amount": 40.0,
"code": "ACCEPTED",
"authorizationCode": "099218",
"currency": "BRL",
"trackingNumber": "1111111111",
"rrn": "999999999999"
}
Void - Cancelamento de Pré-Autorização e de Venda
POST /v1/void
A transação de Cancelamento é dividida em dois tipos: Cancelamento de Pré-Autorização e o Cancelamento de Venda.
O Cancelamento de Pré-Autorização representa a liberação do limite reservado na pré-autorização. Já o Cancelamento de Venda representa o estorno da compra. Ambos os cancelamentos estão compreendidos neste endpoint e são diferenciados conforme abaixo:
Para alternar entre o Cancelamento de Pré-Autorização e o Cancelamento de Venda basta aterar a propriedade type na requisição para PRE_AUTHORIZATION (Cancelamento de Pré-Autorização) e CREDIT (Cancelamento de Venda).
Em posse dos dados necessários, token transacional, devemos realizar uma requisição HTTP/HTTPS para o endpoint void
Requisição
| Body | |||
|---|---|---|---|
| Nome | Tipo | Obrigatório | Descrição |
| type | String | Sim | Tipo do cancelamento (conforme orientação acima) |
| amount | Number | Sim | Valor |
| installments | Number | Não | Parcelas |
| currency | String | Sim | Código da moeda |
| muid | String | Sim | Identificador único da Muxi |
| trackingNumber | String | Sim | Tracking Number |
| String | Sim | ||
| originalRrn | String | Não | Rrn retornado na transação a ser cancelada |
| authorizationCode | Number | Não | Código de autorização |
Exemplo
{
"type": "PRE_AUTHORIZATION",
"amount": 10.00,
"installments": 3,
"currency": "BRL",
"muid": "bfa6c5285caf4c868941b97b6c15053b",
"trackingNumber": "1111111111",
"email": "laura.silva@gmail.com",
"originalRrn": "d4d7cbc9-bf43-481b-b26b-e89aec5ebd5f",
"authorizationCode": "576256"
}
Resposta
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| muid | String | Sim | Identificador único da Muxi |
| amount | Number | Sim | Valor |
| code | String | Sim | Código de resposta da transação (ex.: ACCEPTED/REJECTED) |
| authorizationCode | String | Sim | Código de autorização |
| currency | String | Sim | Moeda da transação |
| trackingNumber | String | Sim | Tracking Number |
| rrn | Number | Sim | Número de referência |
Exemplo
{
"muid": "bfa6c5285caf4c868941b97b6c15053b",
"amount": 10.00,
"code": "ACCEPTED",
"authorizationCode": "099218",
"currency": "BRL",
"trackingNumber": "1111111111",
"rrn": "999999999999"
}
Cadastro de Assinante
POST /v1/subscriber
O que é Cadastro de Assinante?
Para habilitar uma transação de recorrência é necessário que o assinante, ou seja, o portador do cartão seja cadastrado na API para que cartões possam ser vinculados a ele.
Em posse dos dados necessários, token transacional, devemos realizar uma requisição HTTP/HTTPS para o endpoint subscriber
Requisição
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| firstName | String | Não | Primeiro nome do portador do cartão |
| lastName | String | Não | Último nome do portador do cartão |
| String | Sim | ||
| phone | String | Não | Telefone |
| loadCardData | Boolean | Não | Carrega os dados de cartões já vinculados |
Exemplo
{
"firstName": "Teste",
"lastName": "Teste",
"email": "teste@teste.com",
"phone": "9999999999",
"loadCardData": true
}
Resposta
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| cardList | Lista | Sim | Lista de cartões vinculados ao subscriber |
| code | String | Sim | Código de resposta da transação (ex.: ACCEPTED/REJECTED) |
| subscriberId | String | Sim | Código de identificação do assinante |
Exemplo
{
"cardList": [ lista de cartões vinculados ao subscriber ],
"code": "ACCEPTED",
"subscriberId": "2A7A08EB528C4D2894F46656FCCB589D"
}
Registro de Cartão - Tokenização
POST /v1/card
O que é o Registro de Cartão - Tokenzação?
O Registro de Cartão - Tokenização é uma solução de tecnologia que intercepta os números de cartão de crédito inseridos em qualquer sistema ou ambiente de aceitação de pagamento corporativo e substitui os números de cartão de crédito por um valor substituto ou token. Esse token é usado como se fosse o cartão real para dar suporte a solicitações de clientes e facilitar a geração de relatórios sem interromper as operações do dia-a-dia; no entanto, o token gerado aleatoriamente não tem significado ou valor para os hackers em caso de violação. A tecnologia de tokenização de cartão de crédito impede que dados inseguros de titulares de cartão e outros dados pessoais entrem nos sistemas corporativos, incluindo ERP, CRM, aplicativos legados e sites de comércio eletrônico.
Nessa etapa o vínculo entre o cartão e o assinante (subscriber) se dará através da inserção do parâmetro subscriberId na requisição.
Em posse dos dados necessários, token transacional, devemos realizar uma requisição HTTP/HTTPS para o endpoint card
Requisição
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| cardHolderName | String | Sim | Nome do portador do cartão |
| cardNumber | String | Sim | Número do cartão |
| cardExpirationDate | String | Sim | Data de expiração |
| cardSecurityCode | String | Sim | Código de segurança |
| subscriberId | String | Sim | Código de identificação do assinante |
Exemplo
{
"cardHolderName": "TESTE TESTE",
"cardNumber": "1111111111111111",
"cardExpirationDate": "122025",
"cardSecurityCode": "123",
"subscriberId": "99999999999999999"
}
Resposta
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| code | String | Sim | Código de resposta da transação (ex.: ACCEPTED/REJECTED) |
| firstDigits | String | Sim | Primeiros quatro dígitos do cartão |
| lastDigits | String | Sim | Últimos quatro dígitos do cartão |
| active | String | Sim | Indica se o cartão está ativo ou não (ex.: 1/0) |
| brand | String | Sim | Indica a bandeira do cartão inserido |
| token | String | Sim | Informa o token gerado para o cartão inserido |
Exemplo
{
"code": "ACCEPTED",
"firstDigits": "520497",
"lastDigits": "5253",
"active": "1",
"brand": "MASTERCARD",
"token": "74877151EA1D4A699C975EB34D4AF156"
}
Pagamento Recorrente (ALPHA)
POST /v1/recurring-billing
O que é o Pagamento Recorrente?
É um serviço que funciona como uma cobrança recorrente, ou seja, que se repete ao longo de um determinado tempo. O pagamento é feito por um período pré-determinado pelo vendedor – Semanal, Mensal ou Anual – e o comprador, por sua vez, ao concordar com a recorrência na primeira compra, não precisa se preocupar em fazer o pagamento periodicamente, pois a cobrança já acontece de forma automática no cartão de crédito.
O Pagamento Recorrente beneficia todos os envolvidos: enquanto os compradores não oneram seus limites de cartão de crédito, e nunca deixam de pagar a assinatura para não ter o risco de ficar sem o serviço, os vendedores possuem uma nova forma de gerenciamento de suas transações, de forma mais automática sem se preocupar em cobrar os clientes todo mês, ajudando a reduzir a inadimplência.
A solução de Pagamento Recorrente é ideal para empresas que fazem clube de assinaturas de seus produtos e serviços, bem como para escolas e cursos que cobram mensalidade de seus alunos.
Como cadastrar um Pagamento Recorrente?
Para habilitar a recorrência é necessário executar as seguintes etapas:
- Enviar uma requisição de inicialização;
- Efetuar um cadastro de assinante (Cadastrar assinante);
- Vincular um cartão ao assinante cadastrado (Cadastrar cartão);
- Cadastrar um pagamento recorrente.
Em posse dos dados necessários, token transacional, devemos realizar uma requisição HTTP/HTTPS para o endpoint recurring-billing
Requisição
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| subscriberId | String | Sim | Código de identificação do assinante |
| token | String | Sim | Token de segurança do cartão |
| name | String | Sim | Nome do plano da recorrência |
| starDate | String | Sim | Data de início da cobraça |
| amount | Number | Sim | Valor da recorrência |
| endDate | String | Sim | Data da última cobrança (é necessário entrar com endDate ou paymentCount) |
| paymentCount | String | Sim | Quantidade de vezes a cobrança vai acontecer (é necessário entrar com paymentCount ou endDate) |
| frequency | String | Sim | Frequência com que a cobrança será realizada (valores possíveis: WEEKLY, MONTHLY, YEARLY) |
| orderId | String | Não | Identificador da compra |
Exemplo
{
"subscriberId": "2C863FF6B4D64D3E805EF8750690B5E4",
"token": "73E0C68F27E64F408A0E331FF06C59E1",
"name": "Recorrência teste 03AGO2021",
"startDate": "2021-08-03",
"amount": 78.00,
"paymentCount": 7,
"frequency": "YEARLY"
}
Resposta
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| code | String | Sim | Código de resposta da transação (ex.: ACCEPTED/REJECTED) |
| recurringBillingId | String | Sim | Identificador do pagamento recorrente |
| subscriberId | String | Sim | Código de identificação do assinante |
| token | String | Sim | Token do cartão utilizado para esse pagamento recorrente |
| name | String | Sim | Nome do plano da recorrência |
Exemplo
{
"code": "ACCEPTED",
"recurringBillingId": "6DBC8C7A794D4A3D8EA495D6CDC3FD69",
"subscriberId": "2C863FF6B4D64D3E805EF8750690B5E4",
"token": "73E0C68F27E64F408A0E331FF06C59E1",
"name": "Recorrência teste 03AGO2021"
}
Pagamento Recorrente Full (ALPHA)
POST /v1/recurring-billing-full
O que é o Pagamento Recorrente?
É um serviço que funciona como uma cobrança recorrente, ou seja, que se repete ao longo de um determinado tempo. O pagamento é feito por um período pré-determinado pelo vendedor – Semanal, Mensal ou Anual – e o comprador, por sua vez, ao concordar com a recorrência na primeira compra, não precisa se preocupar em fazer o pagamento periodicamente, pois a cobrança já acontece de forma automática no cartão de crédito.
O Pagamento Recorrente beneficia todos os envolvidos: enquanto os compradores não oneram seus limites de cartão de crédito, e nunca deixam de pagar a assinatura para não ter o risco de ficar sem o serviço, os vendedores possuem uma nova forma de gerenciamento de suas transações, de forma mais automática sem se preocupar em cobrar os clientes todo mês, ajudando a reduzir a inadimplência.
A solução de Pagamento Recorrente é ideal para empresas que fazem clube de assinaturas de seus produtos e serviços, bem como para escolas e cursos que cobram mensalidade de seus alunos.
Como habilitar a Recorrência?
Para habilitar a recorrência através deste endpoint basta enviar uma requisição de recorrência. Neste endpoint, diferentemente do outro de pagamento recorrente, os cadastros de assinante (subscriber) e cartão são feitos simultaneamente no momento do cadastro da recorrência.
Em posse dos dados necessários, token transacional, devemos realizar uma requisição HTTP/HTTPS para o endpoint recurring-billing-full
Requisição
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| firstName | String | Não | Primeiro nome do portador do cartão |
| lastName | String | Não | Último nome do portador do cartão |
| String | Sim | ||
| phone | String | Não | Telefone |
| cardHolderName | String | Sim | Nome do portador do cartão |
| cardNumber | String | Sim | Número do cartão |
| cardExpirationDate | String | Sim | Data de expiração |
| cardSecurityCode | String | Sim | Código de segurança |
| name | String | Sim | Nome do plano da recorrência |
| starDate | String | Sim | Data de início da cobraça |
| endDate | String | Sim | Data da última cobrança (é necessário entrar com endDate ou paymentCount) |
| paymentCount | String | Sim | Quantidade de vezes a cobrança vai acontecer (é necessário entrar com paymentCount ou endDate) |
| frequency | String | Sim | Frequência com que a cobrança será realizada (valores possíveis: WEEKLY, MONTHLY, YEARLY) |
| amount | Number | Sim | Valor da recorrência |
| orderId | String | Não | Identificador da compra |
Exemplo
{
"firstName": "TESTE",
"lastName": "TESTE2",
"email": "email@muxi.com.br",
"phone": "2199999999",
"cardHolderName": "TESTE MUXI",
"cardNumber": "5204970000005253",
"cardExpirationDate": "122025",
"cardSecurityCode": "525",
"name": "Recorrência teste",
"startDate": "2021-04-20",
"paymentCount": 12,
"frequency": "MONTHLY",
"amount": 130.00
}
Resposta
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| code | String | Sim | Código de resposta da transação (ex.: ACCEPTED/REJECTED) |
| recurringBillingId | String | Sim | Identificador do pagamento recorrente |
| subscriberId | String | Sim | Código de identificação do assinante |
| token | String | Sim | Token do cartão utilizado para esse pagamento recorrente |
| name | String | Sim | Nome do plano da recorrência |
Exemplo
{
"code": "ACCEPTED",
"recurringBillingId": "DAEDEB83B82C480A8432DA160971F1F2",
"subscriberId": "596FF780EFC74C19A44DE716A9465CCA",
"token": "30BB4C115FB54974B4FBA9207C212AA5",
"name": "Recorrência teste"
}
Introdução
Posso mudar uma transaçaõ já realizada?
Sim, mas apenas as transações de Cadastro de Assinante, Cadastro de Cartão - Tokenização e Pagamento Recorrente. Para isso você precisa enviar um requisição HTTP/HTTPS usando o método PUT. Veja nos subitens a seguir o exemplo de cada uma dessas transações.
Atualizando Pagamento Recorrente (ALPHA)
PUT /v1/recurring-billing
Para atualizar um Pagamento Recorrente no ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint recurring-billing.
É necessário incluir na requisição os seguintes campos recurringBillingId, subscriberId e o token, além dos demais que se deseja modificar.
Requisição
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| recurringBillingId | String | Sim | Identificador do pagamento recorrente |
| subscriberId | String | Sim | Código de identificação do assinante |
| token | String | Sim | Token do cartão utilizado para esse pagamento recorrente |
| amount | Number | Sim | Valor da recorrência |
Exemplo
{
"recurringBillingId": "6DBC8C7A794D4A3D8EA495D6CDC3FD69",
"subscriberId": "2A7A08EB528C4D2894F46656FCCB589D",
"token": "73E0C68F27E64F408A0E331FF06C59E1",
"amount": 78.00
}
Resposta
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| code | String | Sim | Código de resposta da transação (ex.: ACCEPTED/REJECTED) |
| recurringBillingId | String | Sim | Identificador do pagamento recorrente |
| subscriberId | String | Sim | Código de identificação do assinante |
| token | String | Sim | Token do cartão utilizado para esse pagamento recorrente |
| name | String | Sim | Nome do plano da recorrência |
Exemplo
{
"code": "ACCEPTED",
"recurringBillingId": "6DBC8C7A794D4A3D8EA495D6CDC3FD69",
"subscriberId": "2C863FF6B4D64D3E805EF8750690B5E4",
"token": "73E0C68F27E64F408A0E331FF06C59E1",
"name": "Recorrência teste 03AGO2021"
}
Atualizando cadastro do assinante
PUT /v1/subscriber/
Para atualizar o cadastro do assinante no ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint subscriber.
Requisição
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| subscriberId | String | Sim | Código de identificação do assinante |
| String | Sim | ||
| firstName | String | Sim | Primeiro nome do portador do cartão |
| lastName | String | Sim | Último nome do portador do cartão |
| issuerAuthorizerSubscriberKey | String | Sim | Código de autorização do emissor |
Exemplo
{
"subscriberId": "2A7A08EB528C4D2894F46656FCCB589D",
"email": "teste@teste.com",
"firstName": "Teste",
"lastName": "Teste",
"issuerAuthorizerSubscriberKey": "123456789"
}
Resposta
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| cardList | Lista | Sim | Lista de cartões vinculados ao subscriber |
| code | String | Sim | Código de resposta da transação (ex.: ACCEPTED/REJECTED) |
| subscriberId | String | Sim | Código de identificação do assinante |
Exemplo
{
"cardList": [ lista de cartões vinculados ao subscriber ],
"code": "ACCEPTED",
"subscriberId": "2A7A08EB528C4D2894F46656FCCB589D"
}
```
Atualizando Registro de Cartão - Tokenização
PUT /v1/card/
Para atualizar o cadastro do Registro de Cartão - Tokenização no ecosistema da Muxi, alterando se o cartão está ativo ou inativo, basta realizar uma requisição HTTP/HTTPS para o endpoint card seguido do identificador do assinante (subscriber) dono do cartão e do token do mesmo.
Requisição
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| subscriberId | String | Sim | Código de identificação do assinante |
| token | String | Sim | Informa o token gerado para o cartão inserido |
| active | Boolean | Sim | Status do cartão a ser definido |
Exemplo
{
"subscriberId": "99999999999999999",
"token": "74877151EA1D4A699C975EB34D4AF156",
"active": true
}
Resposta
| Body |
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| code | String | Sim | Código de resposta da transação (ex.: ACCEPTED/REJECTED) |
| firstDigits | String | Sim | Primeiros quatro dígitos do cartão |
| lastDigits | String | Sim | Últimos quatro dígitos do cartão |
| active | String | Sim | Indica se o cartão está ativo ou não (ex.: 1/0) |
| brand | String | Sim | Indica a bandeira do cartão inserido |
| token | String | Sim | Informa o token gerado para o cartão inserido |
Exemplo
{
"code": "ACCEPTED",
"firstDigits": "520497",
"lastDigits": "5253",
"active": "1",
"brand": "MASTERCARD",
"token": "74877151EA1D4A699C975EB34D4AF156"
}
```
CARTÃO PRESENTE
Transações Cartão presente
Por um longo tempo, os meios de pagamento eram limitados a dispositivos caros e complexos que tinham um baixo poder computacional. Em adição a isso, as aplicações financeiras que eram necessárias para fazer pagamentos efetivamente, foram desenvolvidas de um modo custoso e não escalável. Entretanto, com o avanço da tecnologia, smartphones tem sido importantes ferramentas para inovar o meio de pagamentos e suas tecnologias, tornando possivel a melhoria de interação de diferentes interessados, como estabelecimentos, usuários finais, bancos e emissores.
Tendo isso em mente, nós oferecemos para nossos clientes um serviço Android chamado muxiPAY services e um SDK(Software Development Kit) que permite o desenvolvimento de aplicações Android para pagar de maneira transparente, segura e descomplicada. Para que os desenvolvedores se concentrem no que realmente importa, a experiência do usuário e a regra de negócio.
PRIMEIROS PASSOS
Dispositivos suportados
Atualmente o dispositivo suportados é:
- PAX D150
AMBIENTE
Preparando o ambiente
Para o desenvolvimento da nossa aplicação, recomendamos o uso do Android Studio que é a IDE oficial de desenvolvimento de apps Android.
Depois do projeto criado, o desenvolvedor deve adicionar ao projeto o módulo do muxiPAY services SDK, provido pela Muxi no formato AAR. Você pode baixar para integrar o SDK ao seu app aqui. As instruções para importar o módulo você encontra aqui.
Após o SDK importado, é hora de instalar o muxiPAY services no seu smartphone. Você pode baixar nossa versão de integração que é uma versão onde não é necessário o uso de um Pinpad
Você precisará adicionar algumas dependencias no seu app/build.gradle, para criar a ponte entre o skd e o muxiPAY services.
api "com.josesamuel:remoter-annotations:1.2.0"
annotationProcessor "com.josesamuel:remoter:1.2.0"
Você também pode baixar o nosso aplicativo de exemplo que já contém o SDK importado clicando aqui.
DESENVOLVENDO COM MUXIPAY SERVICES
Vinculando ao muxiPAY services
Nesse passo, o desenvolvedor deverá adicionar sua lógica com mecanismos de pagamento providos pelo muxiPAY services.
O desevolvedor deve criar um objeto principal que é uma instância da interface IMPSManager, instanciá-la e vincular a aplicação com o serviço. É recomendado fazer isso no método onStart da activity atual, porém você pode fazer o bind com o serviço onde desejar.
Nota bindService deve ser chamado antes de qualquer operação
-
MPSManager mpsManager = null; @Override protected void onStart() { super.onStart(); if (mpsManager == null) { Log.d(TAG,"Instantiating mpsManager"); mpsManager = new MPSManager(this.getApplicationContext()); } boolean bindService = mpsManager.bindService(getApplicationContext()); } -
var mpsManager: MPSManager = null override fun onStart() { super.onStart() if (mpsManager == null) { Log.d(TAG,"Instantiating mpsManager") mpsManager = MPSManager(this.applicationContext) } isServiceBound = mpsManager?.bindService(applicationContext)!! }
Setando Manager callback
A comunicação entre o aplicativo do usuário e o muxiPAY services é estabelecida usando Callbacks. Para facilitar a interação do desenvolvedor, o serviço tem uma classe chamada CallbackAnswer que implementa cinco métodos. Todos esses métodos são chamados quando algum processo do muxiPAY services for encerrado, retornando um objeto do tipo MPSResult que contem informação do STATUS sobre o processo executado. Em caso de ERROR, retorna o código e a descrição do erro ocorrido. Veja na seção Erros mais informações sobre.
- public void onInitAnswer(MPSResult mpsResult); Chamado quando o processo de inicialização é finalizado
- public void onTransactionAnswer(MPSResult mpsResult); Chamado quando o processo de transação é finalizado
- public void onCancelAnswer(MPSResult mpsResult); Chamado quando o processo de cancelamento é finalizado
- public void onDeconfigureAnswer(MPSResult mpsResult); Chamado quando o processo de desconfiguração é finalizado
- public void onServiceConnected(); Chamado quando o serviço é conectado
- public void onServiceDisconnected(); Chamado quando o serviço para de forma inesperada
O desenvolvedor deve usar o método setMpsManagerCallback para definir o Callback instanciado que deve ser notificado quando o processo terminar. Por exemplo, adicionando tratamento para onInitAnswer:
-
mpsManager.setMpsManagerCallback(new CallbackAnswer() { @Override public void onInitAnswer(final MPSResult mpsResult) { runOnUiThread(new Runnable() { @Override public void run() { if (mpsResult.getStatus() == MPSResult.Status.SUCCESS) { // faça alguma coisa com o sucesso } else { // faça alguma coisa com o erro } } }); } } -
mpsManager?.setMpsManagerCallback(object : CallbackAnswer(){ override fun onInitAnswer(mpsResult: MPSResult?) { super.onInitAnswer(mpsResult) runOnUiThread { if (mpsResult?.status == MPSResult.Status.SUCCESS) { // faça alguma coisa com o sucesso } else { // faça alguma coisa com o erro } } } })
Nota 1: Callback é chamada em outra thread. Para atualizar a tela da sua aplicação, use runOnUiThread method ou alguma outra forma que faça o processamento em uma Thread diferente da UiThread ou MainThread
Nota 2: CallbackAnswer é preparada para sobrescrever apenas callbacks necessários. Assim, o desenvolvedor escolhe os métodos que devem ser sobrescritos na activity atual.
Inicialização
O Objeto IMPSManager será usado para chamar o método de inicialização, passando os seguintes parâmetros:
- Um booleano indicando se algumas mensagens deverão ser exibidas na tela do pinpad.
- O identificador do comerciante (CNPJ, por exemplo).
- A chave de autenticação, que será fornecida pela Muxi.
Nota: É recomendado executar essa chamada em outra thread, para evitar o travamento da Thread principal(UI Thread).
-
mpsManager.initialize(pinpadMSG, MERCHANT_ID, AUTHENTICATION_TOKEN); -
mpsManager?.initialize(pinpadMSG, MERCHANT_ID, AUTHENTICATION_TOKEN)
Após a inicialização, onInitAnswer é chamado
Realizando uma transação
Agora, com o Pinpad pareado, deve-se passar o endereço MAC do mesmo como parâmetro do método setCurrentBluetoothDevice, sendo possivel realizar sua primeira transação.
-
mpsManager.setCurrentBluetoothDevice(bluetoothDevice); -
mpsManager?.currentBluetoothDevice = bluetoothDevice
O desenvolvedor deve acessar o método transaction através da instância da classe IMPSManager. Esse método espera um objeto do tipo MPTransaction como parâmetro. Veja o exemplo abaixo.
-
MPSTransaction currentTransaction = new MPSTransaction(); currentTransaction.setAmount("2000"); currentTransaction.setCurrency(MPSTransaction.CurrencyType.BRL); currentTransaction.setInstallments(1); currentTransaction.setTransactionMode(MPSTransaction.TransactionMode.CREDIT); currentTransaction.setRate(false); currentTransaction.setMerchantId(MERCHANT_ID); -
val currentTransaction = MPSTransaction() currentTransaction?.amount = "2000" currentTransaction?.currency = MPSTransaction.CurrencyType.BRL currentTransaction?.installments = 1 currentTransaction?.transactionMode = MPSTransaction.TransactionMode.CREDIT currentTransaction?.rate = false currentTransaction?.merchantId = MERCHANT_ID
Então, chamar o método transaction, passando o objeto criado como parâmetro. É recomendado executar essa chamada em outra thread, para evitar o travamento da Thread principal(UI Thread).
-
mpsManager.transaction(transaction); -
mpsManager?.transaction(transaction)
O exemplo acima realiza uma transação de crédito, com 1 (uma) parcela e com o valor de 20.00 BRL.
Nota: O tipo da transação e a moeda são do tipo enum.
Cada transação pode ser aprovada ou negada. O desenvolvedor deve receber o resultado da transação e tratá-la, usando onTransactionAnswer.
No caso da resposta SUCCESS em onTransactionAnswer, o recibo do cliente e do estabelecimento são guardados em duas Strings, para serem tratadas no futuro. Essas strings são acessadas através dos métodos getClientReceipt e getEstablishment, respectivamente.
Por outro lado, o código e descrição do erro são guardados em duas Strings, para serem tratadas no futuro. Essas strings são acessadas através dos métodos getCode e getDescriptionError, respectivamente.
-
@Override public void onTransactionAnswer(final MPSResult mpsResult) { runOnUiThread(new Runnable() { @Override public void run() { if (mpsResult.getStatus()== MPSResult.Status.SUCCESS) { // fazer o que desejar usando mpsResult.getClientReceipt() // e mpsResult.getEstablishmentReceipt() } else { // tratar o erro usando mpsResult.getCode() // e mpsResult.getDescriptionError() } } } } -
override fun onTransactionAnswer(mpsResult: MPSResult?) { super.onTransactionAnswer(mpsResult) runOnUiThread { if (mpsResult.getStatus()== MPSResult.Status.SUCCESS) { // fazer o que desejar usando mpsResult.getClientReceipt() // e mpsResult.getEstablishmentReceipt() } else { // tratar o erro usando mpsResult.getCode() // e mpsResult.getDescriptionError() } } }
Note que o jeito de lidar com erros é facil. Se a transação é negada por causa de um error ocorrido lendo o cartão, a lógica de negócio pode implementar um método “tente novamente”. Existem muitas possibilidades.
Cancelando um pagamento
O fluxo de cancelamento é muito similar ao de transação. onCancelAnswer será chamado quando o processo de cancelamento terminar.
Existem duas opções de cancelamento:
- Cancelar a ultima transação
- Cancelar qualquer transação
Cancelar a ultima transação
Para cancelar a ultima transação, é necessário criar uma instância de MPSTransaction e setar o tipo.
-
MPSTransaction transaction = new MPSTransaction(); transaction.setCurrency(MPSTransaction.CurrencyType.BRL); transaction.setTransactionMode(MPSTransaction.Transaction.CREDIT); -
val transaction = MPSTransaction() transaction?.currency = MPSTransaction.CurrencyType.BRL transaction?.transactionMode = MPSTransaction.TransactionMode.CREDIT
Cancelar qualquer transaction
Para cancelar qualquer transação, é necessário criar uma instância de MPSTransaction, setar o tipo, o identificador da transação, por exemplo DOC(CV), e o código de autorização. No exemplo abaixo, muxiPAY services irá buscar uma transação do tipo CREDIT, com o identificador de transação igual a 123456 e o código de autorização igual a 12345678.
-
MPSTransaction transaction = new MPSTransaction(); transaction.setCurrency(MPSTransaction.CurrencyType.BRL); transaction.setTransactionMode(MPSTransaction.TransactionMode.CREDIT); transaction.setCv("123456"); transaction.setAuth("12345678"); -
val transaction = MPSTransaction() transaction?.currency = MPSTransaction.CurrencyType.BRL transaction?.transactionMode = MPSTransaction.TransactionMode.CREDIT transaction?.cv = "123456" transaction?.auth = "12345678"
Então você deve chamar o método cancelTransaction, passando o objeto criado, transaction, como parâmetro. É recomendado executar essa chamada em outra thread, para evitar o travamento da Thread principal(UI Thread).
-
mpsManager.cancelTransaction(transaction); -
mpsManager?.cancelTransaction(transaction)
Código fonte
Além disso, o desenvolvedor pode consultar, se necessário, o código fonte de um exemplo que provemos no Github
Após realizar todos os testes e se sentir seguro, desinstale a versão de integração do muxiPAY services e instale nossa versão de produção aqui, onde esta versão necessita de um Pinpad. Para saber como parear o Pinpad com seu aparelho, verifique com o fabricante
TABELA DE ERROS
Erros
| Erros | |||
|---|---|---|---|
| Código | Descrição | Informações | Escopo |
| 001 | ERRO NA LEITURA DO CARTAO | Error reading card | PAYMENT/VOID |
| 002 | PRODUTO NAO ENCONTRADO | BIN card not contained in BIN range in initialization | PAYMENT/VOID |
| 004 | CARTAO COM CHIP MODO INVALIDO | Card with invalid EMV chip | PAYMENT/VOID |
| 005 | CARTAO COM CHIP INISIRA O CARTAO | Card with EMV chip but was tried to pass stripe | PAYMENT/VOID |
| 006 | TRANSACAO JA REALIZADA | Transaction with same value as above | PAYMENT/VOID |
| 007 | OPERAÇÃO CANCELADA PELO OPERADOR | Cancel button pressed by operator | PAYMENT/ VOID |
| 007 | TEMPO ESGOTADO | Timeout | PAYMENT/VOID |
| 008 | EXCEDE LIMITE POR TRANSACAO | Transaction limit exceeded per card | PAYMENT |
| 009 | TRANSACAO NAO AUTORIZADA PELO CARTAO | Unauthorized transaction by card | PAYMENT/VOID |
| 010 | From host Example: D ERRO CHAVE DADOS ATUALIZE CHAVE | Transaction denied by server | INITIALIZATION/ PAYMENT/ VOID |
| 010 | From host Example: TRANSACAO NEGADA COD:XX | Transaction denied by server | INITIALIZATION/ PAYMENT/ VOID |
| 011 | EXISTE PENDENTE | There is a pending transaction that prevents to deconfigure | DECONFIGURE |
| 012 | APLICACAO NAO INICIALIZADA | Application not initialized | PAYMENT/VOID |
| 013 | TRANSACAO COM CHIP NAO PERMITIDA PASSE O CARTAO | Card does not allow transaction with EMV chip | PAYMENT/VOID |
| 103 | NUMERO DE ESTABELECIMENTO AUSENTE | Empty establishment number | INITIALIZATION |
| 104 | NUMERO DE ESTABELECIMENTO TAMANHO INVALIDO | Establishment number with more than 15 digits | INITIALIZATION |
| 105 | IP AUSENTE | Both IP address and URL are empty. Being that one of the two must be filled out | INITIALIZATION |
| 106 | IP MAL FORMATADO | Establish number with more than 15 digits | INITIALIZATION |
| 106 | CAMPO IP INCOMPLETO | IP address with more or less than 4 blocks | INITIALIZATION |
| 106 | CAMPO IP NAO NUMERICO | IP address with at least one of the non-numeric blocks | INITIALIZATION |
| 106 | CAMPO IP MAIOR QUE O PERMITIDO | IP address with at least one numeric block but greater than 255 | INITIALIZATION |
| 106 | CAMPO IP NEGATIVO | IP address with at least one of the numeric blocks but negative | INITIALIZATION |
| 107 | PORTA AUSENTE | Empty port | INITIALIZATION |
| 108 | PORTA NAO NUMERICA | Non-numeric port | INITIALIZATION |
| 108 | PORTA TAMANHO INVALIDO | Port with more than 6 digits | INTIALIZATION |
| 109 | TIPO PAGAMENTO AUSENTE | Empty payment method | PAYMENT/VOID |
| 110 | TIPO PAGAMENTO DESCONHECIDO | Invalid payment method, that is, it does not assume any of the 3 valid values described below. ‘CREDITO’ - Credit transaction ‘DEBITO’ - Debit transaction ‘VOUCHER’ - Voucher transaction | PAYMENT/VOID |
| 112 | VALOR AUSENTE | Transaction amount empty | PAYMENT |
| 113 | VALOR NAO NUMERICO | Non-numeric transaction amount | PAYMENT |
| 113 | VALOR MENOR OU IGUAL A ZERO | Transaction amount less than or equal to zero | PAYMENT |
| 114 | LIMITE DIARIO DE 9.999.999,99 ATINGIDO | Daily limit of 9.999.999,99 | PAYMENT |
| 115 | TRANSACAO NAO ENCONTRADA | Transaction not found in batch | VOID |
| 116 | 4 ULTIMOS DIGITOS AUSENTE | Last 4 digits of card blank | VOID |
| 117 | 4 ULTIMOS DIGITOS TAMANHO INVALIDO | Reported more or less than the last 4 digits of the card | VOID |
| 117 | 4 ULTIMOS DIGITOS NAO NUMERICO | Last 4 digits of the non-numeric card | VOID |
| 117 | INFORMACAO INVALIDA | Last 4 digits of card do not match | VOID |
| 118 | DATA AUSENTE | Empty expiration date | PAYMENT/VOID |
| 119 | DATA INVALIDA | Expiration data month less than 1 or greater than 12 | PAYMENT/VOID |
| 119 | DATA NAO NUMERICA | Expiration date non-numeric | PAYMENT/VOID |
| 120 | CARTAO EXPIRADO | Card expired, that is, expiration date prior to current date | PAYMENT/VOID |
| 121 | CVV AUSENTE | Empty security code (CVV) | PAYMENT/VOID |
| 122 | CODIGO INVALIDO | Security code (CVV) with less than 3 digits | PAYMENT/VOID |
| 122 | CVV COM MAIS DE 4 DIGITOS | Security code (CVV) with more than 4 digits | PAYMENT/VOID |
| 122 | CVV NAO NUMERICO | Non-numeric security code (CVV) | PAYMENT/VOID |
| 123 | PARCELAS AUSENTE | Number of parcels empty | INSTALLMENT PAYMENT |
| 124 | PARCELAS NAO NUMERICO | Number of parcels non-numeric | INSTALLMENT PAYMENT |
| 124 | NUMERO DE PARCELAS INVALIDO | Number of parcels outside the maximum and minimum allowed | INSTALLMENT PAYMENT |
| 125 | VALOR DA PARCELA INVALIDO | Values of parcels outside the maximum and minimum allowed | INSTALLMENT PAYMENT |
| 126 | JUROS AUSENTE | Empty interest indicator | INSTALLMENT PAYMENT |
| 127 | JUROS INVALIDO | Invalid interest indicator, that is, it does not assume any of the 2 valid values described below. 0 - Without interest (installment shop) 1 - With interest (administrative installment) | INSTALLMENT PAYMENT |
| 129 | TIPO PAGAMENTO AUSENTE | Empty payment type | PAYMENT |
| 130 | TIPO PAGAMENTO INVALIDO | Invalid payment type, that is, it does not assume any of the 2 valid values described below. ‘VISTA’ - In cash ‘PARCELADO’ - Transaction with 2 or more installments | PAYMENT |
| 133 | NUMERO DE AUTORIZAÇÃO AUSENTE | Empty authorization number | VOID |
| 134 | NUMERO DE AUTORIZAÇÃO MAIOR QUE O ESPERADO | Authorization number with more than 6 digits | VOID |
| 135 | INFORMACAO CVV AUSENTE | Empty security code type | PAYMENT/VOID |
| 136 | INFORMACAO CVV DESCONHECIDO | Invalid security code type, that is, it does not assume any of the 2 valid values described below. ‘A’ - Absent ‘I’ - Ineligible | PAYMENT/VOID |
| 137 | NUMERO DO CARTAO AUSENTE | Empty typed card number (PAN) | PAYMENT/VOID (TYPED) |
| 144 | CV MAIOR QUE 12 | Transaction reference number (DOC CV) with more than 12 digits | VOID |
| 144 | CV NAO NUMERICO | Non-numeric transaction reference number (DOC CV) | VOID |
| 145 | CAMPO IGNORE AUSENTE | Missing ignore field | DECONFIGURE |
| 146 | CAMPO IGNORE INVALIDO | Field ignore invalid, that is, assume none of the 2 valid values described below. ‘False’- Prevents to deconfigure if there is a pending transaction ‘True’ - Allows you to deconfigure whether there is pending | DECONFIGURE |
| 147 | VALOR ABAIXO DO LIMITE | Transaction amount below the limit required for installment payment | INSTALLMENT PAYMENT |
| 147 | VALOR ACIMA DO LIMITE | Transaction amount above the limit required for installment payment | INSTALLMENT PAYMENT |
| 197 | ERRO DESCONHECIDO | Default error message | INITIALIZATION/ PAYMENT/ VOID |
| 198 | FUNCAO AUSENTE | Empty function | INITIALIZATION/ PAYMENT/ VOID |
| 199 | FUNCAO NAO RECONHECIDA | Invalid function, that is, it does not assume any of the 7 valid values described below. ‘init’ - Initialization ‘tcom’ - Communication test ‘canc’ - Void ‘trans’ - Transaction ‘prea’ - Pre-authorization ‘dcfg’ - Deconfigure ‘vers’ - POSWEB and TEF versions | INITIALIZATION/ PAYMENT/ VOID |
| 200 | Tempo esgotado | Timeout | INITIALIZATION |
| 200 | Erro interno SW | Internal Error | INITIALIZATION |
| 300 | From host Example:TEMPO ESGOTADO E3206-823D LIGUE HELPDESK | Connection problem with server | INITIALIZATION/ PAYMENT/ VOID |
| 400 | CARTAO INVALIDO CODIGO 01 | Error reading EMV chip | PAYMENT/ VOID |
| 400 | CARTAO INVALIDO CODIGO 04 | Card number (PAN) with more than 11 digits | PAYMENT/ VOID |
| 400 | CARTAO INVALIDO CODIGO 11 | Card number (PAN) other than PAN in track | PAYMENT/ VOID |
| 400 | CARTAO INVALIDO CODIGO 20 | Easy-entry card not supported | PAYMENT/ VOID |
| 400 | CARTAO INVALIDO CODIGO 21 | Visa Cash Card TIBv3 not supported | PAYMENT/ VOID |
| 400 | CARTAO INVALIDO CODIGO 22 | Visa Cash Card TIBv1 not supported | PAYMENT/ VOID |
| 400 | CARTAO INVALIDO CODIGO 23 | Empty track1 and track2 of the card | PAYMENT/ VOID |
| 500 | TENTE DENOVO-EC COD:R2.4 | Error on TagsEMV database | PAYMENT/ VOID |
| 600 | TAMANHO INVALIDO | One or more fields in intialization with wrong size | INITIALIZATION |
| 600 | FORMATO INVALIDO | One or more fields in initialization with wrong format | INTIALIZATION |
| 700 | OPERACAO NAO PERMITIDA | Typed transaction not allowed | PAYMENT |
| 700 | TRANSACAO NAO ACEITA | Void of a previously voided transaction or of a void not allowed | VOID |
| 700 | TRANSACAO NAO ENCONTRADA | Transaction to be voided not found | VOID |
| 700 | VOID NAO PERMITIDO | Void not found | VOID |
Introdução
Posso consultar as transações que eu já fiz?
Claro! Para isso você precisa enviar um requisição HTTP/HTTPS usando o método GET. Veja nos subitens a seguir o exemplo de cada uma dessas transações.
Recuperando transações
GET /v1/financial_transactions
Para recuperar as transações realizadas no ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint financial_transactions, seguem as opções para filtros via urlString:
Filtros para requisição:
| Nome | Tipo | Operadores | Descrição |
|---|---|---|---|
| slug | uuid | EQ | Identificador único do registro na Muxi |
| dtInsert | Data/Hora | EQ, BETWEEN, GOE, LOE | Data/hora na qual o registro foi incluído no banco de dados |
| slugAuthorizer | uuid | EQ | Identificador do autorizador (ou adquirente) para o qual a transação foi enviada |
| slugTerminal | uuid | EQ | Identificador do terminal a partir do qual a transação foi gerada |
| slugMerchant | uuid | EQ | Identificador do estabelecimento comercial no qual o terminal está alocado |
| slugCustomer | uuid | EQ | Identificador do cliente da Muxi (sub-adquirente) proprietário da transação |
| financialTransactionType | Texto | EQ | Tipo de operação que originou a transação, valores possíveis: POS, MOTO, CRYPTO |
| transactionStatus | Texto | EQ, IN | Situação atual do processamento da transação, valores possíveis: CANCELED, EXPIRED, PENDING, DENIED, PRE_AUTHORIZED, AUTHORIZED |
| muid | uuid | EQ | Identificador único da transação gerado pelo terminal |
| productType | Texto | EQ, IN | Nome do produto da transação, valores possíveis: DEBIT, CREDIT, VOUCHER, PRIVATE_LABEL |
Após a chamada ser concluída com sucesso retornaremos uma mensagem com o código HTTP 200, contendo o seguinte corpo:
Resposta:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| slug | uuid | Sim | Identificador único do registro na Muxi |
| active | Booleano | Sim | Informa se o registro está ativo para os processos da Muxi |
| dtInsert | Data/Hora | Sim | Data/hora na qual o registro foi incluído no banco de dados |
| dtUpdate | Data/Hora | Sim | Data/hora da última atualização do registro no banco de dados |
| slugAuthorizer | uuid | Sim | Identificador do autorizador (ou adquirente) para o qual a transação foi enviada |
| slugTerminal | uuid | Sim | Identificador do terminal a partir do qual a transação foi gerada |
| slugMerchant | uuid | Sim | Identificador do estabelecimento comercial no qual o terminal está alocado |
| slugCustomer | uuid | Sim | Identificador do cliente da Muxi (sub-adquirente) proprietário da transação |
| financialTransactionType | Texto | Não | Tipo de operação que originou a transação, valores possíveis: POS, MOTO, CRYPTO |
| authorizerMerchantId | Texto (35) | Sim | Identificador no autorizador (ou adquirente) do estabelecimento comercial que realizou a transação |
| muid | uuid | Sim | Identificador único da transação gerado pelo terminal |
| currency | Texto (3) | Sim | Unidade monetária na qual a transação foi executada, ex.: BRL, USD, BTC |
| totalAmount | Decimal(10.2) | Sim | Valor gerado pela transação até o momento, calculado com base nos ciclos executados dentro de uma mesma transação |
| application | Texto (20) | Não | Nome da aplicação a partir da qual a transação foi gerada quando informado pelo terminal |
| transactionStatus | Texto | Sim | Situação atual do processamento da transação, valores possíveis: CANCELED, EXPIRED, PENDING, DENIED, PRE_AUTHORIZED, AUTHORIZED |
| productType | Texto | Sim | Nome do produto da transação, valores possíveis: DEBIT, CREDIT, VOUCHER, PRIVATE_LABEL |
| cardBin | Texto | Sim | Números do cartão utilizado na transação de acordo com a regra do autorizador (adquirente), quando informado pelo mesmo |
| firstDigits | Texto | Não | Seis primeiros dígitos do cartão utilizado na transação quando informado pelo autorizador (adquirente) |
| lastDigits | Texto | Não | Quatro últimos dígitos do cartão utilizado na transação quando informado pelo autorizador (adquirente) |
| productOrIssuer | Texto(32) | Não | Nome do produto ou do emissor do cartão quando informado pelo autorizador (adquirente) |
| rrn | Texto(32) | Não | Identificador da transação no autorizador (adquirente) |
| slugUser | uuid | Não | Identificador do usuário logado na aplicação no momento da transação, válido para transações do tipo MOTO |
Recuperando ciclos de transações
GET /v1/financial_cycles
Para recuperar os ciclos de transações realizadas no ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint financial_cycles, seguido do identificador do ciclo que deseja consultar. Seguem as opções para filtros via urlString:
Filtros para requisição:
| Nome | Tipo | Operadores | Descrição |
|---|---|---|---|
| processingDate | Data/Hora | EQ, BETWEEN, GOE, LOE, LT, GT | Data/Hora a qual o ciclo de transação foi processado pelo terminal |
| financialTransaction.slug | uuid | EQ | Identificador único do registro de financial transaction na Muxi |
| financialTransaction.slugCustomer | uuid | EQ | Identificador do cliente da Muxi (sub-adquirente) proprietário da transação |
| financialTransaction.slugMerchant | uuid | EQ | Identificador do estabelecimento comercial no qual o terminal está alocado |
| financialTransaction.slugTerminal | uuid | EQ | Identificador do terminal a partir do qual a transação foi gerada |
| financialTransaction.financialTransactionType | Texto | EQ | Tipo de operação que originou a transação, valores possíveis: POS, MOTO, CRYPTO |
| financialTransaction.muid | uuid | EQ | Identificador único da transação gerado pelo terminal |
| dtInsert | Data/Hora | EQ, GOE, LOE, GT, LT | Data/hora na qual o registro foi incluído no banco de dados |
| cycleType | Texto | EQ, IN, NE | Descrição dada a operação executada durante esse ciclo, valores possíveis: AUTHORIZATION, VOID, REFUND, PRE_AUTHORIZATION, PRE_AUTHORIZATION_ADJUSTMENT, PRE_AUTHORIZATION_COMPLETION, REVERSAL |
| cycleStatus | Texto | EQ, IN | Situação atual na qual se encontra a operação realizada pelo ciclo da transação, valores possíveis: ACCEPTED, PENDING, REJECTED, REVERSED |
| deviceStan | Texto(30) | EQ | Número sequêncial gerado pelo terminal para o ciclo da transação |
| gatewayStan | Texto(30) | EQ | Número sequêncial gerado pelo gateway da Muxi para o ciclo da transação |
| originalStan | Texto(30) | EQ | Número sequêncial gerado pelo gateway da Muxi para o ciclo da transação referenciando o ciclo anterior a esse caso ambos façam parte de um mesmo Financial Cycle |
| responseCode | Texto | EQ | Descrição do código de resposta retornado pelo autorizador (adquirente) para o ciclo da transação, *valores possíveis: ACCEPTED, REJECTED, UNABLE_TO_PERFORM_REQUEST_TRY_AGAIN, KEYSYNC_ERROR, INVALID_MESSAGE, SERVER_ERROR, TERMINAL_MANAGEMENT_ERROR, REQUEST_DOESNT_MATCH_DATABASE, MERCHANT_NOT_FOUND, INITIALIZATION_REQUIRED, UNAVAILABLE_INITIALIZATION_DATA, INACTIVE_RECORD, NOT_DCC_ELIGIBLE, TRANSACTION_NOT_ENABLED, TERMINAL_DISABLED, API_INTERNAL_SERVER_ERROR, AUTHORIZER_COMMUNICATION_FAILED, AUTHORIZER_CONNECTION_FAILED, AUTHORIZER_MERCHANT_NOT_FOUND, CUSTOMER_NOT_FOUND, OFFLINE_ACCEPTED, OFFLINE_REJECTED, OFFLINE_ACCEPTED_ONLINE_FAIL, OFFLINE_REJECTED_ONLINE_FAIL, UNKNOWN |
| trackingNumber | Texto(48) | EQ | Número de rastreio atribuído pelo autorizador (adquirente) para a operação realizada no ciclo de transação |
| slug | uuid | EQ | Identificador único do registro de financial cycle na Muxi |
| amount | Decimal(10.2) | EQ, GOE, LOE, LT, GT | Valor atribuído ao ciclo de transação pela oepração |
| financialBatch.slug | uuid | EQ | Identificador único do registro de financial transaction (lote de transações) na Muxi |
Após a chamada ser concluída com sucesso retornaremos uma mensagem com o código HTTP 200, contendo o seguinte corpo:
Resposta:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| slug | uuid | Sim | Identificador único do registro na Muxi |
| active | Booleano | Sim | Informa se o registro está ativo para os processos da Muxi |
| dtInsert | Data/Hora | Sim | Data/hora na qual o registro foi incluído no banco de dados |
| dtUpdate | Data/Hora | Sim | Data/hora da última atualização do registro no banco de dados |
| processingDate | Data/Hora | Sim | Data/Hora a qual o ciclo de transação foi processado pelo terminal |
| cycleType | Texto | Sim | Descrição dada a operação executada durante esse ciclo, valores possíveis: AUTHORIZATION, VOID, REFUND, PRE_AUTHORIZATION, PRE_AUTHORIZATION_ADJUSTMENT, PRE_AUTHORIZATION_COMPLETION, REVERSAL |
| cycleStatus | Texto | Sim | Situação atual na qual se encontra a operação realizada pelo ciclo da transação, valores possíveis: ACCEPTED, PENDING, REJECTED, REVERSED |
| deviceStan | Texto(30) | Sim | Número sequêncial gerado pelo terminal para o ciclo da transação |
| gatewayStan | Texto(30) | Não | Número sequêncial gerado pelo gateway da Muxi para o ciclo da transação |
| originalStan | Texto(30) | Não | Número sequêncial gerado pelo gateway da Muxi para o ciclo da transação referenciando o ciclo anterior a esse caso ambos façam parte de um mesmo Financial Cycle |
| responseCode | Texto | Sim | Descrição do código de resposta retornado pelo autorizador (adquirente) para o ciclo da transação, *valores possíveis: ACCEPTED, REJECTED, UNABLE_TO_PERFORM_REQUEST_TRY_AGAIN, KEYSYNC_ERROR, INVALID_MESSAGE, SERVER_ERROR, TERMINAL_MANAGEMENT_ERROR, REQUEST_DOESNT_MATCH_DATABASE, MERCHANT_NOT_FOUND, INITIALIZATION_REQUIRED, UNAVAILABLE_INITIALIZATION_DATA, INACTIVE_RECORD, NOT_DCC_ELIGIBLE, TRANSACTION_NOT_ENABLED, TERMINAL_DISABLED, API_INTERNAL_SERVER_ERROR, AUTHORIZER_COMMUNICATION_FAILED, AUTHORIZER_CONNECTION_FAILED, AUTHORIZER_MERCHANT_NOT_FOUND, CUSTOMER_NOT_FOUND, OFFLINE_ACCEPTED, OFFLINE_REJECTED, OFFLINE_ACCEPTED_ONLINE_FAIL, OFFLINE_REJECTED_ONLINE_FAIL, UNKNOWN |
| gatewayVersion | Texto(6) | Não | Versão da aplicação de gateway que realizou o processamento do ciclo da transação |
| amount | Decimal(10.2) | Não | Valor financeiro atribuído ao ciclo de transação pela operação |
| interest | Decimal(10.2) | Não | Valor percentual da taxa de juros atribuído ao ciclo de transação pela operação |
| authorizationCode | Texto(6) | Não | Código de autorização para o ciclo da transação informado pelo autorizador (adquirente) |
| installments | Texto(3) | Não | Quantidade de parcelas atribuída ao ciclo de transação pela operação |
| installmentType | Texto | Não | Domínio do responsável pelas parcela atribuída ao ciclo de transação pela operação, valores possíveis: MERCHANT, AUTHORIZER |
| rrn | Texto(32) | Não | Identificador único do atribuído ao ciclo de transação informado pelo autorizador (adquirente) |
| tax | Decimal(10.2) | Não | Valor financeiro das taxas (impostos) atribuídos ao ciclo financeiro, quando informado pelo terminal |
| connectionMode | Texto | Não | Tipo de conexão aberta pelo terminal para envio do ciclo financeiro quando informado pelo mesmo, valores possíveis: NOT_SPECIFIED, DIAL_PPP DIAL_SDLC, GPRS, GSM, WIFI, ETHERNET, X28, RADIO, CDMA |
| connectionDetail | Texto(100) | Não | Detalhes da conexão aberta para envio do ciclo financeiro, quando informado pelo terminal |
| financialTransaction.slug | uuid | Sim | Identificador único do registro na Muxi |
| financialTransaction.active | Booleano | Sim | Informa se o registro está ativo para os processos da Muxi |
| financialTransaction.dtInsert | Data/Hora | Sim | Data/hora na qual o registro foi incluído no banco de dados |
| financialTransaction.dtUpdate | Data/Hora | Sim | Data/hora da última atualização do registro no banco de dados |
| financialTransaction.slugAuthorizer | uuid | Sim | Identificador do autorizador (ou adquirente) para o qual a transação foi enviada |
| financialTransaction.slugTerminal | uuid | Sim | Identificador do terminal a partir do qual a transação foi gerada |
| financialTransaction.slugMerchant | uuid | Sim | Identificador do estabelecimento comercial no qual o terminal está alocado |
| financialTransaction.slugCustomer | uuid | Sim | Identificador do cliente da Muxi (sub-adquirente) proprietário da transação |
| financialTransaction.financialTransactionType | Texto | Não | Tipo de operação que originou a transação, valores possíveis: POS, MOTO, CRYPTO |
| financialTransaction.authorizerMerchantId | Texto (35) | Sim | Identificador no autorizador (ou adquirente) do estabelecimento comercial que realizou a transação |
| financialTransaction.muid | uuid | Sim | Identificador único da transação gerado pelo terminal |
| financialTransaction.currency | Texto (3) | Sim | Unidade monetária na qual a transação foi executada, ex.: BRL, USD, BTC |
| financialTransaction.totalAmount | Decimal(10.2) | Sim | Valor gerado pela transação até o momento, calculado com base nos ciclos executados dentro de uma mesma transação |
| financialTransaction.application | Texto (20) | Não | Nome da aplicação a partir da qual a transação foi gerada quando informado pelo terminal |
| financialTransaction.transactionStatus | Texto | Sim | Situação atual do processamento da transação, valores possíveis: CANCELED, EXPIRED, PENDING, DENIED, PRE_AUTHORIZED, AUTHORIZED |
| financialTransaction.productType | Texto | Sim | Nome do produto da transação, valores possíveis: DEBIT, CREDIT, VOUCHER, PRIVATE_LABEL |
| financialTransaction.cardBin | Texto | Sim | Números do cartão utilizado na transação de acordo com a regra do autorizador (adquirente), quando informado pelo mesmo |
| financialTransaction.firstDigits | Texto | Não | Seis primeiros dígitos do cartão utilizado na transação quando informado pelo autorizador (adquirente) |
| financialTransaction.lastDigits | Texto | Não | Quatro últimos dígitos do cartão utilizado na transação quando informado pelo autorizador (adquirente) |
| financialTransaction.productOrIssuer | Texto(32) | Não | Nome do produto ou do emissor do cartão quando informado pelo autorizador (adquirente) |
| financialTransaction.rrn | Texto(32) | Não | Identificador da transação no autorizador (adquirente) |
| financialTransaction.slugUser | uuid | Não | Identificador do usuário logado na aplicação no momento da transação, válido para transações do tipo MOTO |
Recuperando recorrência
GET /v1/recurring_billings
Para recuperar as recorrências realizadas no ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint recurring_billings, seguido do identificador da recorrência. Seguem as opções para filtros via urlString:
Filtros para requisição:
| Nome | Tipo | Operadores | Descrição |
|---|---|---|---|
| startDate | Data/Hora | EQ, GOE, LOE | Data/Hora do início da recorrência |
| endDate | Data/Hora | EQ, GOE, LOE | Data/Hora do fim da recorrência |
| slugCustomer | uuid | EQ | Identificador do cliente da Muxi (subadquirente) proprietário da transação |
| slugMerchant | uuid | EQ | Identificador do estabelecimento comercial no qual o terminal está alocado |
| slugTerminal | uuid | EQ | Identificador do terminal a partir do qual a transação foi gerada |
| slugSubscriber | uuid | EQ | Identificador do portador do cartão |
| status | Texto | EQ, IN | Situação atual do processamento da transação, valores possíveis: ACTIVE, CANCELLED, SUSPENDED, COMPLETED |
| frequency | Enum | EQ, IN | Frequência da recorrência, valores possíveis: WEEKLY, MONTHLY, YEARLY |
| slug | uuid | EQ | Identificador único do registro na Muxi |
| name | Texto | EQ, LIKE | Nome |
| authorizerRecurringBillingId | Texto (35) | EQ, LIKE | Identificador da recorrência |
| amount | Number | EQ, GOE, LOE, LT, GT | Valor da transação |
Após a chamada ser concluída com sucesso retornaremos uma mensagem com o código HTTP 200, contendo o seguinte corpo:
Resposta:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| startDate | Data/Hora | Sim | Data/Hora do início da recorrência |
| endDate | Data/Hora | Sim | Data/Hora do fim da recorrência |
| slugCustomer | uuid | Sim | Identificador do cliente da Muxi (sub-adquirente) proprietário da transação |
| slugMerchant | uuid | Sim | Identificador do estabelecimento comercial no qual o terminal está alocado |
| slugTerminal | uuid | Sim | Identificador do terminal a partir do qual a transação foi gerada |
| slugSubscriber | uuid | EQ | Identificador do portador do cartão |
| slugUser | uuid | Não | Identificador do usuário logado na aplicação no momento da transação, válido para transações do tipo MOTO |
| status | Texto | Sim | Situação atual do processamento da transação, valores possíveis: ACTIVE, CANCELLED, SUSPENDED, COMPLETED |
| frequency | Texto | Sim | Frequência da recorrência valores possíveis: WEEKLY, MONTHLY, YEARLY |
| name | Texto | Não | Nome |
| authorizerRecurringBillingId | Texto (35) | Sim | Identificador da recorrência |
| amount | Decimal(10.2) | Sim | Valor da transação |
| slugCard | uuid | EQ | Identificador do cartão |
| slugAuthorizer | uuid | Sim | Identificador do autorizador (ou adquirente) para o qual a transação foi enviada |
| frequencyParameter | Number | Sim | Número referente ao dia da semana da cobrança. Ex.: domingo = 1, segunda = 2 etc |
Introdução
Posso registar as transações que já foi processada?
Sim! Para isso você precisa enviar um requisição HTTP/HTTPS usando o método POST. Veja nos subitens a seguir o exemplo de cada uma dessas transações. Fazendo isso você vai gerar somente o registro de uma transação que já foi feita e assim esta poderá ser incluída nos fluxos do nosso produto.
Registrando transações
POST /v1/financial_legs
Para enviar as transações realizadas em outro ecosistema para o ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint financial_legs:
Requisição:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| amount | Decimal | Sim | Valor da transação |
| application | Texto | Sim | Identificador da aplicação que gerou a transação |
| applicationVersion | Texto | Sim | Versão da aplicação pela qual a transação foi enviada |
| authorizationCode | Texto | Sim | Código de autorização da transação |
| connectionDetail | Texto | Sim | Detalhes da conexão da transação |
| connectionMode | Texto | Sim | Modo de conexão, valores possíveis: NOT_SPECIFIED, DIAL_PPP, DIAL_SDLC, GPRS, GSM, WIFI, ETHERNET, X28, RADIO, CDMA |
| currency | Texto | Sim | Tipo de moeda, valores possíveis: BRL, USD |
| cycleStatus | Texto | Sim | Situação da transação, valores possíveis: ACCEPTED, PENDING, REJECTED, REVERSED |
| cycleType | Texto | Sim | Tipo de transação, valores possíveis: PRE_AUTHORIZATION, PRE_AUTHORIZATION_ADJUSTMENT, AUTHORIZATION, PRE_AUTHORIZATION_COMPLETION, REVERSAL, VOID, REFUND |
| deviceStan | Texto | Sim | Número identificador da transação gerado pelo terminal que a gerou |
| firstDigits | Texto | Não | BIN ou Seis primeiros números do cartão |
| gatewayStan | Texto | Sim | Número identificador da transação gerado pelo gateway que a processou |
| gatewayVersion | Texto | Sim | Versão do gateway que processou a transação |
| installments | Inteiro | Sim | Número de parcelas da transação |
| installmentType | Texto | Sim | Tipo de parcelamento, valores possíveis: MERCHANT, AUTHORIZER |
| lastDigits | Texto | Não | Últimos 4 dígitos do cartão |
| muid | Texto | Sim | Idenficador único da transação usado para agrupar vários ciclos de uma mesma interação financeira |
| originalStan | Texto | Sim | Número identificador da transação original que pode ter originado outras interações |
| processingDate | Data/Hora | Sim | Data em que a transação foi processada |
| productType | Texto | Sim | Tipo de produto da transação, valores possíveis: DEBIT, CREDIT, VOUCHER, PRIVATE_LABEL |
| responseCode | Texto | Sim | Resposta da transação, valores possíveis: ACCEPTED, REJECTED |
| routeFrom | Texto | Sim | De onde a transação partiu, valores possíveis: TERMINAL, GATEWAY, AUTHORIZER |
| routeTo | Texto | Sim | Para onde a transação foi enviada, valores possíveis: TERMINAL, GATEWAY, AUTHORIZER |
| rrn | Texto | Sim | RRN da transação atribuído pelo processador da mesma* |
| slugAuthorizer | Texto | Sim | Identificador do autorizador que realizou o processamento da transação |
| slugTerminal | Texto | Sim | Identificador do terminal que realizou o processamento da transação |
| trackingNumber | Texto | Sim | Número de rastreio da transação gerado pelo gateway que a processou |
| transmissionDate | Data/Hora | Sim | Data de transmissão da transação |
| financialTransactionType | Texto | Sim | Canal utilizado na transação, valores possíveis: POS, INTEGRATION, PDV, VIRTUAL_TERMINAL |
| entryMode | Texto | Sim | Tipo de entrada da transação, valores possíveis: MANUAL_KEY_ENTRY, MAGNETIC_STRIPE, CHIP_EMV, CONTACTLESS |
| method | Texto | Sim | Tipo da transação, valores possíveis: CP, CNP |
| brand | Texto | Sim | Bandeira da transação, valores possíveis: MASTERCARD, VISA, ELO, AMEX, HIPERCARD, CABAL, DINERS, DISCOVER, JCB |
Após a chamada ser concluída com sucesso retornaremos uma mensagem com o código HTTP 201, contendo o seguinte corpo:
Resposta:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| amount | Decimal | Sim | Valor da transação |
| application | Texto | Sim | Identificador da aplicação que gerou a transação |
| applicationVersion | Texto | Sim | Versão da aplicação pela qual a transação foi enviada |
| authorizationCode | Texto | Sim | Código de autorização da transação |
| connectionDetail | Texto | Sim | Detalhes da conexão da transação |
| connectionMode | Texto | Sim | Modo de conexão, valores possíveis: NOT_SPECIFIED, DIAL_PPP, DIAL_SDLC, GPRS, GSM, WIFI, ETHERNET, X28, RADIO, CDMA |
| currency | Texto | Sim | Tipo de moeda, valores possíveis: BRL, USD |
| cycleStatus | Texto | Sim | Situação da transação, valores possíveis: ACCEPTED, PENDING, REJECTED, REVERSED |
| cycleType | Texto | Sim | Tipo de transação, valores possíveis: PRE_AUTHORIZATION, PRE_AUTHORIZATION_ADJUSTMENT, AUTHORIZATION, PRE_AUTHORIZATION_COMPLETION, REVERSAL, VOID, REFUND |
| deviceStan | Texto | Sim | Número identificador da transação gerado pelo terminal que a gerou |
| firstDigits | Texto | Não | BIN ou Seis primeiros números do cartão |
| gatewayStan | Texto | Sim | Número identificador da transação gerado pelo gateway que a processou |
| gatewayVersion | Texto | Sim | Versão do gateway que processou a transação |
| installments | Inteiro | Sim | Número de parcelas da transação |
| installmentType | Texto | Sim | Tipo de parcelamento, valores possíveis: MERCHANT, AUTHORIZER |
| lastDigits | Texto | Não | Últimos 4 dígitos do cartão |
| muid | Texto | Sim | Idenficador único da transação usado para agrupar vários ciclos de uma mesma interação financeira |
| originalStan | Texto | Sim | Número identificador da transação original que pode ter originado outras interações |
| processingDate | Data/Hora | Sim | Data em que a transação foi processada |
| productType | Texto | Sim | Tipo de produto da transação, valores possíveis: DEBIT, CREDIT, VOUCHER, PRIVATE_LABEL |
| responseCode | Texto | Sim | Resposta da transação, valores possíveis: ACCEPTED, REJECTED |
| routeFrom | Texto | Sim | De onde a transação partiu, valores possíveis: TERMINAL, GATEWAY, AUTHORIZER |
| routeTo | Texto | Sim | Para onde a transação foi enviada, valores possíveis: TERMINAL, GATEWAY, AUTHORIZER |
| rrn | Texto | Sim | RRN da transação atribuído pelo processador da mesma* |
| slugAuthorizer | Texto | Sim | Identificador do autorizador que realizou o processamento da transação |
| slugTerminal | Texto | Sim | Identificador do terminal que realizou o processamento da transação |
| trackingNumber | Texto | Sim | Número de rastreio da transação gerado pelo gateway que a processou |
| transmissionDate | Data/Hora | Sim | Data de transmissão da transação |
| financialTransactionType | Texto | Sim | Canal utilizado na transação, valores possíveis: POS, INTEGRATION, PDV, VIRTUAL_TERMINAL |
| entryMode | Texto | Sim | Tipo de entrada da transação, valores possíveis: MANUAL_KEY_ENTRY, MAGNETIC_STRIPE, CHIP_EMV, CONTACTLESS |
| method | Texto | Sim | Tipo da transação, valores possíveis: CP, CNP |
| brand | Texto | Sim | Bandeira da transação, valores possíveis: MASTERCARD, VISA, ELO, AMEX, HIPERCARD, CABAL, DINERS, DISCOVER, JCB |
Introdução
Como incluir novos estabelecimentos comerciais para operar no muxiPAY?
Para incluir novos estabelecimentos comerciais visando a operação no muxiPAY você precisa enviar um requisição HTTP/HTTPS usando o método POST. De acordo com o seu tipo de operação podem ser requisitados ou não algumas informações.
Incluindo novos Ecs
POST /v1/onboarding
Para enviar novos estabelecimentos comerciais ao ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint /v1/onboarding, conforme o dicionário de dados abaixo:
Requisição:
Estabelecimento
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | Texto | Sim | Nome fantasia |
| documentId | Texto | Sim | CPF/CNPJ |
| corporateName | Texto | Sim | Razão Social |
| Sim | Email para contato com o estabelecimento comercial | ||
| address | Objeto Endereço | Sim | Endereço do estabelecimento comercial |
| contacts | Lista de objetos Contato | Sim | Lista com os contatos do estabelimento comercial |
| language | Texto | Não | Idioma padrão. Ex.: pt_BR |
| timezone | Texto | Não | Fuso horário padrão. Ex.: -03:00 |
| slugSalesAgent | uuid | Não | Identificador do Representante Comercial / Agente de Vendas |
| category | Objeto Categoria | Não | Código MCC e CNAE para classificação do tipo de estabelecimento |
| legalNature | Objeto Natureza Jurídica | Não | Código de classificação da Natureza Jurídica do tipo do estabelecimento |
| mainOffice | Objeto Estabelecimento | Não | Estabelecimento Matriz |
| merchantBankAccount | Objeto Dados Bancários | Não | Dados bancários para liquidação do estabelecimento |
| authorizerMerchants | Lista de objetos de Integração com Autorizadores | Sim | Dados de integração com autorizadores |
| merchantPrice | Objeto Tabela de taxas do EC | Não | Dados de |
| expectedBilling | Texto | Não | Valor mensal esperado para faturamento de transações do estabelecimento |
| anticipationRiskFactor | Decimal(10, 2) | Não | Valor percentual (0 à 100) para calcular o valor que pode ser antecipado pelo EC |
| legalPerson | Texto | Sim | Natureza do estabelecimento comercial. Opções: JURIDICAL ou NATURAL |
| openingDate | Texto | Não | Data de abertura do estabelecimento comercial |
| municipalRegistration | Texto | Não | Inscrição municipal |
| stateSubcription | Texto | Não | Inscrição estadual |
| openingDays | Texto | Sim | Dias de funcionamento do estabelecimento. Formato do campo é uma String de 7 caracteres, sendo cada character ‘0’ ou ‘1’ referenciando um dia da semana. Ex.: “0111110” (Significa que o estabelecimento funciona de segunda a sexta, exceto sábado e domingo) |
| openingHour | Texto | Sim | Horário de abertura do estabelecimento. Ex.: “09:00” |
| closingHour | Texto | Sim | Horário de fechamento do estabelecimento. Ex.: “18:00” |
| slugInitializationParameters | Texto | Não | uuid serial de parâmetros de inicialização |
| areaCode | Texto | Não | Código de área do telefone |
| number | Texto | Não | Número telefônico |
| slugInitializationParameters | Texto | Não | Inscrição estadual |
Contato
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | Texto | Sim | Nome do contato |
| jobPosition | Texto | Não | Descrição do cargo |
| documentId | Texto | Não | CPF |
| Sim | Email do contato | ||
| countryCode | Texto | Sim | Código do país do telefone do contato |
| areaCode | Texto | Sim | Código de área do telefone do contato |
| number | Texto | Sim | Número do telefone |
| phoneType | Texto | Sim | Tipo do telefone. Opções: C (celular) ou P (fixo) |
| address | Objeto Endereço | Não | Endereço do contato |
| genderType | Texto | Sim | Gênero do contato. Opções: N (não informado), M (masculino) ou F (feminino) |
| birthDate | Data | Não | Data de nascimento |
| mothersName | Texto | Não | Nome da mãe |
| isPartnerContact | Texto | Sim | Campo booleano que indica se o contato é sócio do estabelecimento |
Endereço
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| streetAddress | Texto | Sim | Nome do logradouro |
| streetNumber | Texto | Sim | Número do logradouro |
| complement | Texto | Não | Complemento do logradouro |
| neighborhood | Texto | Não | Bairro |
| city | Texto | Sim | Cidade |
| state | Texto | Sim | Estado |
| country | Texto | Sim | País |
| zipCode | Texto | Sim | CEP |
| addressType | Texto | Sim | Tipo do endereço. Opções: N (não informado), C (comercial) ou P (pessoal) |
Categoria
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| mcc | Texto | Sim | Código MCC do estabelecimento |
| cnae | Texto | Sim | Código CNAE do estabelecimento |
Natureza Jurídica
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | Texto | Não | Nome da Natureza Jurídica do estabelecimento |
| code | Texto | Não | Código da Natureza Jurídica do estabelecimento |
Agente de Vendas/Representante Comercial
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| firstName | Texto | Não | Primeiro nome do Representante Comercial |
| lastName | Texto | Não | Último nome do Representante Comercial |
| Texto | Não | Email nome do Representante Comercial | |
| documentId | Texto | Não | Matrícula nome do Representante Comercial |
Dados Bancários
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| documentId | Texto | Sim | CPF/CNPJ responsável pela conta bancária do estabelecimento |
| corporateName | Texto | Sim | Razão Social do responsável pela conta bancária do estabelecimento |
| legalPerson | Texto | Sim | Natureza do estabelecimento comercial. Opções: JURIDICAL ou NATURAL |
| providerAccountId | Texto | Não | Id do provedor bancário |
| bankBranchNumber | Texto | Sim | Número da agência |
| bankBranchCheckDigit | Texto | Não | Dígito da agência |
| accountNumber | Texto | Sim | Número da conta |
| accountNumberCheckDigit | Texto | Não | Dígito da conta |
| accountType | Texto | Não | Código CNAE do estabelecimento |
| compeCode | Texto | Sim | Código do Banco. Ex.: “001” – Banco do Brasil S. A. |
Tabela de taxas do EC
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | Texto | Sim | Nome da tabela de preço |
| tableType | Texto | Sim | Tipo da tabela de preço. Opções: SIMPLE (Taxas simplificadas), DETAILED (Taxas detalhadas) |
| anticipationType | Texto | Sim | Tipo de antecipação da tabela de preço. Opções: NONE, EVENTUAL, COMPULSORY |
| compulsoryAnticipationConfig | Number | Não | Dias a antecipar (obrigatório caso tipo de antecipação da tabela seja COMPULSORY) |
| eventualAnticipationFee | Number | Não | Taxa de antecipação eventual (obrigatório caso tipo de antecipação da tabela seja EVENTUAL) |
| listMerchantPriceGroup | Lista de objetos Grupos de Bandeiras | Sim | Grupos de taxas por bandeiras |
Grupos de Bandeiras
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| brand | Texto | Sim | Bandeira do cartão. Opções: MASTERCARD, VISA, ELO, AMEX, HIPERCARD, CABAL, DINERS, DISCOVER, JCB, OTHER |
| groupId | Texto | Sim | Id agrupador de taxas do grupo de preços de bandeiras |
| listMerchantTransactionPrice | Lista de objetos Taxas de Transação | Sim | Taxas de Transação |
Taxas de Transação
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| installmentTransactionFeeStart | Number | Sim | Parcela que inicia as taxas (de 1 a 12 parcelas) |
| installmentTransactionFeeEnd | Number | Sim | Parcela que finaliza as taxas (de 1 a 12 parcelas) |
| cardTransactionFee | Decimal(10, 2) | Sim | Taxa para cartão presente |
| cardTransactionMdr | Decimal(10, 2) | Sim | MDR para cartão presente |
| nonCardTransactionFee | Decimal(10, 2) | Sim | Taxa para cartão não presente |
| nonCardTransactionMdr | Decimal(10, 2) | Sim | MDR para cartão não presente |
| productType | Texto | Sim | Tipo da transação. Opções: DEBIT, CREDIT |
| cardCompulsoryAnticipationMdr | Decimal(10, 2) | Não | MDR de antecipação compulsória de transações de cartão presente (obrigatório caso tipo de antecipação da tabela de preço seja COMPULSORY) |
| nonCardCompulsoryAnticipationMdr | Decimal(10, 2) | Não | MDR de antecipação compulsória de transações de cartão não presente (obrigatório caso tipo de antecipação da tabela de preço seja COMPULSORY) |
Integração com Autorizadores
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| authorizer | Objeto Autorizador | Sim | Autorizador da integração |
| authorizerMerchantId | Texto | Não | ID do estabelecimento no autorizador (MID) |
| authorizerTerminalId | Texto | Não | ID do terminal no autorizador (TID) |
| authenticationKey | Texto | Não | Chave do estabelecimento no autorizador |
| conciliateWithFinancialTransaction | Booleano | Sim | Chave que indica se as transações realizam conciliação com a Conductor |
| cardProcessingMethod | Texto | Sim | Método em que as transações serão realizadas. Opções: CP (Cartão presente), CNP (Cartão não presente) |
| onboardingStatus | Texto | Não | Status do onboarding do estabelecimento no autorizador. Opções: WAITING_KYC, PENDING, WAITING_CONFIRMATION, SYNCHRONIZED, INSERTION_ERROR, UPDATION_ERROR, OUT_OF_SYNC, NO_ONBOARDING |
Autorizador
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| acronym | Texto | Sim | Acrônimo do Autorizador |
Após a chamada ser concluída com sucesso retornaremos uma mensagem com o código HTTP 201, contendo o seguinte corpo:
Resposta:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| slug | Texto | Sim | uuid serial gerado para o estabelecimento pelo sistema |
| name | Texto | Sim | Nome fantasia |
| documentId | Texto | Sim | CPF/CNPJ |
| corporateName | Texto | Sim | Razão Social |
| Sim | Email para contato com o estabelecimento comercial | ||
| address | Objeto Endereço | Sim | Endereço do estabelecimento comercial |
| contacts | Lista de objetos Contato | Sim | Lista com os contatos do estabelimento comercial |
| language | Texto | Não | Idioma padrão. Ex.: pt_BR |
| timezone | Texto | Não | Fuso horário padrão. Ex.: -03:00 |
| legalNature | Objeto Natureza Jurídica | Não | Código de classificação da Natureza Jurídica do tipo do estabelecimento |
| slugSalesAgent | uuid | Não | Identificador do Representante Comercial / Agente de Vendas |
| saleAgent | Objeto Agente de Vendas | Não | Agente de Vendas/Representante Comercial do estabelecimento |
| mainOffice | Objeto Estabelecimento | Não | Estabelecimento Matriz |
| category | Objeto Categoria | Não | Código MCC e CNAE para classificação do tipo de estabelecimento |
| merchantBankAccount | Objeto Dados Bancários | Não | Dados bancários para liquidação do estabelecimento |
| authorizerMerchants | Lista de objetos de Integração com Autorizadores | Sim | Dados de integração com autorizadores |
| merchantPrice | Objeto Tabela de taxas do EC | Não | Dados de |
| expectedBilling | Texto | Não | Valor mensal esperado para faturamento de transações do estabelecimento |
| anticipationRiskFactor | Decimal(10, 2) | Não | Valor percentual (0 à 100) para calcular o valor que pode ser antecipado pelo EC |
| legalPerson | Texto | Sim | Natureza do estabelecimento comercial. Opções: JURIDICAL ou NATURAL |
| riskAnalysisStatus | Texto | Sim | Status KYC do EC. Opções: PENDING, APPROVED, DECLINED, NOTANALYSED, WAITINGDOCUMENTS |
| openingDate | Texto | Não | Data de abertura do estabelecimento comercial |
| municipalRegistration | Texto | Não | Inscrição municipal |
| stateSubcription | Texto | Não | Inscrição estadual |
| openingDays | Texto | Sim | Dias de funcionamento do estabelecimento. Formato do campo é uma String de 7 caracteres, sendo cada character ‘0’ ou ‘1’ referenciando um dia da semana. Ex.: “0111110” (Significa que o estabelecimento funciona de segunda a sexta, exceto sábado e domingo) |
| openingHour | Texto | Sim | Horário de abertura do estabelecimento. Ex.: “09:00” |
| closingHour | Texto | Sim | Horário de fechamento do estabelecimento. Ex.: “09:00” |
| slugInitializationParameters | Texto | Não | uuid serial de parâmetros de inicialização |
| areaCode | Texto | Não | Código de área do telefone |
| number | Texto | Não | Número telefônico |
| slugInitializationParameters | Texto | Não | Inscrição estadual |
Atualizando Ecs
PUT /v1/onboarding/{slug}
Para atualizar estabelecimentos comerciais ao ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint /v1/onboarding/{slug}, em que o slug é o identificador único do estabelecimento, conforme o dicionário de dados abaixo:
Requisição:
Estabelecimento
| Nome | Tipo | Obrigatório | Descrição | |||||
|---|---|---|---|---|---|---|---|---|
| slug | Texto | Sim | UUID serial gerado pelo sistema para o estabelecimento | |||||
| name | Texto | Sim | Nome fantasia | |||||
| documentId | Texto | Sim | CPF/CNPJ | |||||
| corporateName | Texto | Sim | Razão Social | |||||
| Sim | Email para contato com o estabelecimento comercial | |||||||
| address | Objeto Endereço | Sim | Endereço do estabelecimento comercial | |||||
| contacts | Lista de objetos Contato | Sim | Lista com os contatos do estabelimento comercial | |||||
| language | Texto | Não | Idioma padrão. Ex.: pt_BR | |||||
| timezone | Texto | Não | Fuso horário padrão. Ex.: -03:00 | |||||
| slugSalesAgent | uuid | Não | Identificador do Representante Comercial / Agente de Vendas | |||||
| category | Objeto Categoria | Não | Código MCC e CNAE para classificação do tipo de estabelecimento | |||||
| legalNature | Objeto Natureza Jurídica | Não | Código de classificação da Natureza Jurídica do tipo do estabelecimento | |||||
| mainOffice | Objeto Estabelecimento | Não | Estabelecimento Matriz | |||||
| merchantBankAccount | Objeto Dados Bancários | Não | Dados bancários para liquidação do estabelecimento | |||||
| authorizerMerchants | Lista de objetos de Integração com Autorizadores | Sim | Dados de integração com autorizadores | |||||
| merchantPrice | Objeto Tabela de taxas do EC | Não | Dados de | |||||
| expectedBilling | Texto | Não | Valor mensal esperado para faturamento de transações do estabelecimento | |||||
| anticipationRiskFactor | Decimal(10, 2) | Não | Valor percentual (0 à 100) para calcular o valor que pode ser antecipado pelo EC | legalPerson | Texto | Sim | Natureza do estabelecimento comercial. Opções: JURIDICAL ou NATURAL | |
| openingDate | Texto | Não | Data de abertura do estabelecimento comercial | |||||
| municipalRegistration | Texto | Não | Inscrição municipal | |||||
| stateSubcription | Texto | Não | Inscrição estadual | |||||
| openingDays | Texto | Sim | Dias de funcionamento do estabelecimento. Formato do campo é uma String de 7 caracteres, sendo cada character ‘0’ ou ‘1’ referenciando um dia da semana. Ex.: “0111110” (Significa que o estabelecimento funciona de segunda a sexta, exceto sábado e domingo) | |||||
| openingHour | Texto | Sim | Horário de abertura do estabelecimento. Ex.: “09:00” | |||||
| closingHour | Texto | Sim | Horário de fechamento do estabelecimento. Ex.: “18:00” | |||||
| slugInitializationParameters | Texto | Não | UUID serial de parâmetros de inicialização | |||||
| areaCode | Texto | Não | Código de área do telefone | |||||
| number | Texto | Não | Número telefônico | |||||
| slugInitializationParameters | Texto | Não | Inscrição estadual |
Contato
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | Texto | Sim | Nome do contato |
| jobPosition | Texto | Não | Descrição do cargo |
| documentId | Texto | Não | CPF |
| Sim | Email do contato | ||
| countryCode | Texto | Sim | Código do país do telefone do contato |
| areaCode | Texto | Sim | Código de área do telefone do contato |
| number | Texto | Sim | Número do telefone |
| phoneType | Texto | Sim | Tipo do telefone. Opções: C (celular) ou P (fixo) |
| address | Objeto Endereço | Não | Endereço do contato |
| genderType | Texto | Sim | Gênero do contato. Opções: N (não informado), M (masculino) ou F (feminino) |
| birthDate | Data | Não | Data de nascimento |
| mothersName | Texto | Não | Nome da mãe |
| isPartnerContact | Texto | Sim | Campo booleano que indica se o contato é sócio do estabelecimento |
Endereço
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| streetAddress | Texto | Sim | Nome do logradouro |
| streetNumber | Texto | Sim | Número do logradouro |
| complement | Texto | Não | Complemento do logradouro |
| neighborhood | Texto | Não | Bairro |
| city | Texto | Sim | Cidade |
| state | Texto | Sim | Estado |
| country | Texto | Sim | País |
| zipCode | Texto | Sim | CEP |
| addressType | Texto | Sim | Tipo do endereço. Opções: N (não informado), C (comercial) ou P (pessoal) |
Categoria
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| mcc | Texto | Sim | Código MCC do estabelecimento |
| cnae | Texto | Sim | Código CNAE do estabelecimento |
Natureza Jurídica
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | Texto | Não | Nome da Natureza Jurídica do estabelecimento |
| code | Texto | Não | Código da Natureza Jurídica do estabelecimento |
Agente de Vendas/Representante Comercial
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| firstName | Texto | Não | Primeiro nome do Representante Comercial |
| lastName | Texto | Não | Último nome do Representante Comercial |
| Texto | Não | Email nome do Representante Comercial | |
| documentId | Texto | Não | Matrícula nome do Representante Comercial |
Dados Bancários
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| slug | Texto | Sim | UUID serial gerado pelo sistema para o dado bancário |
| documentId | Texto | Sim | CPF/CNPJ responsável pela conta bancária do estabelecimento |
| corporateName | Texto | Sim | Razão Social do responsável pela conta bancária do estabelecimento |
| legalPerson | Texto | Sim | Natureza do estabelecimento comercial. Opções: JURIDICAL ou NATURAL |
| providerAccountId | Texto | Não | Id do provedor bancário |
| bankBranchNumber | Texto | Sim | Número da agência |
| bankBranchCheckDigit | Texto | Não | Dígito da agência |
| accountNumber | Texto | Sim | Número da conta |
| accountNumberCheckDigit | Texto | Não | Dígito da conta |
| accountType | Texto | Não | Código CNAE do estabelecimento |
| compeCode | Texto | Sim | Código do Banco. Ex.: “001” – Banco do Brasil S. A. |
Tabela de taxas do EC
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | Texto | Sim | Nome da tabela de preço |
| tableType | Texto | Sim | Tipo da tabela de preço. Opções: SIMPLE (Taxas simplificadas), DETAILED (Taxas detalhadas) |
| anticipationType | Texto | Sim | Tipo de antecipação da tabela de preço. Opções: NONE, EVENTUAL, COMPULSORY |
| compulsoryAnticipationConfig | Number | Não | Dias a antecipar (obrigatório caso tipo de antecipação da tabela seja COMPULSORY) |
| eventualAnticipationFee | Number | Não | Taxa de antecipação eventual (obrigatório caso tipo de antecipação da tabela seja EVENTUAL) |
| listMerchantPriceGroup | Lista de objetos Grupos de Bandeiras | Sim | Grupos de taxas por bandeiras |
Grupos de Bandeiras
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| brand | Texto | Sim | Bandeira do cartão. Opções: MASTERCARD, VISA, ELO, AMEX, HIPERCARD, CABAL, DINERS, DISCOVER, JCB, OTHER |
| groupId | Texto | Sim | Id agrupador de taxas do grupo de preços de bandeiras |
| listMerchantTransactionPrice | Lista de objetos Taxas de Transação | Sim | Taxas de Transação |
Taxas de Transação
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| installmentTransactionFeeStart | Number | Sim | Parcela que inicia as taxas (de 1 a 12 parcelas) |
| installmentTransactionFeeEnd | Number | Sim | Parcela que finaliza as taxas (de 1 a 12 parcelas) |
| cardTransactionFee | Decimal(10, 2) | Sim | Taxa para cartão presente |
| cardTransactionMdr | Decimal(10, 2) | Sim | MDR para cartão presente |
| nonCardTransactionFee | Decimal(10, 2) | Sim | Taxa para cartão não presente |
| nonCardTransactionMdr | Decimal(10, 2) | Sim | MDR para cartão não presente |
| productType | Texto | Sim | Tipo da transação. Opções: DEBIT, CREDIT |
| cardCompulsoryAnticipationMdr | Decimal(10, 2) | Não | MDR de antecipação compulsória de transações de cartão presente (obrigatório caso tipo de antecipação da tabela de preço seja COMPULSORY) |
| nonCardCompulsoryAnticipationMdr | Decimal(10, 2) | Não | MDR de antecipação compulsória de transações de cartão não presente (obrigatório caso tipo de antecipação da tabela de preço seja COMPULSORY) |
Integração com Autorizadores
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| slug | Texto | Sim | UUID serial gerado pelo sistema para a integração |
| authorizer | Objeto Autorizador | Sim | Autorizador da integração |
| authorizerMerchantId | Texto | Não | ID do estabelecimento no autorizador (MID) |
| authorizerTerminalId | Texto | Não | ID do terminal no autorizador (TID) |
| authenticationKey | Texto | Não | Chave do estabelecimento no autorizador |
| conciliateWithFinancialTransaction | Booleano | Sim | Chave que indica se as transações realizam conciliação com a Conductor |
| cardProcessingMethod | Texto | Sim | Método em que as transações serão realizadas. Opções: CP (Cartão presente), CNP (Cartão não presente) |
| onboardingStatus | Texto | Não | Status do onboarding do estabelecimento no autorizador. Opções: WAITING_KYC, PENDING, WAITING_CONFIRMATION, SYNCHRONIZED, INSERTION_ERROR, UPDATION_ERROR, OUT_OF_SYNC, NO_ONBOARDING |
Autorizador
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| slug | Texto | Sim | uuid serial gerado pelo sistema para o Autorizador |
| acronym | Texto | Sim | Acrônimo do Autorizador |
Após a chamada ser concluída com sucesso retornaremos uma mensagem com o código HTTP 200, contendo o seguinte corpo:
Resposta:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| slug | Texto | Sim | uuid serial gerado para o estabelecimento pelo sistema |
| name | Texto | Sim | Nome fantasia |
| documentId | Texto | Sim | CPF/CNPJ |
| corporateName | Texto | Sim | Razão Social |
| Sim | Email para contato com o estabelecimento comercial | ||
| address | Objeto Endereço | Sim | Endereço do estabelecimento comercial |
| contacts | Lista de objetos Contato | Sim | Lista com os contatos do estabelimento comercial |
| language | Texto | Não | Idioma padrão. Ex.: pt_BR |
| timezone | Texto | Não | Fuso horário padrão. Ex.: -03:00 |
| category | Objeto Categoria | Não | Código MCC e CNAE para classificação do tipo de estabelecimento |
| legalNature | Objeto Natureza Jurídica | Não | Código de classificação da Natureza Jurídica do tipo do estabelecimento |
| mainOffice | Objeto Estabelecimento | Não | Estabelecimento Matriz |
| slugSalesAgent | uuid | Não | Identificador do Representante Comercial / Agente de Vendas |
| saleAgent | Objeto Agente de Vendas | Não | Agente de Vendas/Representante Comercial do estabelecimento |
| merchantBankAccount | Objeto Dados Bancários | Não | Dados bancários para liquidação do estabelecimento |
| authorizerMerchants | Lista de objetos de Integração com Autorizadores | Sim | Dados de integração com autorizadores |
| merchantPrice | Objeto Tabela de taxas do EC | Não | Dados de |
| expectedBilling | Texto | Não | Valor mensal esperado para faturamento de transações do estabelecimento |
| anticipationRiskFactor | Decimal(10, 2) | Não | Valor percentual (0 à 100) para calcular o valor que pode ser antecipado pelo EC |
| legalPerson | Texto | Sim | Natureza do estabelecimento comercial. Opções: JURIDICAL ou NATURAL |
| riskAnalysisStatus | Texto | Sim | Status KYC do EC. Opções: PENDING, APPROVED, DECLINED, NOTANALYSED, WAITINGDOCUMENTS |
| openingDate | Texto | Não | Data de abertura do estabelecimento comercial |
| municipalRegistration | Texto | Não | Inscrição municipal |
| stateSubcription | Texto | Não | Inscrição estadual |
| openingDays | Texto | Sim | Dias de funcionamento do estabelecimento. Formato do campo é uma String de 7 caracteres, sendo cada character ‘0’ ou ‘1’ referenciando um dia da semana. Ex.: “0111110” (Significa que o estabelecimento funciona de segunda a sexta, exceto sábado e domingo) |
| openingHour | Texto | Sim | Horário de abertura do estabelecimento. Ex.: “09:00” |
| closingHour | Texto | Sim | Horário de fechamento do estabelecimento. Ex.: “09:00” |
| slugInitializationParameters | Texto | Não | uuid serial de parâmetros de inicialização |
| areaCode | Texto | Não | Código de área do telefone |
| number | Texto | Não | Número telefônico |
| slugInitializationParameters | Texto | Não | Inscrição estadual |
Removendo/Desativando Ecs
DELETE /v1/onboarding/{slug}
Para remover/desativar estabelecimentos comerciais ao ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint /v1/onboarding/{slug}, em que o slug é o identificador único do estabelecimento(um EC será removido se o mesmo não tiver terminais e transações associadas ao mesmo, caso contrário, será desativado):
Após a chamada ser concluída com sucesso retornaremos uma mensagem com o código HTTP 200 e corpo vazio.
Incluindo novos Documentos de Ecs
POST /v1/merchants/{slugMerchant}/documents
Para enviar novos documentos para estabelecimentos comerciais existentes no ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint /v1/merchants/{slugMerchant}/documents, em que slugMerchant é o UUID serial gerado pelo sistema para o estabelecimento, conforme o dicionário de dados abaixo:
Requisição:
| Header HTTP |
| Nome | Valor |
|---|---|
| Content-type | multipart/form-data |
Documento
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| fileData | Binário | Sim | Arquivo a ser submetido para o EC |
| documentId | Texto | Sim | CPF/CNPJ |
Após a chamada ser concluída com sucesso retornaremos uma mensagem com o código HTTP 201, contendo o seguinte corpo:
Resposta:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| slug | Texto | Sim | UUID serial gerado pelo sistema para o documento de EC |
| slugUser | Texto | Sim | UUID serial gerado pelo sistema do usuário que submeteu o arquivo |
| slugDocumentType | Texto | Sim | UUID serial gerado pelo sistema dos tipos de documentos disponível para este Cliente |
| merchant | Objeto do Estabelecimento | Sim | Objeto com os dados respectivos do estabelecimento a que se refere este documento |
| fileName | Texto | Sim | Nome do arquivo submetido |
| filePath | Texto | Sim | Endereço do arquivo submetido |
| fileExtension | Texto | Sim | Extensão do arquivo submetido |
| checksum | Number | Sim | Checksum do arquivo submetido |
Removendo Documentos de Ecs
DELETE /v1/merchants/{slugMerchant}/documents/{slug}
Para remover documentos dos estabelecimentos comerciais do ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint /v1/merchants/{slugMerchant}/documents/{slug}, em que o slugMerchant é o UUID serial gerado pelo sistema para o estabelecimento e slug é o UUID serial gerado pelo sistema para o documento a ser removido.
Após a chamada ser concluída com sucesso retornaremos uma mensagem com o código HTTP 200 e corpo vazio.
Buscando um EC específico
GET /v1/merchants/{slugMerchant}
Para buscar um dos seus estabelecimentos comerciais cadastrados no ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint /v1/merchants/{slug}, onde slug é o UUID serial gerado pelo sistema para o estabelecimento.
Após a chamada ser concluída com sucesso retornaremos uma mensagem com o código HTTP 200, contendo o seguinte corpo:
Resposta:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| slug | Texto | Sim | uuid serial gerado para o estabelecimento pelo sistema |
| name | Texto | Sim | Nome fantasia |
| documentId | Texto | Sim | CPF/CNPJ |
| corporateName | Texto | Sim | Razão Social |
| Sim | Email para contato com o estabelecimento comercial | ||
| address | Objeto Endereço | Sim | Endereço do estabelecimento comercial |
| contacts | Lista de objetos Contato | Sim | Lista com os contatos do estabelimento comercial |
| language | Texto | Não | Idioma padrão. Ex.: pt_BR |
| timezone | Texto | Não | Fuso horário padrão. Ex.: -03:00 |
| legalNature | Objeto Natureza Jurídica | Não | Código de classificação da Natureza Jurídica do tipo do estabelecimento |
| mainOffice | Objeto Estabelecimento | Não | Estabelecimento Matriz |
| slugSalesAgent | uuid | Não | Identificador do Representante Comercial / Agente de Vendas |
| saleAgent | Objeto Agente de Vendas | Não | Agente de Vendas/Representante Comercial do estabelecimento |
| category | Objeto Categoria | Não | Código MCC e CNAE para classificação do tipo de estabelecimento |
| merchantBankAccount | Objeto Dados Bancários | Não | Dados bancários para liquidação do estabelecimento |
| authorizerMerchants | Lista de objetos de Integração com Autorizadores | Sim | Dados de integração com autorizadores |
| merchantPrice | Objeto Tabela de taxas do EC | Não | Dados de |
| expectedBilling | Texto | Não | Valor mensal esperado para faturamento de transações do estabelecimento |
| anticipationRiskFactor | Decimal(10, 2) | Não | Valor percentual (0 à 100) para calcular o valor que pode ser antecipado pelo EC |
| legalPerson | Texto | Sim | Natureza do estabelecimento comercial. Opções: JURIDICAL ou NATURAL |
| riskAnalysisStatus | Texto | Sim | Status KYC do EC. Opções: PENDING, APPROVED, DECLINED, NOTANALYSED, WAITINGDOCUMENTS |
| openingDate | Texto | Não | Data de abertura do estabelecimento comercial |
| municipalRegistration | Texto | Não | Inscrição municipal |
| stateSubcription | Texto | Não | Inscrição estadual |
| openingDays | Texto | Sim | Dias de funcionamento do estabelecimento. Formato do campo é uma String de 7 caracteres, sendo cada character ‘0’ ou ‘1’ referenciando um dia da semana. Ex.: “0111110” (Significa que o estabelecimento funciona de segunda a sexta, exceto sábado e domingo) |
| openingHour | Texto | Sim | Horário de abertura do estabelecimento. Ex.: “09:00” |
| closingHour | Texto | Sim | Horário de fechamento do estabelecimento. Ex.: “09:00” |
| slugInitializationParameters | Texto | Não | uuid serial de parâmetros de inicialização |
| areaCode | Texto | Não | Código de área do telefone |
| number | Texto | Não | Número telefônico |
Buscando lista de ECs
GET /v1/merchants
Para buscar todos os seus estabelecimentos comerciais cadastrados no ecosistema da Muxi basta realizar uma requisição HTTP/HTTPS para o endpoint /v1/merchants.
Filtros para requisição:
| Nome | Tipo | Operadores | Descrição |
|---|---|---|---|
| slug | uuid | EQ | Identificador único do registro na Muxi |
| dtInsert | Data/Hora | EQ, BETWEEN, GOE, LOE | Data/hora na qual o registro foi incluído no banco de dados |
| dtUpdate | Data/Hora | EQ, BETWEEN, GOE, LOE | Data/hora na qual o registro foi atualizado no banco de dados |
| dtDelete | Data/Hora | EQ, BETWEEN, GOE, LOE | Data/hora na qual o registro foi desativado no banco de dados |
| slugCustomer | uuid | EQ | Identificador do cliente da Muxi (sub-adquirente/ISO) proprietário do EC |
| legalPerson | Texto | EQ | Natureza do estabelecimento comercial. Opções: JURIDICAL ou NATURAL |
| merchantId | texto | EQ | Identificador único do EC |
| documentId | uuid | EQ, NE, LIKE | CPF/CNPJ |
| riskAnalysisStatus | Texto | EQ, IN, NOTIN | Status KYC do EC. Opções: PENDING, APPROVED, DECLINED, NOTANALYSED, WAITINGDOCUMENTS |
| slugSaleAgent | uuid | EQ | Identificador do Representante Comercial |
| mainOffice.slug | uuid | EQ, NULL | Identificador único da Matriz do EC |
 
Após a chamada ser concluída com sucesso retornaremos uma mensagem com o código HTTP 200, contendo o uma lista de objetos de estabelecimento com o seguinte corpo:
Resposta:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| slug | Texto | Sim | uuid serial gerado para o estabelecimento pelo sistema |
| name | Texto | Sim | Nome fantasia |
| documentId | Texto | Sim | CPF/CNPJ |
| corporateName | Texto | Sim | Razão Social |
| Sim | Email para contato com o estabelecimento comercial | ||
| address | Objeto Endereço | Sim | Endereço do estabelecimento comercial |
| contacts | Lista de objetos Contato | Sim | Lista com os contatos do estabelimento comercial |
| language | Texto | Não | Idioma padrão. Ex.: pt_BR |
| timezone | Texto | Não | Fuso horário padrão. Ex.: -03:00 |
| legalNature | Objeto Natureza Jurídica | Não | Código de classificação da Natureza Jurídica do tipo do estabelecimento |
| mainOffice | Objeto Estabelecimento | Não | Estabelecimento Matriz |
| slugSalesAgent | uuid | Não | Identificador do Representante Comercial / Agente de Vendas |
| saleAgent | Objeto Agente de Vendas | Não | Agente de Vendas/Representante Comercial do estabelecimento |
| category | Objeto Categoria | Não | Código MCC e CNAE para classificação do tipo de estabelecimento |
| merchantBankAccount | Objeto Dados Bancários | Não | Dados bancários para liquidação do estabelecimento |
| authorizerMerchants | Lista de objetos de Integração com Autorizadores | Sim | Dados de integração com autorizadores |
| merchantPrice | Objeto Tabela de taxas do EC | Não | Dados de |
| expectedBilling | Texto | Não | Valor mensal esperado para faturamento de transações do estabelecimento |
| anticipationRiskFactor | Decimal(10, 2) | Não | Valor percentual (0 à 100) para calcular o valor que pode ser antecipado pelo EC |
| legalPerson | Texto | Sim | Natureza do estabelecimento comercial. Opções: JURIDICAL ou NATURAL |
| riskAnalysisStatus | Texto | Sim | Status KYC do EC. Opções: PENDING, APPROVED, DECLINED, NOTANALYSED, WAITINGDOCUMENTS |
| openingDate | Texto | Não | Data de abertura do estabelecimento comercial |
| municipalRegistration | Texto | Não | Inscrição municipal |
| stateSubcription | Texto | Não | Inscrição estadual |
| openingDays | Texto | Sim | Dias de funcionamento do estabelecimento. Formato do campo é uma String de 7 caracteres, sendo cada character ‘0’ ou ‘1’ referenciando um dia da semana. Ex.: “0111110” (Significa que o estabelecimento funciona de segunda a sexta, exceto sábado e domingo) |
| openingHour | Texto | Sim | Horário de abertura do estabelecimento. Ex.: “09:00” |
| closingHour | Texto | Sim | Horário de fechamento do estabelecimento. Ex.: “09:00” |
| slugInitializationParameters | Texto | Não | uuid serial de parâmetros de inicialização |
| areaCode | Texto | Não | Código de área do telefone |
| number | Texto | Não | Número telefônico |