Back to top

Moub - API de Integração

v. 0.1.7

Início

Importante

  • Este material tem por objetivo apresentar o contrato de integração do seu sistema com a plataforma Moub da 4C;

  • A url dessa documentação aponta para o nosso Sandbox e tem o propósito de servir ao processo de homologação. Quando aprovada, sua empresa precisará apontar para o endereço oficial;

  • Esta documentação pode ser alterada no futuro sem aviso prévio.

Atenção!

  • Todas as nossas comunicações são assinadas com JSON Web Token. As chaves usadas podem ser de convênios ou estabelecimentos, dependendo do tipo de operação. Maiores detalhes podem ser obtidos nas instruções de criação dos tokens

Pagamentos

API de transações para pagamentos

Geração do Token

Gera o Token que garante a segurança e autenticidade das transações no Moub Pagamentos.

Criação do Token
GET/token/estabelecimento/get

  • Informe a chave de integração presente no cadastro de cada estabelecimento

Example URI

GET https://dev.moub.com.br/api/v2/token/estabelecimento/get
Request  Gerar o Token
HideShow
Headers
Accept: application/json
Content-Type: application/json
key: chave-unica-de-integracao
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 200,
  "message": "Mensagem de Retorno",
  "token": "Token de Autorização"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Mensagem de Retorno"
    },
    "token": {
      "type": "string",
      "description": "Token de autorização"
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 401,
  "message": "Motivo da transação não ter sido autorizada"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da transação não ter sido autorizada"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Token inválido ou expirado"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Token inválido ou expirado"
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 404,
  "message": "Not Found / Quando não encontrar o registro informado por parâmtro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Not Found"
    }
  }
}

Autorizar Pagamento

Autorizar Pagamento
GET/payment/generate

Example URI

GET https://dev.moub.com.br/api/v2/payment/generate
Request  Payload de Autorização
HideShow
Headers
Accept: application/json
Content-Type: application/json
Authorization: bearer jwt-token
key: Chave de integração do estabelecimento
pdvId: Identificador do pdv que solicitará a autorização
userName: Nome do usuário logado no pdv
valorEmCentavos: Valor da venda em centavos
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 200,
  "message": "Mensagem de Retorno",
  "authorization": "uuid de autorização",
  "qrCode": "Imagem binária do qrcode pronto para exibição em tela"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Mensagem de Retorno"
    },
    "authorization": {
      "type": "string"
    },
    "qrCode": {
      "type": "string"
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Motivo da Rejeição",
  "errors": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da Rejeição"
    },
    "errors": {
      "description": "Informado apenas quando for o caso"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Token inválido ou expirado"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Token inválido ou expirado"
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 404,
  "message": "Not Found / Quando não encontrar o registro informado por parâmtro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Not Found"
    }
  }
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 500,
  "error": "Motivo do Erro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "error": {
      "type": "string",
      "description": "Motivo do Erro"
    }
  }
}

Verificar Pagamento

Verificar Pagamento
GET/payment/check

Example URI

GET https://dev.moub.com.br/api/v2/payment/check
Request  Payload de Pagamento
HideShow
Headers
Accept: application/json
Content-Type: application/json
Authorization: bearer jwt-token
Auth: uuid de autorização retornado no endpoint de geração de autorização
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 200,
  "message": "Mensagem de Retorno",
  "pagamento": {
    "autorizacao": {
      "uuid": "uuid de autorização",
      "estabelecimento": {
        "razaoSocial": "Razão Social do Estabelecimento",
        "nomeFantasia": "Nome Fantasia do Estabelecimento",
        "cnpj": "CNPJ do Estabelecimento"
      },
      "pdvId": "Identificador do pdv",
      "userName": "Identificador do usuário do pdv",
      "valor": "Valor total das compras informada no pdv em centavos"
    },
    "valor": "valor do débito em centavos",
    "data": "00/00/0000 00:00:00 AM/PM",
    "saldo": 110,
    "autorizacaoParaCancelamento": "ABC123"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Mensagem de Retorno"
    },
    "pagamento": {
      "type": "object",
      "properties": {
        "autorizacao": {
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string",
              "description": "uuid de autorização"
            },
            "estabelecimento": {
              "type": "object",
              "properties": {
                "razaoSocial": {
                  "type": "string",
                  "description": "Razão Social do Estabelecimento"
                },
                "nomeFantasia": {
                  "type": "string",
                  "description": "Nome Fantasia do Estabelecimento"
                },
                "cnpj": {
                  "type": "string",
                  "description": "CNPJ do Estabelecimento"
                }
              },
              "description": "Dados do Estabelecimento"
            },
            "pdvId": {
              "type": "string",
              "description": "Identificador do pdv"
            },
            "userName": {
              "type": "string",
              "description": "Identificador do usuário do pdv"
            },
            "valor": {
              "type": "string"
            }
          },
          "description": "Dados da autorização"
        },
        "valor": {
          "type": "string"
        },
        "data": {
          "type": "string"
        },
        "saldo": {
          "type": "number",
          "description": "saldo do boneficiário"
        },
        "autorizacaoParaCancelamento": {
          "type": "string",
          "description": "Código de autorização para cancelamento"
        }
      },
      "description": "Dados do pagamento"
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Motivo da Rejeição",
  "errors": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da Rejeição"
    },
    "errors": {
      "description": "Informado apenas quando for o caso"
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 401,
  "message": "Motivo da transação não ter sido autorizada"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da transação não ter sido autorizada"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Token inválido ou expirado"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Token inválido ou expirado"
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 404,
  "message": "Not Found / Quando não encontrar o registro informado por parâmtro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Not Found"
    }
  }
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 500,
  "error": "Motivo do Erro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "error": {
      "type": "string",
      "description": "Motivo do Erro"
    }
  }
}

Debitar via Cartão

Debitar via Cartão
POST/debit/cartao

Example URI

POST https://dev.moub.com.br/api/v2/debit/cartao
Request  Payload de Débito
HideShow
Headers
Accept: application/json
Content-Type: application/json
Authorization: bearer jwt-token
Cartao: Número do cartão do beneficiário
Senha: Senha do cartão
Body
{
  "valorEmCentavos": 0,
  "autorizacaoPagamento": "uuid de autorização retornado no endpoint de geração de autorização"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "valorEmCentavos": {
      "type": "number",
      "description": "valor do débito em centavos"
    },
    "autorizacaoPagamento": {
      "type": "string",
      "description": "uuid de autorização retornado no endpoint de geração de autorização"
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 200,
  "message": "Mensagem de Retorno",
  "saldo": 0,
  "aviso": "Se houver, imprimir no pdv",
  "autorizacaoParaCancelamento": "ABC123",
  "msgBeneficiario": "Comprovante Beneficiário",
  "msgEstabelecimento": "Comprovante Estabelecimento"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Mensagem de Retorno"
    },
    "saldo": {
      "type": "number",
      "description": "Saldo em centavos"
    },
    "aviso": {
      "type": "string",
      "description": "Se houver, imprimir no pdv"
    },
    "autorizacaoParaCancelamento": {
      "type": "string",
      "description": "Código de autorização para cancelamento"
    },
    "msgBeneficiario": {
      "type": "string",
      "description": "Comprovante Beneficiário"
    },
    "msgEstabelecimento": {
      "type": "string",
      "description": "Comprovante Estabelecimento"
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Motivo da Rejeição",
  "errors": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da Rejeição"
    },
    "errors": {
      "description": "Informado apenas quando for o caso"
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 401,
  "message": "Motivo da transação não ter sido autorizada"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da transação não ter sido autorizada"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Token inválido ou expirado OU outro motivo",
  "saldo": 0
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Token inválido ou expirado OU outro motivo"
    },
    "saldo": {
      "type": "number",
      "description": "Saldo em centavos quando for o caso de saldo insuficiente"
    }
  }
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 500,
  "error": "Motivo do Erro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "error": {
      "type": "string",
      "description": "Motivo do Erro"
    }
  }
}

Estornar débito

Estornar débito
POST/debit/estorno

Example URI

POST https://dev.moub.com.br/api/v2/debit/estorno
Request  Payload de Débito
HideShow
Headers
Accept: application/json
Content-Type: application/json
Authorization: bearer jwt-token
key: Chave de integração do estabelecimento
pdvId: Identificador do pdv que solicitará a autorização
userName: Nome do usuário logado no pdv
valorEmCentavos: Valor da venda em centavos
AutorizacaoParaCancelamento: Autorização para cancelamento que foi informada no retorno dos débitos (via cartão e qr-code) ou na confirmação do pagamento
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 200,
  "message": "Mensagem de Retorno"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Mensagem de Retorno"
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Motivo da Rejeição",
  "errors": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da Rejeição"
    },
    "errors": {
      "description": "Informado apenas quando for o caso"
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 401,
  "message": "Motivo da transação não ter sido autorizada"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da transação não ter sido autorizada"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Token inválido ou expirado OU outro motivo",
  "saldo": 0
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Token inválido ou expirado OU outro motivo"
    },
    "saldo": {
      "type": "number",
      "description": "Saldo em centavos quando for o caso de saldo insuficiente"
    }
  }
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 500,
  "error": "Motivo do Erro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "error": {
      "type": "string",
      "description": "Motivo do Erro"
    }
  }
}

Fidelidade

API de transações para fidelidades

Geração do Token

Gera o Token que garante a segurança e autenticidade das transações no Moub Fidelidade.

Criação do Token
GET/token/convenio/get/{key}

Example URI

GET https://dev.moub.com.br/api/v2/token/convenio/get/xpto-123
URI Parameters
HideShow
key
string (required) Example: xpto-123

Informe a chave de integração presente no cadastro de cada convênio

Request  Gerar o Token
HideShow
Headers
Accept: application/json
Content-Type: application/json
key: chave-unica-de-integracao
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 200,
  "message": "Mensagem de Retorno",
  "token": "Token de Autorização"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Mensagem de Retorno"
    },
    "token": {
      "type": "string",
      "description": "Token de autorização"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Token inválido ou expirado"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Token inválido ou expirado"
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 404,
  "message": "Not Found / Quando não encontrar o registro informado por parâmtro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Not Found"
    }
  }
}

Consultar Prêmio

Consultar Prêmio
GET/loyalty/premiacao/get

Nota: Retorna o prêmio oferecido pelo convênio

Example URI

GET https://dev.moub.com.br/api/v2/loyalty/premiacao/get
Request  Premiação
HideShow
Headers
Accept: application/json
Content-Type: application/json
Authorization: bearer jwt-token
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 200,
  "awards": [
    {
      "award": "Um Chopp estupidamente gelado! 🍺",
      "score": 6,
      "productCode": "XPTO123"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "awards": {
      "type": "array",
      "description": "Prêmios"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Motivo da rejeição"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string"
    }
  }
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 500,
  "error": "Motivo do Erro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "error": {
      "type": "string",
      "description": "Motivo do Erro"
    }
  }
}

Consultar Pontos

Consultar Pontos
GET/loyalty/get/{doc}

Example URI

GET https://dev.moub.com.br/api/v2/loyalty/get/cpf, cnpj ou telefone
URI Parameters
HideShow
doc
string (required) Example: cpf, cnpj ou telefone

Pesquisa pelo CPF/CNPJ ou Telefone

Request  Consultar Pontos
HideShow
Headers
Accept: application/json
Content-Type: application/json
Authorization: bearer jwt-token
celular: false (caso a pesquisa esteja sendo feita pelo telefone, coloque como true)
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 200,
  "participant": {
    "firstName": "Nome do beneficiaŕio",
    "lastName": "Sobrenome do beneficiaŕio",
    "doc": "CPF/CNPJ do beneficiário",
    "fullAddress": {
      "address": "Rua",
      "district": "bairro",
      "city": "cidade",
      "state": "uf",
      "phoneNumber": "telefone"
    }
  },
  "balance": {
    "score": 0,
    "percentage": 0,
    "canRescue": false,
    "loyalty": {
      "valueInCents": 0
    },
    "lastScore": "Data da última pontuação"
  },
  "awards": {
    "availableValueToRescueInCents": 0,
    "availableItems": [
      {
        "award": "Um Chopp estupidamente gelado! 🍺",
        "score": 6,
        "productCode": "XPTO123"
      }
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "participant": {
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string",
          "description": "Nome do beneficiaŕio"
        },
        "lastName": {
          "type": "string",
          "description": "Sobrenome do beneficiaŕio"
        },
        "doc": {
          "type": "string",
          "description": "CPF/CNPJ do beneficiário"
        },
        "fullAddress": {
          "type": "object",
          "properties": {
            "address": {
              "type": "string",
              "description": "Rua"
            },
            "district": {
              "type": "string",
              "description": "bairro"
            },
            "city": {
              "type": "string",
              "description": "cidade"
            },
            "state": {
              "type": "string",
              "description": "uf"
            },
            "phoneNumber": {
              "type": "string",
              "description": "telefone"
            }
          }
        }
      }
    },
    "balance": {
      "type": "object",
      "properties": {
        "score": {
          "type": "number",
          "description": "Total de pontos"
        },
        "percentage": {
          "type": "number",
          "description": "Percentual atingido"
        },
        "canRescue": {
          "type": "boolean",
          "description": "Total de pontos"
        },
        "loyalty": {
          "type": "object",
          "properties": {
            "valueInCents": {
              "type": "number",
              "description": "valor da compra informado em centavos"
            }
          }
        },
        "lastScore": {
          "type": "string",
          "description": "Ultima pontuação"
        }
      }
    },
    "awards": {
      "type": "object",
      "properties": {
        "availableValueToRescueInCents": {
          "type": "number",
          "description": "Valor em centavos do que pode ser resgatado (valor máximo)"
        },
        "availableItems": {
          "type": "array"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Motivo da Rejeição",
  "errors": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da Rejeição"
    },
    "errors": {
      "description": "Informado apenas quando for o caso"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Motivo da rejeição"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string"
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 404,
  "message": "Not Found / Quando não encontrar o registro informado por parâmtro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Not Found"
    }
  }
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 500,
  "error": "Motivo do Erro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "error": {
      "type": "string",
      "description": "Motivo do Erro"
    }
  }
}

Pontuar

Pontuar
POST/loyalty/save/{doc}

Importante

Quando o usuário indicado no CPF/CNPJ não existir, você precisará salvá-lo antes de enviar a pontuação.

Example URI

POST https://dev.moub.com.br/api/v2/loyalty/save/cpf, cnpj ou telefone
URI Parameters
HideShow
doc
string (required) Example: cpf, cnpj ou telefone

Pesquisa pelo CPF/CNPJ ou Telefone

Request  Pontuar
HideShow
Headers
Accept: application/json
Content-Type: application/json
Authorization: bearer jwt-token
celular: false (caso a pesquisa esteja sendo feita pelo telefone, coloque como true)
Body
{
  "valueInCents": 0,
  "beneficiario": "Nome do Cliente",
  "operador": "Nome do Operador que fez a Pontuação",
  "nrDocumento": "Número do Documento da Venda [Opcional]",
  "saleId": "Id da Venda [Opcional]"
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 201,
  "message": "Mensagem de Retorno",
  "id": "Id da transação",
  "score": 0,
  "totalScore": 0
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Mensagem de Retorno"
    },
    "id": {
      "type": "string",
      "description": "Id da transação"
    },
    "score": {
      "type": "number",
      "description": "Total realizados"
    },
    "totalScore": {
      "type": "number",
      "description": "Total de pontos"
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Motivo da Rejeição",
  "errors": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da Rejeição"
    },
    "errors": {
      "description": "Informado apenas quando for o caso"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Motivo da rejeição"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string"
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 404,
  "message": "Not Found / Quando não encontrar o registro informado por parâmtro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Not Found"
    }
  }
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 500,
  "error": "Motivo do Erro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "error": {
      "type": "string",
      "description": "Motivo do Erro"
    }
  }
}

Excluir Pontuação

Excluir Pontuação
DELETE/loyalty/delete/{key}

Example URI

DELETE https://dev.moub.com.br/api/v2/loyalty/delete/unique-score-key
URI Parameters
HideShow
key
string (required) Example: unique-score-key

Pesquisa pela chave do ponto que é sempre retornada quando uma pontuação é bem sucedida

Request  Excluir
HideShow
Headers
Accept: application/json
Content-Type: application/json
Authorization: bearer jwt-token
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 200,
  "message": "Mensagem de Retorno"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Mensagem de Retorno"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Motivo da rejeição"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string"
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Motivo da Rejeição",
  "errors": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da Rejeição"
    },
    "errors": {
      "description": "Informado apenas quando for o caso"
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 404,
  "message": "Not Found / Quando não encontrar o registro informado por parâmtro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Not Found"
    }
  }
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 500,
  "error": "Motivo do Erro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "error": {
      "type": "string",
      "description": "Motivo do Erro"
    }
  }
}

Excluir Pontuação por id da Venda

Excluir Pontuação por id da Venda
DELETE/loyalty/delete/venda-id/{key}

Example URI

DELETE https://dev.moub.com.br/api/v2/loyalty/delete/venda-id/unique-pdv-key
URI Parameters
HideShow
key
string (required) Example: unique-pdv-key

Pesquisa pelo id da venda no pdv

Request  Excluir
HideShow
Headers
Accept: application/json
Content-Type: application/json
Authorization: bearer jwt-token
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 200,
  "message": "Mensagem de Retorno"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Mensagem de Retorno"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Motivo da rejeição"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string"
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Motivo da Rejeição",
  "errors": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da Rejeição"
    },
    "errors": {
      "description": "Informado apenas quando for o caso"
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 404,
  "message": "Not Found / Quando não encontrar o registro informado por parâmtro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Not Found"
    }
  }
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 500,
  "error": "Motivo do Erro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "error": {
      "type": "string",
      "description": "Motivo do Erro"
    }
  }
}

Resgatar

Resgatar
POST/loyalty/rescue/{doc}

Example URI

POST https://dev.moub.com.br/api/v2/loyalty/rescue/cpf, cnpj ou telefone
URI Parameters
HideShow
doc
string (required) Example: cpf, cnpj ou telefone

Pesquisa pelo CPF/CNPJ ou Telefone

Request  Resgatar
HideShow
Headers
Accept: application/json
Content-Type: application/json
Authorization: bearer jwt-token
celular: false (caso a pesquisa esteja sendo feita pelo telefone, coloque como true)
Body
{
  "score": 0
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 200,
  "message": "Mensagem de Retorno",
  "voucher": "00-AbCdEf"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Mensagem de Retorno"
    },
    "voucher": {
      "type": "string",
      "description": "Id do comprovante de retorno"
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Motivo da Rejeição",
  "errors": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da Rejeição"
    },
    "errors": {
      "description": "Informado apenas quando for o caso"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Motivo da rejeição"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string"
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 404,
  "message": "Not Found / Quando não encontrar o registro informado por parâmtro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Not Found"
    }
  }
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 500,
  "error": "Motivo do Erro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "error": {
      "type": "string",
      "description": "Motivo do Erro"
    }
  }
}

Estornar Resgate

Estornar Resgate
POST/loyalty/rescue/reversal/{key}

Example URI

POST https://dev.moub.com.br/api/v2/loyalty/rescue/reversal/00-AbC123
URI Parameters
HideShow
key
string (required) Example: 00-AbC123

Código de Autorização informado no retorno do resgate

Request  Estornar
HideShow
Headers
Accept: application/json
Content-Type: application/json
Authorization: bearer jwt-token
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 201,
  "message": "Mensagem de Retorno",
  "authorization": "abc123",
  "reversedScore": 0,
  "totalScore": 0
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Mensagem de Retorno"
    },
    "authorization": {
      "type": "string",
      "description": "Id do autorização do estorno"
    },
    "reversedScore": {
      "type": "number",
      "description": "Total de pontos que foram estornados"
    },
    "totalScore": {
      "type": "number",
      "description": "Total de pontos"
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Motivo da Rejeição",
  "errors": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da Rejeição"
    },
    "errors": {
      "description": "Informado apenas quando for o caso"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Motivo da rejeição"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string"
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 404,
  "message": "Not Found / Quando não encontrar o registro informado por parâmtro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Not Found"
    }
  }
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 500,
  "error": "Motivo do Erro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "error": {
      "type": "string",
      "description": "Motivo do Erro"
    }
  }
}

Salvar Beneficiário

Importante

Sempre que a consulta de pontos não retornar um beneficiário, o mesmo preciará ser cadastrado antes de pontuar, sob pena da ação ser rejeitada.

Salvar Beneficiário
POST/beneficiario/post/{doc}

Example URI

POST https://dev.moub.com.br/api/v2/beneficiario/post/cpf ou cnpj
URI Parameters
HideShow
doc
string (required) Example: cpf ou cnpj

Pesquisa pelo CPF/CNPJ

Request  Salvar Beneficiário
HideShow
Headers
Accept: application/json
Content-Type: application/json
Authorization: bearer jwt-token
Body
{
  "firstName": "Nome do beneficiaŕio",
  "lastname": "Sobrenome do beneficiaŕio",
  "address": "Rua",
  "email": "email@email.com",
  "phone": "00000000000",
  "district": "bairro",
  "city": "cidade",
  "state": "uf",
  "phoneNumber": "telefone"
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 201,
  "message": "Mensagem de Retorno"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Mensagem de Retorno"
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Motivo da Rejeição",
  "errors": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string",
      "description": "Motivo da Rejeição"
    },
    "errors": {
      "description": "Informado apenas quando for o caso"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 403,
  "message": "Motivo da rejeição"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "message": {
      "type": "string"
    }
  }
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 500,
  "error": "Motivo do Erro"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "description": "Código de Retorno (o mesmo do http response)"
    },
    "error": {
      "type": "string",
      "description": "Motivo do Erro"
    }
  }
}

Generated by aglio on 11 Feb 2025