Listar ítems de puntos
curl --request GET \
--url https://api.tiendadepuntos.com/external/point-items \
--header 'x-api-key: <api-key>'import requests
url = "https://api.tiendadepuntos.com/external/point-items"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.tiendadepuntos.com/external/point-items', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tiendadepuntos.com/external/point-items",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tiendadepuntos.com/external/point-items"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tiendadepuntos.com/external/point-items")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tiendadepuntos.com/external/point-items")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 87,
"name": "Café latte",
"points": 50,
"amount": 3500,
"branchId": 1972,
"createdAt": "2026-09-21T14:32:11.000Z",
"updatedAt": "2026-09-21T14:32:11.000Z"
}
],
"meta": {
"totalItems": 128,
"itemCount": 10,
"itemsPerPage": 10,
"totalPages": 13,
"currentPage": 1,
"from": 1,
"to": 10
},
"links": {
"first": "external/point-items?page=1&limit=10",
"previous": null,
"next": "external/point-items?page=2&limit=10",
"last": "external/point-items?page=13&limit=10",
"path": "external/point-items",
"firstPageUrl": "external/point-items?page=1&limit=10",
"lastPageUrl": "external/point-items?page=13&limit=10"
}
}{
"statusCode": 400,
"timestamp": "2026-07-31T14:05:12.431Z",
"path": "/external/tags/add",
"method": "POST",
"message": "Error de validación",
"errors": [
{}
],
"data": {}
}{
"statusCode": 401,
"timestamp": "2026-07-31T14:05:12.431Z",
"path": "/external/tags/add",
"method": "POST",
"message": "Api key is invalid",
"errors": [
{}
],
"data": {}
}{
"statusCode": 404,
"timestamp": "2026-07-31T14:05:12.431Z",
"path": "/external/tags/add",
"method": "POST",
"message": "Client not found",
"errors": [
{}
],
"data": {}
}Ítems de puntos
Listar ítems de puntos
Devuelve los ítems de puntos del comercio, paginado.
El id de cada ítem es lo que después mandás para pedir la simulación de puntos.
Si enviás el header x-branch-id, devuelve los ítems de esa sucursal más los que aplican a todo el comercio.
Atención: este endpoint devuelve { data, meta, links } en la raíz, sin el envelope { success, status, message, data }.
GET
/
external
/
point-items
Listar ítems de puntos
curl --request GET \
--url https://api.tiendadepuntos.com/external/point-items \
--header 'x-api-key: <api-key>'import requests
url = "https://api.tiendadepuntos.com/external/point-items"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.tiendadepuntos.com/external/point-items', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tiendadepuntos.com/external/point-items",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tiendadepuntos.com/external/point-items"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tiendadepuntos.com/external/point-items")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tiendadepuntos.com/external/point-items")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 87,
"name": "Café latte",
"points": 50,
"amount": 3500,
"branchId": 1972,
"createdAt": "2026-09-21T14:32:11.000Z",
"updatedAt": "2026-09-21T14:32:11.000Z"
}
],
"meta": {
"totalItems": 128,
"itemCount": 10,
"itemsPerPage": 10,
"totalPages": 13,
"currentPage": 1,
"from": 1,
"to": 10
},
"links": {
"first": "external/point-items?page=1&limit=10",
"previous": null,
"next": "external/point-items?page=2&limit=10",
"last": "external/point-items?page=13&limit=10",
"path": "external/point-items",
"firstPageUrl": "external/point-items?page=1&limit=10",
"lastPageUrl": "external/point-items?page=13&limit=10"
}
}{
"statusCode": 400,
"timestamp": "2026-07-31T14:05:12.431Z",
"path": "/external/tags/add",
"method": "POST",
"message": "Error de validación",
"errors": [
{}
],
"data": {}
}{
"statusCode": 401,
"timestamp": "2026-07-31T14:05:12.431Z",
"path": "/external/tags/add",
"method": "POST",
"message": "Api key is invalid",
"errors": [
{}
],
"data": {}
}{
"statusCode": 404,
"timestamp": "2026-07-31T14:05:12.431Z",
"path": "/external/tags/add",
"method": "POST",
"message": "Client not found",
"errors": [
{}
],
"data": {}
}Authorizations
API key del comercio. Se genera desde el panel de Tienda de Puntos, en Configuración → Integraciones.
Headers
ID de la sucursal en la que se registra la operación. Si se omite, la operación queda asociada al comercio sin sucursal.
Example:
1972
Query Parameters
Campo por el que ordenar.
Available options:
name, points, amount, createdAt Required range:
x >= 1Example:
1
Cantidad de resultados por página. Máximo 200.
Required range:
1 <= x <= 200Example:
10
Búsqueda parcial por nombre.
Example:
"café"
Sentido del orden. Solo aplica si se envía order.
Available options:
asc, desc 
