Introdução
Esta é a documentação dos serviços de comunicação para smartphones da solução MultiClubes. Este manual tem como objetivo ajudar no entendimento e na implementação de uso dos serviços que compõem a API.
Comunicação
A comunicação suportada é REST sobre HTTPS com formatação JSON e o uso do protocolo TLS 1.0 e SSL 3.0. O certificado fornecido pelo servidor deve ser inspecionado a cada nova conexão, para confirmar que se trata de um certificado confiável. A URL do servidor contida no certificado deve corresponder ao endereço correto do MultiClubes (multiclubes.com.br). Os dados devem estar codificados no formato UTF-8.
Todos os serviços podem ser acessados ao incluir a rota logo após o endereço base do serviço. Por exemplo:
- Endereço base para o serviço de autenticação:
http://127.0.0.1/MultiClubes/Services/Extensions/App/Rest/Account/v1.svc. - Rota para serviço de autenticação:
/login. - Endereço completo para a requisição:
http://127.0.0.1/MultiClubes/Services/Extensions/App/Rest/Account/v1.svc/login.
O mesmo se aplica caso uma rota alternativa esteja configurada para o serviço. Por exemplo:
- Endereço base para o serviço de autenticação:
http://exemplo.multiclubes.com/Account. - Rota para serviço de autenticação:
/login. - Endereço completo para a requisição:
http://exemplo.multiclubes.com/Account/login.
Autenticação
O acesso à API é restrito aos parceiros cadastrados, sendo necessário informar, em cada conexão, a chave de autenticação fornecida pela nossa equipe de suporte técnico ao parceiro. A duração da chave é indeterminada, somente perdendo a validade caso a conta de acesso seja desativada.
A chave de autenticação deve ser informada adicionando um cabeçalho de nome _AuthenticationKey à requisição.
Glossário
- Cliente: é o clube ou parque que contratou o serviço do aplicativo para seus usuários.
- Usuário: é a pessoa que usa o aplicativo, compra convites e adquire produtos e serviços nos pontos de venda do cliente.
- Conta de consumo: é o cartão ou pulseira onde são apontados os serviços e produtos adquiridos pelo usuário.
- Conta de consumo pré-paga: são contas de consumo onde valor é pago antecipadamente ao consumo nos pontos de venda através de recargas de crédito.
- Conta de consumo pós-paga: são contas de consumo onde valor é pago após o consumo nos pontos de venda. Neste cenário o usuário possui um limite de crédito que define até qual valor o saldo da sua conta poderá ficar negativo. Ao atingir o valor limite, um pagamento é necessário para realizas novos consumos.
- Conta de acesso: é um cadastro que o usuário deve fazer para uso do aplicativo.
- Pontos de venda: são pontos de prestação de serviços ou venda de produtos onde o meio de pagamento aceito é um cartão ou pulseira de consumo. Tais pontos são normalmente bares, restaurantes e quiosques.
- Movimento de consumo: são movimentos financeiro que afetam o saldo do cartão de consumo. Dentre eles: venda, estorno, recarga, pagamento, etc.
- Crédito: valor positivo do saldo da conta de consumo. Os créditos são utilizados para consumo nos pontos de venda do cliente.
- Pagamento: pagamento para quitar ou reduzir um saldo devedor. Esta operação é realizada em conta de consumo pós-pagas.
- Recarga: pagamento antecipado para inclusão de créditos na conta de consumo. Normalmente, esta operação é realizada em conta de consumo pré-paga, mas também pode ser realizada em contas de consumo pós-pagas.
- Valor faturado: é o valor a pagar de consumos que foi enviado para o cliente, normalmente via cobrança bancária.
- Cartão verificado: é quando o cartão de crédito teve ao menos uma transação de pagamento aprovada.
- Cartão autorizado para uso futuro: é quando o usuário autoriza que o cartão fique disponível para uso futuro afim de não precisar digitar os dados novamente.
- Turma: é o espaço em que o sócio será matriculado para realizar a modalidade que deseja.
- Modalidade: é a atividade que será realizada na turma em que o sócio for matriculado.
- Matrícula: é o registro efetivo de um sócio em uma turma.
- Capacidade: é a quantidade máxima de alunos que uma turma suporta.
- Taxa de matrícula: é o valor a ser pago por um sócio ao se matricular em uma turma.
- Manutenção: é o valor mensal que um sócio deve pagar ao estar matrículado em uma turma.
- Manutenção proporcional: é o valor cobrado referênte à mensalidade da turma em proporção ao número de dias do mês que serão contabilizados desde que matrícula foi efetuada.
- Fila de espera: fila para realizar a matrícula em uma turma. Caso o sócio deseje fazer matrícula em uma turma cuja capacidade máxima fora alcançada, o mesmo deverá ser inserido na fila de espera.
Funcionamento
A API foi idealizada para que o aplicativo seja usado parcialmente sem conectividade com o servidor. Este comportamento tem como principais objetivos:
- Aumentar a responsividade do aplicativo.
- Reduzir o uso de dados do usuário.
- Permitir o uso do aplicativo sem conexão à internet.
Com esse funcionamento as funcionalidades básicas que devem ser oferecidas no aplicativo são:
Operações com conectividade:
- Autenticação de usuário.
- Recepção de atualizações das contas de consumo. É esperado que a atualização dos dados possa ser realizada manualmente pelo usuário e em segundo plano pelo aplicação quando o usuário acionar as funções de consultas ou entrar no aplicativo.
- Pagamento de conta de consumo pós-paga.
- Pagamento de estacionamento.
- Recarga de conta de consumo pré-paga.
- Consulta de extrato de consumo.
- Compra de convites.
- Consulta disponibilidade de convites.
- Consulta convites comprados.
- Cancelamento de compras de convites.
- Consulta de turmas disponíveis para matrícula.
- Matrícula de sócios em turmas.
- Cancelamento de matrícula de sócios.
- Inclusão de sócios na fila de espera de uma turma.
- Remoção de sócios da fila de espera de uma turma.
Operações sem conectividade:
- Entrada no aplicativo de usuário previamente autenticado.
- Consulta de saldo de consumo.
Para permitir as operações sem conectividade, o aplicativo deve armazenar localmente os dados previamente recebidos e atualizá-los a medida que novos dados de atualizações forem recebidos. Veja aqui uma estrutura de banco de dados em SQL Lite para servir como ponto de partida.
Mensagens de erro
Falhas e erros nas requisições serão sempre reportadas por meio de uma resposta com o código de status HTTP 500 Internal Server Error e com o corpo preenchido da seguinte forma:
{
"Code": "AM7XOODN", //Código de referência do erro no serviço
"Message": "Não é possível localizar a conta de consumo." //Mensagem de erro
}
Como começar
- Obtenha o endereço do serviço de homologação.
- Verifique a documentação dos endpoints na descrição dos serviços
- Realize chamadas em homologação para testes de reconhecimento.
- Integre as chamadas com seu software em homologação.
- Obtenha o endereço do serviço de produção.
- Realize chamadas em produção para testes de finalização.
Notas de versão
1.0.0
21/01/2025
- Criada esta documentação para auxiliar no entendimento e implementação.
1.0.1
11/02/2025
Modificação nos modelos de contrato para que todos os campos que informam a bandeira do cartão usem o novo tipo TefCardType.
A alteração foi realizada para que a documentação seja devidamente apresentada. Apesar da alteração, os valores usados se mantiveram.
Serviço Account
- Alteração do retorno do método
LoadCards, alterando o tipo do campoLoadCardResult.CardTypenos elementos.
Serviço Consumption
- Alteração do retorno do método
LoadPayment, alterando o tipo do campoLoadPaymentResult.EnabledCardTypes. - Alteração do retorno do método
LoadPayment, alterando o tipo da propriedadeCardTypenos elementos do campoLoadPaymentResult.Cards. - Alteração do parâmetro do método
LoadAcquirerAuthentication, alterando o tipo da propriedadeCardTypeno campoLoadAcquirerAuthenticationData.NewCard. - Alteração do parâmetro do método
PerformPayment, alterando o tipo da propriedadeCardTypeno campoPerformPaymentData.NewCard. - Alteração do parâmetro do método
PerformRecharge, alterando o tipo da propriedadeCardTypeno campoPerformRechargeData.NewCard. - Incluído o código de erro
InvalidCardTypeConversion.
Serviço Disciplines
- Alteração do parâmetro do método
Register, alterando o tipo da propriedadeCardTypeno campoRegisterData.Payment.NewCard.
Serviço Invitations
- Alteração do parâmetro do método
Sell, alterando o tipo da propriedadeCardTypeno campoSellData.Payment.NewCard.
Serviço Title
- Alteração do parâmetro do método
PayDuns, alterando o tipo da propriedadeCardTypeno campoPerformPaymentData.NewCard.
1.0.2
21/02/2025
Serviço Consumption
- Incluída a propriedade
CanStoreCardno objetoLoadPaymentResultdo métodoLoadPaymento qual informa se os dados do cartão podem ser salvos para transações posteriores.
1.0.3
21/02/2025
Serviço Consumption
- Incluída a propriedade
AcquirerAuthenticationProviderno objetoLoadPaymentResultdo métodoLoadPayment, o qual informa o provedor de autenticação do adquirente.
1.0.4
27/02/2025
Serviço Consumption
- Alterado o retorno do método
LoadPaymentpara que ele não retorne a lista de cartões quando a operação possuir autenticação 3DS.
1.0.5
05/03/2025
Serviço Account
- Adicionado novo método
LoginTokenque permite a autenticação do usuário através do token gerado pelo métodoGenerateToken.
1.0.6
10/03/2025
Criação de nova seção para documentar o fluxo de pagamento PIX na API de consumo.
Serviço Consumption
- Adicionado o método
CreatePixPaymentpara criação de código de pagamento PIX do cartão de consumo. - Adicionado o método
CreatePixRechargepara criação de código de recarga PIX do cartão de consumo. - Adicionado o método
AbortPixpara cancelar transação PIX criada para pagamento ou recarga do cartão de consumo. - Adicionado o método
ConfirmPixPaymentpara confirmação de pagamento PIX do cartão de consumo. - Adicionado o método
ConfirmPixRechargepara confirmação de recarga PIX do cartão de consumo. - Adicionado novo método
LoginTokenque permite a autenticação do usuário através do token gerado pelo métodoGenerateToken. - Alterado o retorno do método
LoadPaymentpara que ele não retorne a lista de cartões quando a operação possuir autenticação 3DS.
1.0.7
10/03/2025
Serviço Exams
- Inclusão do novo serviço de exames.
- Criado novo método
LoadIntervalsque retorna os horários de exames disponíveis para agendamento.
1.0.7
14/03/2025
Serviço Exams
- Criado novo método
Scheduleque efetiva o agendamento do exame.
1.0.8
17/03/2025
Serviço Exams
- Criado novo método
Loadque lista os agendamentos de exames ativos do título, os tipos de exames disponíveis para agendamento, sócios que podem realizar o agendamento e informações sobre as formas de pagamento.
1.0.9
18/03/2025
Serviço Address
- Inclusão do novo serviço de endereços.
- Criado novo método
Searchque retorna as informações de um endereço através de seu CEP (Código de Endereçamento Postal).
1.0.10
18/12/2025
Serviço Consumption
- Incluída a propriedade
MovementUIDno objetoMovementResultdo métodoLoadMovementso qual informa o identificador único do movimento.
1.0.11
15/01/2026
Serviço Facilities
- Inclusão do novo serviço de espaços.
- Criado novo método
Loadque retorna os espaços existentes, a regras de locação e consulta e as locações do título. - Criado novo método
CheckAvailabilityque retorna os espaços e as datas em que ele estará alugado. - Criado novo método
Rentque realiza locações de espaços. - Criado novo método
GetFacilityRentContractque retorna o contrato de locação.