MENU navbar-image

Introducción

Documentación técnica de integración con e-Rewards API

Autenticación

Para poder solicitar los recursos de esta API, es necesario obtener un TOKEN de acceso. Este TOKEN, se obtiene realizando una petición POST a /oauth/token:

CON EL HEADER

Y ESTOS PARÁMETROS

Si los datos de acceso son correctos, se devolverá un access_token con expiración de un año. Este token deberá ser includo para cada petición en el header "Authorization" junto con "Content-type", de la siguiente forma:

Si las claves de acceso son incorrectas, o alguno de los datos provistos (indicados arriba) no es correcto, se devolvera una respuesta de error con estatus 400 ó 401.

Recurso: Actividades

Listar Actividades

requires authentication

Request de ejemplo:
curl --request GET \
    --get "https://v2.apierewards.adventa.solutions/api/actividades" \
    --header "Authorization: Bearer <token>" \
    --header "Accept: application/json" \
    --header "Content-Type: application/json"
$client = new \GuzzleHttp\Client();
$url = 'https://v2.apierewards.adventa.solutions/api/actividades';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer <token>',
            'Accept' => 'application/json',
            'Content-Type' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://v2.apierewards.adventa.solutions/api/actividades"
);

const headers = {
    "Authorization": "Bearer &lt;token&gt;",
    "Accept": "application/json",
    "Content-Type": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
import requests
import json

url = 'https://v2.apierewards.adventa.solutions/api/actividades'
headers = {
  'Authorization': 'Bearer &lt;token&gt;',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Response de ejemplo (200):


{
    "success": true,
    "actividades": [
        {
            "id": 1,
            "actividadId": 1,
            "nombre": "Canje"
        }
    ]
}
 

Response de ejemplo (401):


{
    "message": "Unauthorized, access token invalido"
}
 

Response de ejemplo (422):


{
    "message": "The data given was invalid, el cuerpo de la solicitud es incorrecto"
}
 

Response de ejemplo (500):


{
    "message": "Server error"
}
 

Request      

GET api/actividades

Headers

Authorization      

Example: Bearer <token>

Accept      

Example: application/json

Content-Type      

Example: application/json

Recurso: Canjes

Consulta de reenvio de canjes

requires authentication

Request de ejemplo:
curl --request GET \
    --get "https://v2.apierewards.adventa.solutions/api/canjes/reenvios" \
    --header "Authorization: Bearer &lt;token&gt;" \
    --header "Accept: application/json" \
    --header "Content-Type: application/json" \
    --data "{
    \"uids_erewards\": \"4433322,443321\",
    \"id_catalogo\": 5,
    \"paginate\": true
}"
$client = new \GuzzleHttp\Client();
$url = 'https://v2.apierewards.adventa.solutions/api/canjes/reenvios';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer <token>',
            'Accept' => 'application/json',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'uids_erewards' => '4433322,443321',
            'id_catalogo' => 5.0,
            'paginate' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://v2.apierewards.adventa.solutions/api/canjes/reenvios"
);

const headers = {
    "Authorization": "Bearer &lt;token&gt;",
    "Accept": "application/json",
    "Content-Type": "application/json",
};

let body = {
    "uids_erewards": "4433322,443321",
    "id_catalogo": 5,
    "paginate": true
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://v2.apierewards.adventa.solutions/api/canjes/reenvios'
payload = {
    "uids_erewards": "4433322,443321",
    "id_catalogo": 5,
    "paginate": true
}
headers = {
  'Authorization': 'Bearer &lt;token&gt;',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Response de ejemplo (200):


{
  "success": true,
  "data": {
      "list": [
          {
              "canje_id": 447743,
              "remaining_attempts": "5",
              "resend_count": 4,
              "max_resend_allowed": 9,
              "vigencia_attempts": 90,
              "reenvios": [
                  {
                      "id": 10607,
                      "correo": "user@gmail.com",
                      "celular": null,
                      "enviado_por": 1,
                      "es_spi": false,
                      "pedido_id": 447743,
                      "fecha_creacion": "2024-10-21 15:31:08",
                      "total_sms_enviados": 0,
                      "first_name": "Romulo",
                      "last_name": "Opulento",
                      "api_username_requester": "administrator",
                      "helpdesk_ticket_number": 2233311,
                      "requested_from_adbox": true,
                      "readable_created_at": "lunes 21 de octubre 2024, a las 03:31p. m."
                  },
              ]
          }
      ]
  }
}
 

Response de ejemplo (401):


{
    "message": "Unauthorized, access token invalido"
}
 

Response de ejemplo (422):


{
    "message": "The data given was invalid, parámetros de consulta no válidos"
}
 

Response de ejemplo (500):


{
    "message": "Server error"
}
 

Request      

GET api/canjes/reenvios

Headers

Authorization      

Example: Bearer <token>

Accept      

Example: application/json

Content-Type      

Example: application/json

Parámetros de body

uids_erewards   string  optional  

Requerido solo si "id_catalogo" es nulo. Son los IDs de canje de eRewards. Para consultar mas de uno, se deben separar por comas ej. "1,2,3". Si son muchos uids, pueden enviarse por el body. This field is required when id_catalogo is not present. Example: 4433322,443321

id_catalogo   number  optional  

Requerido solo si "uids_erewards" es nulo. Filtra por el ID del catálogo. This field is required when uids_erewards is not present. The pmr_id of an existing record in the pmr table. Example: 5

paginate   boolean  optional  

Define si la respuesta debe paginarse o no, valores validos: "1" o "0". Example: true

Reenvío de canjes

requires authentication

Request de ejemplo:
curl --request POST \
    "https://v2.apierewards.adventa.solutions/api/canjes/reenvios" \
    --header "Authorization: Bearer &lt;token&gt;" \
    --header "Accept: application/json" \
    --header "Content-Type: application/json" \
    --data "{
    \"data\": \"{\\\"uidErewards\\\": 321442,\\\"email\\\": \\\"some@mail.com\\\",\\\"mobile\\\": \\\"3317210477\\\",\\\"userFirstName\\\": \\\"John\\\",\\\"userLastName\\\": \\\"Doe\\\", \\\"ticketNumber\\\": \\\"123\\\" }\"
}"
$client = new \GuzzleHttp\Client();
$url = 'https://v2.apierewards.adventa.solutions/api/canjes/reenvios';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer <token>',
            'Accept' => 'application/json',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'data' => '{"uidErewards": 321442,"email": "some@mail.com","mobile": "3317210477","userFirstName": "John","userLastName": "Doe", "ticketNumber": "123" }',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://v2.apierewards.adventa.solutions/api/canjes/reenvios"
);

const headers = {
    "Authorization": "Bearer &lt;token&gt;",
    "Accept": "application/json",
    "Content-Type": "application/json",
};

let body = {
    "data": "{\"uidErewards\": 321442,\"email\": \"some@mail.com\",\"mobile\": \"3317210477\",\"userFirstName\": \"John\",\"userLastName\": \"Doe\", \"ticketNumber\": \"123\" }"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://v2.apierewards.adventa.solutions/api/canjes/reenvios'
payload = {
    "data": "{\"uidErewards\": 321442,\"email\": \"some@mail.com\",\"mobile\": \"3317210477\",\"userFirstName\": \"John\",\"userLastName\": \"Doe\", \"ticketNumber\": \"123\" }"
}
headers = {
  'Authorization': 'Bearer &lt;token&gt;',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Response de ejemplo (200):


{
    "success": true,
    "message": "El canje 117891 fue reenviado con éxito",
    "data": {
        "canje_id": 117891,
        "remaining_attempts": 0,
        "resend_count": 3,
        "max_resend_allowed": 3,
        "vigencia_attempts": 90
    }
}
 

Response de ejemplo (401):


{
    "message": "Unauthorized, access token invalido"
}
 

Response de ejemplo (403):


{
    "success": false,
    "message": "El canje 447744 supero el limite de reenvios permitidos o excedio la fecha de vigencia de reenvio",
    "data": null,
    "errors": [
        {
            "canje_id": 447744,
            "exceeded_resend_attemps": false,
            "exceeded_resend_due_days": false,
            "days_elapsed_from_swap": 2,
            "is_fake": false,
            "has_repeated_email_twice": true,
            "has_repeated_phone_twice": false
        }
    ]
}
 

Response de ejemplo (422):


{
    "message": "The data given was invalid, el cuerpo de la solicitud es incorrecto"
}
 

Response de ejemplo (500):


{
    "message": "Server error"
}
 

Request      

POST api/canjes/reenvios

Headers

Authorization      

Example: Bearer <token>

Accept      

Example: application/json

Content-Type      

Example: application/json

Parámetros de body

data   string   

Todos los keys dentro del "data" son mandatorios, exepto email y mobile. Si se envia SOLO "email", solo se envia email; si se envia SOLO "mobile", solo se envia sms; si se envian ambos, se envia email y sms. El nombre y apellido se usa para personalizar la notificacion de reevío. Example: {"uidErewards": 321442,"email": "some@mail.com","mobile": "3317210477","userFirstName": "John","userLastName": "Doe", "ticketNumber": "123" }

uidErewards   number   

The canje_id of an existing record in the canje table. Example: 4326.41688

email   string  optional  

This field is required when data.mobile is not present. El campo value debe ser una dirección de correo válida. Example: rempel.chadrick@example.org

mobile   string  optional  

This field is required when data.email is not present. El campo value debe ser un número de 10 dígitos. Example: 8225697751

userFirstName   string   

Example: architecto

userLastName   string   

Example: architecto

ticketNumber   number  optional  

Example: 4326.41688

Actualizar num. de pedidos SAP

requires authentication

Request de ejemplo:
curl --request POST \
    "https://v2.apierewards.adventa.solutions/api/canjes/establecer-numeros-sap" \
    --header "Authorization: Bearer &lt;token&gt;" \
    --header "Accept: application/json" \
    --header "Content-Type: application/json" \
    --data "{
    \"numerosSap\": [
        {
            \"canjeId\": 1,
            \"noPedidoSap\": 22
        }
    ]
}"
$client = new \GuzzleHttp\Client();
$url = 'https://v2.apierewards.adventa.solutions/api/canjes/establecer-numeros-sap';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer <token>',
            'Accept' => 'application/json',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'numerosSap' => [
                [
                    'canjeId' => 1,
                    'noPedidoSap' => 22,
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://v2.apierewards.adventa.solutions/api/canjes/establecer-numeros-sap"
);

const headers = {
    "Authorization": "Bearer &lt;token&gt;",
    "Accept": "application/json",
    "Content-Type": "application/json",
};

let body = {
    "numerosSap": [
        {
            "canjeId": 1,
            "noPedidoSap": 22
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://v2.apierewards.adventa.solutions/api/canjes/establecer-numeros-sap'
payload = {
    "numerosSap": [
        {
            "canjeId": 1,
            "noPedidoSap": 22
        }
    ]
}
headers = {
  'Authorization': 'Bearer &lt;token&gt;',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Response de ejemplo (200):


{
    "success": true,
    "message": "Se actualizaron 2 canjes",
    "data": {
        "canjes_actualizados": 2
    }
}
 

Response de ejemplo (401):


{
    "message": "Unauthorized, access token invalido"
}
 

Response de ejemplo (422):


{
    "message": "The data given was invalid, el cuerpo de la solicitud es incorrecto"
}
 

Response de ejemplo (500):


{
    "message": "Server error"
}
 

Request      

POST api/canjes/establecer-numeros-sap

Headers

Authorization      

Example: Bearer <token>

Accept      

Example: application/json

Content-Type      

Example: application/json

Parámetros de body

numerosSap   object[]   

Los nuevos pedidos de SAP en formato JSON. Si no se incluye el key "canjeId" o "noPedidoSap" en el item, será omitido.

canjeId   number   

El campo value no debe ser mayor a 9999999999. Example: 1

noPedidoSap   number   

El campo value no debe ser mayor a 9999999999. Example: 22

Realizar Pedido

requires authentication

Request de ejemplo:
curl --request POST \
    "https://v2.apierewards.adventa.solutions/api/pedidos" \
    --header "Authorization: Bearer &lt;token&gt;" \
    --header "Accept: application/json" \
    --header "Content-Type: application/json" \
    --data "{
    \"numeroAcuerdoSap\": 144,
    \"catalogoId\": 5,
    \"actividadId\": 1,
    \"usuarioId\": 3,
    \"nombre\": \"Juan\",
    \"apellido\": \"Rodriguez\",
    \"email\": \"juanito@gmail.com\",
    \"celular\": \"3321234123\",
    \"enviarEmail\": false,
    \"enviarSms\": false,
    \"numeroPedidoSap\": 661122,
    \"pedido\": \"[{\\\"incentivoId\\\": \\\"CIN-1\\\", \\\"cantidad\\\": 2, \\\"ids_unicos_canje\\\": [\\\"iduc_1\\\", \\\"iduc_2\\\"]}]\",
    \"orderId\": 501122,
    \"redeem_webhook_url\": \"https:\\/\\/adbox.com\\/api\\/callback\",
    \"redeem_webhook_key\": \"APIKEY_SECRETA_1234\",
    \"onHold\": false
}"
$client = new \GuzzleHttp\Client();
$url = 'https://v2.apierewards.adventa.solutions/api/pedidos';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer <token>',
            'Accept' => 'application/json',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'numeroAcuerdoSap' => 144.0,
            'catalogoId' => 5.0,
            'actividadId' => 1,
            'usuarioId' => 3.0,
            'nombre' => 'Juan',
            'apellido' => 'Rodriguez',
            'email' => 'juanito@gmail.com',
            'celular' => '3321234123',
            'enviarEmail' => false,
            'enviarSms' => false,
            'numeroPedidoSap' => 661122.0,
            'pedido' => '[{"incentivoId": "CIN-1", "cantidad": 2, "ids_unicos_canje": ["iduc_1", "iduc_2"]}]',
            'orderId' => 501122.0,
            'redeem_webhook_url' => 'https://adbox.com/api/callback',
            'redeem_webhook_key' => 'APIKEY_SECRETA_1234',
            'onHold' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://v2.apierewards.adventa.solutions/api/pedidos"
);

const headers = {
    "Authorization": "Bearer &lt;token&gt;",
    "Accept": "application/json",
    "Content-Type": "application/json",
};

let body = {
    "numeroAcuerdoSap": 144,
    "catalogoId": 5,
    "actividadId": 1,
    "usuarioId": 3,
    "nombre": "Juan",
    "apellido": "Rodriguez",
    "email": "juanito@gmail.com",
    "celular": "3321234123",
    "enviarEmail": false,
    "enviarSms": false,
    "numeroPedidoSap": 661122,
    "pedido": "[{\"incentivoId\": \"CIN-1\", \"cantidad\": 2, \"ids_unicos_canje\": [\"iduc_1\", \"iduc_2\"]}]",
    "orderId": 501122,
    "redeem_webhook_url": "https:\/\/adbox.com\/api\/callback",
    "redeem_webhook_key": "APIKEY_SECRETA_1234",
    "onHold": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://v2.apierewards.adventa.solutions/api/pedidos'
payload = {
    "numeroAcuerdoSap": 144,
    "catalogoId": 5,
    "actividadId": 1,
    "usuarioId": 3,
    "nombre": "Juan",
    "apellido": "Rodriguez",
    "email": "juanito@gmail.com",
    "celular": "3321234123",
    "enviarEmail": false,
    "enviarSms": false,
    "numeroPedidoSap": 661122,
    "pedido": "[{\"incentivoId\": \"CIN-1\", \"cantidad\": 2, \"ids_unicos_canje\": [\"iduc_1\", \"iduc_2\"]}]",
    "orderId": 501122,
    "redeem_webhook_url": "https:\/\/adbox.com\/api\/callback",
    "redeem_webhook_key": "APIKEY_SECRETA_1234",
    "onHold": false
}
headers = {
  'Authorization': 'Bearer &lt;token&gt;',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Response de ejemplo (200):


{
    "success": true,
    "message": "",
    "order": "74459dcf-04fc-4c6f-ac04-a427adfee7c8",
    "detail": [
        {
            "proveedorId": 1,
            "incentivoId": "CIN-1",
            "sku": "154685",
            "nombre": "Entrada 2D L-D",
            "message": "",
            "codigos": [
                {
                    "descripcion": "Boleto Tradicional 2D Lunes a Domingo",
                    "instruccion": null,
                    "restriccion": null,
                    "duracion": null,
                    "debesSaber": null,
                    "personas": 1,
                    "incluye": null,
                    "ubicacion": null,
                    "imagen": null,
                    "pedidoId": null,
                    "codigo": "En proceso",
                    "pin": "En proceso",
                    "cantidad": 1,
                    "vigencia": "En proceso",
                    "voucherCode": null,
                    "precio": 65.05,
                    "moneda": "MXN",
                    "operacionId": "cc3961b8-7eac-404f-9b74-2fa398e42caf",
                    "numeroSerie": "b3bfb024-528b-426c-9bac-c7d8c652516a",
                    "proveedorId": 1,
                    "puntos": 195,
                    "canjeId": 1994,
                    "fechaEnvioCorreo": "2012-12-12 04:20:00",
                    "user_due_date": "En proceso"
                }
            ],
            "codigosExitosos": 1,
            "codigosFallados": 0
        }
    ]
}
 

Response de ejemplo (401):


{
    "message": "Unauthorized, access token invalido"
}
 

Response de ejemplo (403):


{
    "message": "Forbidden, sin permisos para realizar el canje"
}
 

Response de ejemplo (422):


{
    "message": "The data given was invalid, el cuerpo de la solicitud es incorrecto"
}
 

Response de ejemplo (500):


{
    "message": "Server error"
}
 

Request      

POST api/pedidos

Headers

Authorization      

Example: Bearer <token>

Accept      

Example: application/json

Content-Type      

Example: application/json

Parámetros de body

numeroAcuerdoSap   number  optional  

No. de acuerdo SAP. Es requerido si no se especifica catalogoId. This field is required when catalogoId is not present. Example: 144

catalogoId   number  optional  

ID del catálogo. Es requerido si no se especifica numeroAcuerdoSap. Al solicitar las credenciales de autenticación, solicitar tambien el ID del catálogo. Importante: el api user esta ligado a un catálogo y solo podrá canjear incentivos del mismo. Si es necesario realizar canjes de otros catálogos, deberá solicitarse a soporte agregar permisos adicionales de canje. Example: 5. This field is required when numeroAcuerdoSap is not present. Example: 5

actividadId   string  optional  

ID de actividad. Opcional, por defecto "1" (actividad de canje). Example: 1

usuarioId   number   

ID del usuario que solicita. Example: 3

nombre   string   

Nombre del usuario que solicita. El campo value no debe contener más de 255 caracteres. Example: Juan

apellido   string   

Apellido del usuario que solicita. El campo value no debe contener más de 255 caracteres. Example: Rodriguez

email   string   

Email del usuario que solicita. El campo value debe ser una dirección de correo válida. El campo value no debe contener más de 255 caracteres. Example: juanito@gmail.com

celular   string  optional  

Celular del usuario que solicita a 10 dígitos. This field is required when enviarSms is 1. El campo value debe ser un número de 10 dígitos. Example: 3321234123

enviarEmail   boolean   

Define si se enviarán los códigos por correo electrónico. Example: false

enviarSms   boolean  optional  

Definir si se enviarán los códigos por SMS. Example: false

numeroPedidoSap   number  optional  

Numero del pedido SAP. Es para uso interno de Adventa y puede omitirse. Example: 661122

pedido   string   

El pedido en si mismo en formato JSON string. IncentivoId puede recibir el formato "CIN-000" / "MAN-000" ó el código de SAP correspondiente (ej. 661866420). Example: [{"incentivoId": "CIN-1", "cantidad": 2, "ids_unicos_canje": ["iduc_1", "iduc_2"]}]

orderId   number  optional  

Numero de orden Adbox. Es para uso interno de Adventa y puede omitirse. Example: 501122

dueDate   string  optional  

Define un tipo de vigencia. Valores permitidos: "default"(vigencio original del folio), "product" (vigencia del producto, definida en eRewards backend, suele ser falsa), "manual" (igual que product pero se ingresa manualmente). Por defecto será enviada la vigencia tipo "product".

Must be one of:
  • default
  • product
  • manual
dueDateText   string  optional  

Define la vigencia manual. Es mandatorio solamente si el parametro dueDate = manual. This field is required when dueDate is manual.

inBlockRequestedBy   string  optional  

Uso interno. Define el solicitante del envio en bloques. Es opcional.

swapUidBypassed   string  optional  

Uso interno. Define si el campo ids_unicos_canje dentro del campo pedido será omitido. Es opcional.

redeem_webhook_url   string  optional  

URL del webhook a donde eRewards mandará la confirmación de entrega del canje con los datos parcialmente cubiertos (Código: ***345). This field is required when redeem_webhook_key is present. Must be a valid URL. Example: https://adbox.com/api/callback

redeem_webhook_key   string  optional  

API key del webhook a donde eRewards mandará la confirmación de entrega del canje. Se usa en conjunto con "redeem_webhook_url". This field is required when redeem_webhook_url is present. El campo value debe contener al menos 4 caracteres. El campo value no debe contener más de 200 caracteres. Example: APIKEY_SECRETA_1234

onHold   boolean  optional  

Define si el canje estará en espera (para envío posterior). Es opcional. Example: false

Recurso: Categorías

Listar Categorías

requires authentication

Request de ejemplo:
curl --request GET \
    --get "https://v2.apierewards.adventa.solutions/api/categorias" \
    --header "Authorization: Bearer &lt;token&gt;" \
    --header "Accept: application/json" \
    --header "Content-Type: application/json"
$client = new \GuzzleHttp\Client();
$url = 'https://v2.apierewards.adventa.solutions/api/categorias';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer <token>',
            'Accept' => 'application/json',
            'Content-Type' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://v2.apierewards.adventa.solutions/api/categorias"
);

const headers = {
    "Authorization": "Bearer &lt;token&gt;",
    "Accept": "application/json",
    "Content-Type": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
import requests
import json

url = 'https://v2.apierewards.adventa.solutions/api/categorias'
headers = {
  'Authorization': 'Bearer &lt;token&gt;',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Response de ejemplo (200):


{
    "success": true,
    "categorias": [
        {
            "id": 1,
            "categoriaId": 1,
            "nombre": "Experiencias",
            "descripcion": "Experiencias de Experimenta"
        }
    ]
}
 

Response de ejemplo (401):


{
    "message": "Unauthorized, access token invalido"
}
 

Response de ejemplo (422):


{
    "message": "The data given was invalid, el cuerpo de la solicitud es incorrecto"
}
 

Response de ejemplo (500):


{
    "message": "Server error"
}
 

Request      

GET api/categorias

Headers

Authorization      

Example: Bearer <token>

Accept      

Example: application/json

Content-Type      

Example: application/json

Recurso: Catálogos

Listar Catálogos

requires authentication

Request de ejemplo:
curl --request GET \
    --get "https://v2.apierewards.adventa.solutions/api/catalogos-electronicos" \
    --header "Authorization: Bearer &lt;token&gt;" \
    --header "Accept: application/json" \
    --header "Content-Type: application/json"
$client = new \GuzzleHttp\Client();
$url = 'https://v2.apierewards.adventa.solutions/api/catalogos-electronicos';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer <token>',
            'Accept' => 'application/json',
            'Content-Type' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://v2.apierewards.adventa.solutions/api/catalogos-electronicos"
);

const headers = {
    "Authorization": "Bearer &lt;token&gt;",
    "Accept": "application/json",
    "Content-Type": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
import requests
import json

url = 'https://v2.apierewards.adventa.solutions/api/catalogos-electronicos'
headers = {
  'Authorization': 'Bearer &lt;token&gt;',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Response de ejemplo (200):


{
      "success": true,
      "catalogosElectronicos": [
          {
              "id": 50
              "catalagoId": 50,
              "nombre": "erewards",
              "factorConversionPuntos": 3,
              "fee": 0.2,
              "costoSms": 1.05,
              "comisionBanco": 0,
              "otrosCostos": 1,
              "tipo": "PMR",
              "estatus": true
          }]
 }
 

Response de ejemplo (401):


{
    "message": "Unauthorized, access token invalido"
}
 

Response de ejemplo (422):


{
    "message": "The data given was invalid, el cuerpo de la solicitud es incorrecto"
}
 

Response de ejemplo (500):


{
    "message": "Server error"
}
 

Request      

GET api/catalogos-electronicos

Headers

Authorization      

Example: Bearer <token>

Accept      

Example: application/json

Content-Type      

Example: application/json

Recurso: Productos

Listar Productos

requires authentication

Request de ejemplo:
curl --request GET \
    --get "https://v2.apierewards.adventa.solutions/api/incentivos" \
    --header "Authorization: Bearer &lt;token&gt;" \
    --header "Accept: application/json" \
    --header "Content-Type: application/json" \
    --data "{
    \"catalogoId\": 3
}"
$client = new \GuzzleHttp\Client();
$url = 'https://v2.apierewards.adventa.solutions/api/incentivos';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer <token>',
            'Accept' => 'application/json',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'catalogoId' => 3.0,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://v2.apierewards.adventa.solutions/api/incentivos"
);

const headers = {
    "Authorization": "Bearer &lt;token&gt;",
    "Accept": "application/json",
    "Content-Type": "application/json",
};

let body = {
    "catalogoId": 3
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://v2.apierewards.adventa.solutions/api/incentivos'
payload = {
    "catalogoId": 3
}
headers = {
  'Authorization': 'Bearer &lt;token&gt;',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Response de ejemplo (200):


{
    "success": true,
    "incentivos": [
        {
            "incentivoId": "MAN-211",
            "proveedorId": 17,
            "categoriaId": 6,
            "clasificacion": "Códigos electrónicos",
            "sku": "CU005460",
            "nombre": "Tarjeta de regalo digital Starbucks $400 pesos",
            "marca": "Starbucks",
            "descripcion": "Tarjeta de regalo digital Starbucks $400 pesos. Tu código debe ser registrado en la aplicación de Starbucks para que puede ser utilizado como medio de pago en compras realizadas en tiendas. Consulta las instrucciones aquí --->>https://rewards.adventa.solutions\r\n",
            "instruccion": "1.\tDescarga la app \r\n2.\tSelecciona el dispositivo \r\n3.\tIngresa a tu cuenta o regístrate \r\n4.\tVe al apartado de ¨escanea¨\r\n5.\tAgrega la tarjeta en el botón + superior derecho\r\n6.\tAcude a tu sucursal y paga con el saldo de tu tarjeta",
            "restriccion": "La tarjeta de regalo digital Starbucks sólo puede ser utilizada como medio de pago en \r\ncompras realizadas en tiendas participantes (consulta en nuestra página web \r\nhttps://www.starbucks.com.mx/ la lista). Esta tarjeta/folio no es de crédito. No puede \r\nser canjeado por dinero en efectivo.",
            "ubicacion": null,
            "duracion": null,
            "personas": null,
            "actividad": null,
            "incluye": null,
            "considerar": null,
            "precio": 344.8,
            "ajustePrecio": 0.5,
            "precioVenta": 344.8,
            "precioVentaMasAjuste": 345.3,
            "precioVentaIntegrado": 392.9655,
            "precio_venta_integrado": 392.9655,
            "costo_producto": 320.7,
            "fee": 0.135,
            "tipo_producto": "incentivo",
            "moneda": "MXN",
            "puntos": 1962,
            "imagen": "https://e-rewards-images.s3.amazonaws.com/CU005460.jpg",
            "paquete": false,
            "cantidad": 0,
            "latitud": null,
            "longitud": null,
            "stock": 30,
            "unlimited": false,
            "codigo_sap": "661866679",
            "imagenesEspecificas": [
                "https://prod.erewards.adventa.solutions/variant-images/657342445273a65734244527e2.jpg",
                "https://prod.erewards.adventa.solutions/variant-images/65734244528e4657342445298b.jpg"
            ],
            "descripcionCortaEspecifica": "",
            "descripcionLargaEspecifica": "",
            "monto": 344.8,
            "joyBrandId": 0,
            "joyBrandName": ""
        }
    ]
}
 

Response de ejemplo (401):


{
    "message": "Unauthorized, access token invalido"
}
 

Response de ejemplo (403):


{
    "message": "Forbidden, no tiene permisos para consultar la informacion"
}
 

Response de ejemplo (422):


{
    "message": "The data given was invalid, el cuerpo de la solicitud es incorrecto"
}
 

Response de ejemplo (500):


{
    "message": "Server error"
}
 

Request      

GET api/incentivos

Headers

Authorization      

Example: Bearer <token>

Accept      

Example: application/json

Content-Type      

Example: application/json

Parámetros de body

catalogoId   number   

Al ser especificado, filtrará por el Id del catálogo. Cada API user podrá visualizar unicamente los incentivos del catálogo al que pertenece. Si es necesario consultar incentivos de otros catálogos, debera solicitarse a soporte para establecer permisos adicionales de consulta. The pmr_id of an existing record in the pmr table. Example: 3

Recurso: Proveedores

Listar Proveedores

requires authentication

Request de ejemplo:
curl --request GET \
    --get "https://v2.apierewards.adventa.solutions/api/proveedores" \
    --header "Authorization: Bearer &lt;token&gt;" \
    --header "Accept: application/json" \
    --header "Content-Type: application/json"
$client = new \GuzzleHttp\Client();
$url = 'https://v2.apierewards.adventa.solutions/api/proveedores';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer <token>',
            'Accept' => 'application/json',
            'Content-Type' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://v2.apierewards.adventa.solutions/api/proveedores"
);

const headers = {
    "Authorization": "Bearer &lt;token&gt;",
    "Accept": "application/json",
    "Content-Type": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
import requests
import json

url = 'https://v2.apierewards.adventa.solutions/api/proveedores'
headers = {
  'Authorization': 'Bearer &lt;token&gt;',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Response de ejemplo (200):


{
    "success": true,
    "proveedores": [
        {
            "id": 1,
            "proveedorId": 1,
            "nombre": "Cinépolis",
            "terminosCondiciones": "Términos y condiciones https://bit.ly/2VjNoZk"
        }
    ]
}
 

Response de ejemplo (401):


{
    "message": "Unauthorized, access token invalido"
}
 

Response de ejemplo (422):


{
    "message": "The data given was invalid, el cuerpo de la solicitud es incorrecto"
}
 

Response de ejemplo (500):


{
    "message": "Server error"
}
 

Request      

GET api/proveedores

Headers

Authorization      

Example: Bearer <token>

Accept      

Example: application/json

Content-Type      

Example: application/json