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

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

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => 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

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer <access_token>

Recurso: Canjes

Consulta de reenvio de canjes

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

const params = {
    "uids_erewards": "4433322,443321",
    "id_catalogo": "5",
    "paginate": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

let body = {
    "id_catalogo": 4326.41688,
    "paginate": false
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => 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

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer <access_token>

Parámetros de query

uids_erewards   string   

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. Example: 4433322,443321

id_catalogo   string   

Requerido solo si "uids_erewards" es nulo. Filtra por el ID del catálogo. Example: 5

paginate   string  optional  

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

Parámetros de body

uids_erewards   string  optional  

This field is required when id_catalogo is not present.

id_catalogo   number  optional  

This field is required when uids_erewards is not present. The pmr_id of an existing record in the pmr table. Example: 4326.41688

paginate   boolean  optional  

Example: false

Reenvío de canjes

Request de ejemplo:
curl --request POST \
    "https://v2.apierewards.adventa.solutions/api/canjes/reenvios" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer &lt;access_token&gt;" \
    --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' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer <access_token>',
        ],
        '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 = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer &lt;access_token&gt;",
};

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());

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

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer <access_token>

Parámetros de body

data   json  optional  

required. 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

Request de ejemplo:
curl --request POST \
    "https://v2.apierewards.adventa.solutions/api/canjes/establecer-numeros-sap" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer &lt;access_token&gt;" \
    --data "{
    \"numerosSap\": \"[{\\\"numerosSap\\\": [{\\\"canjeId\\\": 123, \\\"noPedidoSap\\\": 123},{\\\"canjeId\\\": 321, \\\"noPedidoSap\\\": 321}]\"
}"
$client = new \GuzzleHttp\Client();
$url = 'https://v2.apierewards.adventa.solutions/api/canjes/establecer-numeros-sap';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer <access_token>',
        ],
        'json' => [
            'numerosSap' => '[{"numerosSap": [{"canjeId": 123, "noPedidoSap": 123},{"canjeId": 321, "noPedidoSap": 321}]',
        ],
    ]
);
$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 = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer &lt;access_token&gt;",
};

let body = {
    "numerosSap": "[{\"numerosSap\": [{\"canjeId\": 123, \"noPedidoSap\": 123},{\"canjeId\": 321, \"noPedidoSap\": 321}]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => 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

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer <access_token>

Parámetros de body

numerosSap   string   

Los nuevos pedidos de SAP en formato JSON. Si no se incluye el key "canjeId" o "noPedidoSap" en el item, será omitido. Example: [{"numerosSap": [{"canjeId": 123, "noPedidoSap": 123},{"canjeId": 321, "noPedidoSap": 321}]

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

Request de ejemplo:
curl --request POST \
    "https://v2.apierewards.adventa.solutions/api/pedidos" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer &lt;access_token&gt;" \
    --data "{
    \"numeroAcuerdoSap\": 16,
    \"catalogoId\": 5,
    \"usuarioId\": 3,
    \"nombre\": \"Juan\",
    \"apellido\": \"Perez\",
    \"email\": \"juan.perez@gmail.com\",
    \"celular\": \"3326741051\",
    \"enviarEmail\": true,
    \"enviarSms\": true,
    \"numeroPedidoSap\": 661122,
    \"pedido\": \"[{\\\"incentivoId\\\": \\\"CIN-1\\\", \\\"cantidad\\\": 2, \\\"ids_unicos_canje\\\": [\\\"iduc_1\\\", \\\"iduc_2\\\"]}]\",
    \"orderId\": 501122,
    \"redeem_webhook_url\": \"http:\\/\\/bailey.com\\/\",
    \"redeem_webhook_key\": \"m\"
}"
$client = new \GuzzleHttp\Client();
$url = 'https://v2.apierewards.adventa.solutions/api/pedidos';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer <access_token>',
        ],
        'json' => [
            'numeroAcuerdoSap' => 16,
            'catalogoId' => 5,
            'usuarioId' => 3,
            'nombre' => 'Juan',
            'apellido' => 'Perez',
            'email' => 'juan.perez@gmail.com',
            'celular' => '3326741051',
            'enviarEmail' => true,
            'enviarSms' => true,
            'numeroPedidoSap' => 661122,
            'pedido' => '[{"incentivoId": "CIN-1", "cantidad": 2, "ids_unicos_canje": ["iduc_1", "iduc_2"]}]',
            'orderId' => 501122,
            'redeem_webhook_url' => 'http://bailey.com/',
            'redeem_webhook_key' => 'm',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://v2.apierewards.adventa.solutions/api/pedidos"
);

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

let body = {
    "numeroAcuerdoSap": 16,
    "catalogoId": 5,
    "usuarioId": 3,
    "nombre": "Juan",
    "apellido": "Perez",
    "email": "juan.perez@gmail.com",
    "celular": "3326741051",
    "enviarEmail": true,
    "enviarSms": true,
    "numeroPedidoSap": 661122,
    "pedido": "[{\"incentivoId\": \"CIN-1\", \"cantidad\": 2, \"ids_unicos_canje\": [\"iduc_1\", \"iduc_2\"]}]",
    "orderId": 501122,
    "redeem_webhook_url": "http:\/\/bailey.com\/",
    "redeem_webhook_key": "m"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => 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

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer <access_token>

Parámetros de body

numeroAcuerdoSap   integer   

No. de acuerdo SAP. Es requerido si no se especifica catalogoId. Example: 16

catalogoId   integer   

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

actividadId   string  optional  
usuarioId   integer   

ID del usuario que solicita. Example: 3

nombre   string   

Nombre del usuario que solicita. Example: Juan

apellido   string   

Apellido del usuario que solicita. Example: Perez

email   string   

Email del usuario que solicita. Example: juan.perez@gmail.com

celular   string   

Número de Celular del usuario que solicita. Example: 3326741051

enviarEmail   boolean   

Definir si se enviarán los códigos por correo. Example: true

enviarSms   boolean   

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

numeroPedidoSap   integer  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   integer  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".

dueDateText   string  optional  

Define la vigencia manual. Es mandatorio solamente si el parametro dueDate = 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  

This field is required when redeem_webhook_key is present. Must be a valid URL. Example: http://bailey.com/

redeem_webhook_key   string  optional  

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: m

Recurso: Categorías

Listar Categorías

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

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => 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

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer <access_token>

Recurso: Catálogos

Listar Catálogos

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

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => 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

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer <access_token>

Recurso: Productos

Listar Productos

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

const params = {
    "catalogoId": "5",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

let body = {
    "catalogoId": 4326.41688
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => 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

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer <access_token>

Parámetros de query

catalogoId   string   

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. Example: 5

Parámetros de body

catalogoId   number   

The pmr_id of an existing record in the pmr table. Example: 4326.41688

Recurso: Proveedores

Listar Proveedores

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

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => 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

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer <access_token>