curl https://api.onepay.la/v1/products \
-X POST \
-H "Authorization: Bearer sk_test_xxx" \
-H "x-idempotency: idem_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "OnePay Pro",
"description": "Para negocios en crecimiento.",
"internal_id": "pro",
"tax_rate": 19,
"marketing_features": [
{ "name": "Clientes ilimitados" },
{ "name": "Reintentos inteligentes" }
]
}'
const response = await fetch('https://api.onepay.la/v1/products', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_test_xxx',
'x-idempotency': 'idem_xxx',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'OnePay Pro',
description: 'Para negocios en crecimiento.',
internal_id: 'pro',
tax_rate: 19,
marketing_features: [
{ name: 'Clientes ilimitados' },
{ name: 'Reintentos inteligentes' }
]
})
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://api.onepay.la/v1/products',
headers={
'Authorization': 'Bearer sk_test_xxx',
'x-idempotency': 'idem_xxx'
},
json={
'name': 'OnePay Pro',
'description': 'Para negocios en crecimiento.',
'internal_id': 'pro',
'tax_rate': 19,
'marketing_features': [
{'name': 'Clientes ilimitados'},
{'name': 'Reintentos inteligentes'}
]
}
)
data = response.json()
print(data)
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onepay.la/v1/products",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer sk_test_xxx",
"x-idempotency: idem_xxx",
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode([
"name" => "OnePay Pro",
"description" => "Para negocios en crecimiento.",
"internal_id" => "pro",
"tax_rate" => 19,
"marketing_features" => [
["name" => "Clientes ilimitados"],
["name" => "Reintentos inteligentes"]
]
])
]);
$data = json_decode(curl_exec($curl), true);
curl_close($curl);
print_r($data);
?>
{
"id": "9f5d85a0-1111-7000-aaaa-000000000001",
"object": "product",
"name": "OnePay Pro",
"description": "Para negocios en crecimiento.",
"active": true,
"internal_id": "pro",
"unit_label": null,
"tax_rate": 19,
"default_price": null,
"marketing_features": [
{ "name": "Clientes ilimitados" },
{ "name": "Reintentos inteligentes" }
],
"metadata": null,
"created_at": "2026-07-13T12:00:00.000000Z",
"updated_at": "2026-07-13T12:00:00.000000Z"
}
{
"message": "El campo name es obligatorio.",
"code": 10001,
"code_name": "validation_error",
"errors": {
"name": [
"El campo name es obligatorio."
]
}
}
{
"message": "No se puede generar la operación, genera un token de idempotencia y envíelo en los headers como x-idempotency",
"code": 10003,
"code_name": "idempotency_error"
}
Crea un nuevo producto en tu catálogo.
POST
/
products
curl https://api.onepay.la/v1/products \
-X POST \
-H "Authorization: Bearer sk_test_xxx" \
-H "x-idempotency: idem_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "OnePay Pro",
"description": "Para negocios en crecimiento.",
"internal_id": "pro",
"tax_rate": 19,
"marketing_features": [
{ "name": "Clientes ilimitados" },
{ "name": "Reintentos inteligentes" }
]
}'
const response = await fetch('https://api.onepay.la/v1/products', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_test_xxx',
'x-idempotency': 'idem_xxx',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'OnePay Pro',
description: 'Para negocios en crecimiento.',
internal_id: 'pro',
tax_rate: 19,
marketing_features: [
{ name: 'Clientes ilimitados' },
{ name: 'Reintentos inteligentes' }
]
})
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://api.onepay.la/v1/products',
headers={
'Authorization': 'Bearer sk_test_xxx',
'x-idempotency': 'idem_xxx'
},
json={
'name': 'OnePay Pro',
'description': 'Para negocios en crecimiento.',
'internal_id': 'pro',
'tax_rate': 19,
'marketing_features': [
{'name': 'Clientes ilimitados'},
{'name': 'Reintentos inteligentes'}
]
}
)
data = response.json()
print(data)
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onepay.la/v1/products",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer sk_test_xxx",
"x-idempotency: idem_xxx",
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode([
"name" => "OnePay Pro",
"description" => "Para negocios en crecimiento.",
"internal_id" => "pro",
"tax_rate" => 19,
"marketing_features" => [
["name" => "Clientes ilimitados"],
["name" => "Reintentos inteligentes"]
]
])
]);
$data = json_decode(curl_exec($curl), true);
curl_close($curl);
print_r($data);
?>
{
"id": "9f5d85a0-1111-7000-aaaa-000000000001",
"object": "product",
"name": "OnePay Pro",
"description": "Para negocios en crecimiento.",
"active": true,
"internal_id": "pro",
"unit_label": null,
"tax_rate": 19,
"default_price": null,
"marketing_features": [
{ "name": "Clientes ilimitados" },
{ "name": "Reintentos inteligentes" }
],
"metadata": null,
"created_at": "2026-07-13T12:00:00.000000Z",
"updated_at": "2026-07-13T12:00:00.000000Z"
}
{
"message": "El campo name es obligatorio.",
"code": 10001,
"code_name": "validation_error",
"errors": {
"name": [
"El campo name es obligatorio."
]
}
}
{
"message": "No se puede generar la operación, genera un token de idempotencia y envíelo en los headers como x-idempotency",
"code": 10003,
"code_name": "idempotency_error"
}
Registra un nuevo producto en tu catálogo. El monto no se define aquí: se configura en los precios asociados al producto.
Headers
string
required
Token único para garantizar la idempotencia de la petición
Body
string
required
Nombre del producto. Máximo 255 caracteres.
string
Descripción del producto. Máximo 1000 caracteres.
string
Tu identificador interno del producto. Máximo 255 caracteres.
string
Etiqueta de la unidad (ej.
asientos). Máximo 50 caracteres.number
Porcentaje de IVA. Valor entre 0 y 100.
array
Características de marketing (máximo 15). Cada elemento es un objeto
{ "name": string }, donde name admite hasta 80 caracteres.object
Datos adicionales de tu aplicación.
curl https://api.onepay.la/v1/products \
-X POST \
-H "Authorization: Bearer sk_test_xxx" \
-H "x-idempotency: idem_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "OnePay Pro",
"description": "Para negocios en crecimiento.",
"internal_id": "pro",
"tax_rate": 19,
"marketing_features": [
{ "name": "Clientes ilimitados" },
{ "name": "Reintentos inteligentes" }
]
}'
const response = await fetch('https://api.onepay.la/v1/products', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_test_xxx',
'x-idempotency': 'idem_xxx',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'OnePay Pro',
description: 'Para negocios en crecimiento.',
internal_id: 'pro',
tax_rate: 19,
marketing_features: [
{ name: 'Clientes ilimitados' },
{ name: 'Reintentos inteligentes' }
]
})
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://api.onepay.la/v1/products',
headers={
'Authorization': 'Bearer sk_test_xxx',
'x-idempotency': 'idem_xxx'
},
json={
'name': 'OnePay Pro',
'description': 'Para negocios en crecimiento.',
'internal_id': 'pro',
'tax_rate': 19,
'marketing_features': [
{'name': 'Clientes ilimitados'},
{'name': 'Reintentos inteligentes'}
]
}
)
data = response.json()
print(data)
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onepay.la/v1/products",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer sk_test_xxx",
"x-idempotency: idem_xxx",
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode([
"name" => "OnePay Pro",
"description" => "Para negocios en crecimiento.",
"internal_id" => "pro",
"tax_rate" => 19,
"marketing_features" => [
["name" => "Clientes ilimitados"],
["name" => "Reintentos inteligentes"]
]
])
]);
$data = json_decode(curl_exec($curl), true);
curl_close($curl);
print_r($data);
?>
Response
string
Identificador único (UUID) del producto.
string
Siempre
product.string
Nombre del producto.
string | null
Descripción del producto.
boolean
false cuando el producto está archivado.string | null
Tu identificador interno del producto.
string | null
Etiqueta de la unidad (ej.
asientos).number | null
Porcentaje de IVA (0-100).
string | null
ID del precio por defecto del producto.
array
Características de marketing (hasta 15), cada una con la forma
{ "name": string }.object | null
Datos adicionales de tu aplicación.
string
Fecha de creación (ISO 8601).
string
Fecha de última actualización (ISO 8601).
{
"id": "9f5d85a0-1111-7000-aaaa-000000000001",
"object": "product",
"name": "OnePay Pro",
"description": "Para negocios en crecimiento.",
"active": true,
"internal_id": "pro",
"unit_label": null,
"tax_rate": 19,
"default_price": null,
"marketing_features": [
{ "name": "Clientes ilimitados" },
{ "name": "Reintentos inteligentes" }
],
"metadata": null,
"created_at": "2026-07-13T12:00:00.000000Z",
"updated_at": "2026-07-13T12:00:00.000000Z"
}
{
"message": "El campo name es obligatorio.",
"code": 10001,
"code_name": "validation_error",
"errors": {
"name": [
"El campo name es obligatorio."
]
}
}
{
"message": "No se puede generar la operación, genera un token de idempotencia y envíelo en los headers como x-idempotency",
"code": 10003,
"code_name": "idempotency_error"
}
Was this page helpful?
⌘I