PT

EN

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:

Exemplo de WebService

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
email String Sim E-mail
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
email String Sim Email
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
email String Sim E-mail
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
email String Sim E-mail
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
email String Sim E-mail
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:

  1. Enviar uma requisição de inicialização;
  2. Efetuar um cadastro de assinante (Cadastrar assinante);
  3. Vincular um cartão ao assinante cadastrado (Cadastrar cartão);
  4. 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
email String Sim E-mail
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
email String Sim E-mail
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:

  1. Um booleano indicando se algumas mensagens deverão ser exibidas na tela do pinpad.
  2. O identificador do comerciante (CNPJ, por exemplo).
  3. 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:

  1. Cancelar a ultima transação
  2. 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
email Email 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
email Email 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
email 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
email Email 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          
email Email 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
email Email 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
email 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
email Email 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
email Email 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

&nbsp

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
email Email 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