📘

O contrato permanece o mesmo

Não houve nenhuma alteração no contrato da API!

Alterado

  • Dicionário de Dados reorganizado em abas Requisição e Resposta (era exibido em duas seções separadas com exemplos JSON)
  • Header System-Name: valor default alterado de "{pdvSystemName}"""
  • Header User-Agent: descrição adicionada no OpenAPI
  • Header Request-Hash: descrição atualizada de "request_hash obtido na requisição /user/verify""request_hashobtido na requisição/user/verify" (formatação em código)
  • Header Request-Hash: valor default alterado de "94c9efbb6daaa86995263caf10cb4e17"""
  • gross_value: valor default alterado de 100""
  • custom_data.key: valor default alterado de "seu-valor"""
  • items.sku: valor default alterado de "ABC-12345-S-BL"""
  • items.value_of, value_per, quantity: valores default alterados de 100, 80, 2""
  • Resposta 200: exemplo "Result" substituído por dois exemplos nomeados — "PIN Enviado via SMS" e "PIN Enviado via WhatsApp"
  • Resposta 200: exemplo de text_pin do SMS: "LINX ENTERPRISE: PIN 3885...""NOME DA MARCA: PIN 3885..."
  • Resposta 200: schema enriquecido com descriptions e enums em status, message, data.user_id, data.request_pin e data.text_pin

Removido

  • Exemplos JSON do Dicionário de Dados (blocos de código json que precediam cada tabela)
📘

O contrato permanece o mesmo

Não houve nenhuma alteração no contrato da API!

Alterado

  • Dicionário de Dados reorganizado em abas Requisição e Resposta (era exibido em duas seções separadas com exemplos JSON)
  • Header System-Name: valor default alterado de "{pdvSystemName}"""
  • Header User-Agent: descrição adicionada no OpenAPI
  • Resposta 200: descrição alterada de "200""OK"
  • Resposta 200: schema completo adicionado com descriptions e enums para status, message, data.user_id e data.request_pin
  • Exemplos do 200 renomeados: "Usuário encontrado" → "Usuário existe" e "Usuário não encontrado" → "Usuário não existe"
  • Exemplo "Usuário existe": request_pin alterado de truefalse

Removido

  • Exemplos JSON do Dicionário de Dados (blocos de código json que precediam cada tabela)
  • Exemplos de requisição (requestBody.examples) removidos
📘

O contrato permanece o mesmo

Não houve nenhuma alteração no contrato da API!

Alterado

  • Dicionário de Dados reorganizado em abas Requisição e Resposta (era exibido em duas seções separadas com exemplos JSON)
  • Header System-Name: valor default alterado de "{pdvSystemName}"""
  • Header User-Agent: descrição adicionada no OpenAPI
  • Descriptions adicionadas nos campos de resposta do schema OpenAPI: access_token, access_token_expires_in, refresh_token, refresh_token_expires_in

Removido

  • Exemplos JSON do Dicionário de Dados (os blocos de código json que precediam cada tabela)
📘

O contrato permanece o mesmo

Não houve nenhuma alteração no contrato da API!

Alterado

  • Dicionário de Dados reorganizado em abas Requisição e Resposta (era exibido em duas seções separadas)
  • Header System-Name: valor default alterado de "{pdvSystemName}"""
  • Descrição de username e password no OpenAPI: "CRMBonus""crmbonus" (capitalização)
  • Descriptions adicionadas nos campos de resposta do schema OpenAPI: access_token, access_token_expires_in, refresh_token, refresh_token_expires_in
  • Header User-Agent: descrição adicionada no OpenAPI

Removido

  • Campo request_hash do Dicionário de Dados — campo inconsistente, não existia no schema OpenAPI nem no exemplo de resposta
  • Header Content-Type removido dos parâmetros do OpenAPI (era obrigatório, agora implícito)
  • Propriedades title, favicon, image e provider do componente <Embed> do YouTube

Agora é possível escolher o canal de reenvio do PIN

Adicionamos o header X-Channel-Retry-Send-Pin ao endpoint /enviar_pin. Com ele, você define qual canal será utilizado para reenviar o PIN ao cliente — por padrão, o reenvio ocorre de acordo com o canal configurado internamente.

🚧

In progress

Atualmente, apenas o valor whatsapp está disponível para esse header.


Exemplo de requisição

Inclua o header X-Channel-Retry-Send-Pin: whatsapp na requisição ao POST /enviar_pin para que o PIN seja reenviado via WhatsApp ao invés do canal padrão.

curl --request POST \
     --url https://giftback-sandbox.crmbonus.com/apiEcommerce/enviar_pin \
     --header 'Authorization: {{auth_code}}' \
     --header 'CodEmpresa: {{cod_empresa}}' \
     --header 'Content-Type: application/json' \
     --header 'System-Name: {systemName}' \
     --header 'X-Channel-Retry-Send-Pin: whatsapp' \
     --header 'accept: application/json' \
     --data '
{
  "nome": "João Silva",
  "celular": 11985728710,
  "cpf": "40541655086",
  "email": "[email protected]",
  "nascimento": "30-12-1990"
}
'

Agora é possível estornar um bônus

Em caso de devolução e compra simultânea, o bônus da transação original é estornado para ser reaproveitado como desconto no novo item.


cURL e response exemplo

curl --request POST \
     --url https://giftback-sandbox.crmbonus.com/pages/api_estornar_compra \
     --header 'Authorization: Código fornecido pelo T.I. do CRM&Bônus;' \
     --header 'Celular: Número de celular do cliente.' \
     --header 'CodEmpresa: Código fornecido pelo T.I. do CRM&Bônus;' \
     --header 'Content-Type: application/json' \
     --header 'accept: application/json' \
     --data '
{
  "bonus_id": 123,
  "order_id": 123,
  "total_estorno": 10,
  "nr_pedido": "123",
  "restricao_horario": false,
  "sms": "SANDBOX: PIN 7873 -  -"
}
'
{
  "status": true,
  "message": "sucesso",
  "data": {
    "bonus_id": 135960899,
    "order_id": 129385214
  }
}