O catálogo guarda os produtos que você vende (usados nos links de pagamento) e os cupons de desconto. O total com cupom é sempre recalculado no servidor no checkout.
Rotas de leitura exigem products:read/coupons:read; criar, editar, arquivar e restaurar exigem products:write/coupons:write. Itens arquivados saem da venda mas continuam nos pedidos antigos.
GET /developer/products
Listar produtos
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
search | query | string | Busca por nome, SKU ou código. |
status | query | string | active, inactive, archived ou all. |
per_page | query | integer | Itens por página (1 a 100, padrão 25). |
page | query | integer | Página (a partir de 1). |
currency | query | string | EUR ou BRL. |
curl -X GET https://api.uneway.pro/api/v1/developer/products \ -H "Authorization: Bearer uw_test_SUA_CHAVE"
Resposta (exemplo)
{
"success": true,
"data": [
{
"id": 12,
"object": "product",
"name": "Camiseta preta",
"description": null,
"price": 89.9,
"currency": "BRL",
"image_url": null,
"sku": "CAM-PRETA-M",
"external_id": null,
"active": true,
"status": "active",
"archived_at": null,
"metadata": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
],
"meta": {
"page": 1,
"per_page": 25,
"total": 1,
"last_page": 1
}
}GET /developer/products/{ref}
Consultar produto
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
ref obrigatório | caminho | string | id, sku ou external_id. |
curl -X GET https://api.uneway.pro/api/v1/developer/products/pedido-2001 \ -H "Authorization: Bearer uw_test_SUA_CHAVE"
Resposta (exemplo)
{
"success": true,
"data": {
"id": 12,
"object": "product",
"name": "Camiseta preta",
"description": null,
"price": 89.9,
"currency": "BRL",
"image_url": null,
"sku": "CAM-PRETA-M",
"external_id": null,
"active": true,
"status": "active",
"archived_at": null,
"metadata": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
}POST /developer/products
Criar produto
| Campo | Tipo | Descrição |
|---|---|---|
name obrigatório | string | Nome (até 160 caracteres). |
price obrigatório | number | Preço (0,50 a 999.999,99). |
currency obrigatório | string | EUR ou BRL. |
description | string | Descrição (até 2.000). |
image_url | string | URL https da imagem. |
sku | string | SKU único na sua conta. |
external_id | string | Seu identificador (único na conta). |
active | boolean | Disponível para venda. |
metadata | object | Até 20 pares chave/valor. |
curl -X POST https://api.uneway.pro/api/v1/developer/products \
-H "Authorization: Bearer uw_test_SUA_CHAVE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name": "Camiseta preta", "price": 89.9, "currency": "BRL", "sku": "CAM-PRETA-M"}'Resposta (exemplo)
{
"success": true,
"data": {
"id": 12,
"object": "product",
"name": "Camiseta preta",
"description": null,
"price": 89.9,
"currency": "BRL",
"image_url": null,
"sku": "CAM-PRETA-M",
"external_id": null,
"active": true,
"status": "active",
"archived_at": null,
"metadata": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
}PUT /developer/products/{ref}
Atualizar produto
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
ref obrigatório | caminho | string | id, sku ou external_id. |
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Nome (até 160 caracteres). |
price | number | Preço (0,50 a 999.999,99). |
currency | string | EUR ou BRL. |
description | string | Descrição (até 2.000). |
image_url | string | URL https da imagem. |
sku | string | SKU único na sua conta. |
external_id | string | Seu identificador (único na conta). |
active | boolean | Disponível para venda. |
metadata | object | Até 20 pares chave/valor. |
curl -X PUT https://api.uneway.pro/api/v1/developer/products/pedido-2001 \
-H "Authorization: Bearer uw_test_SUA_CHAVE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"price": 79.9}'Resposta (exemplo)
{
"success": true,
"data": {
"id": 12,
"object": "product",
"name": "Camiseta preta",
"description": null,
"price": 89.9,
"currency": "BRL",
"image_url": null,
"sku": "CAM-PRETA-M",
"external_id": null,
"active": true,
"status": "active",
"archived_at": null,
"metadata": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
}PATCH /developer/products/{ref}
Atualizar produto (parcial)
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
ref obrigatório | caminho | string | id, sku ou external_id. |
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Nome (até 160 caracteres). |
price | number | Preço (0,50 a 999.999,99). |
currency | string | EUR ou BRL. |
description | string | Descrição (até 2.000). |
image_url | string | URL https da imagem. |
sku | string | SKU único na sua conta. |
external_id | string | Seu identificador (único na conta). |
active | boolean | Disponível para venda. |
metadata | object | Até 20 pares chave/valor. |
curl -X PATCH https://api.uneway.pro/api/v1/developer/products/pedido-2001 \
-H "Authorization: Bearer uw_test_SUA_CHAVE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"active": false}'Resposta (exemplo)
{
"success": true,
"data": {
"id": 12,
"object": "product",
"name": "Camiseta preta",
"description": null,
"price": 89.9,
"currency": "BRL",
"image_url": null,
"sku": "CAM-PRETA-M",
"external_id": null,
"active": true,
"status": "active",
"archived_at": null,
"metadata": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
}POST /developer/products/{ref}/archive
Arquivar produto
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
ref obrigatório | caminho | string | id, sku ou external_id. |
curl -X POST https://api.uneway.pro/api/v1/developer/products/pedido-2001/archive \ -H "Authorization: Bearer uw_test_SUA_CHAVE" \ -H "Idempotency-Key: $(uuidgen)"
Resposta (exemplo)
{
"success": true,
"data": {
"id": 12,
"object": "product",
"name": "Camiseta preta",
"description": null,
"price": 89.9,
"currency": "BRL",
"image_url": null,
"sku": "CAM-PRETA-M",
"external_id": null,
"active": false,
"status": "archived",
"archived_at": "2026-10-02T13:00:00+00:00",
"metadata": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
}POST /developer/products/{ref}/restore
Restaurar produto
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
ref obrigatório | caminho | string | id, sku ou external_id. |
curl -X POST https://api.uneway.pro/api/v1/developer/products/pedido-2001/restore \ -H "Authorization: Bearer uw_test_SUA_CHAVE" \ -H "Idempotency-Key: $(uuidgen)"
Resposta (exemplo)
{
"success": true,
"data": {
"id": 12,
"object": "product",
"name": "Camiseta preta",
"description": null,
"price": 89.9,
"currency": "BRL",
"image_url": null,
"sku": "CAM-PRETA-M",
"external_id": null,
"active": true,
"status": "active",
"archived_at": null,
"metadata": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
}GET /developer/coupons
Listar cupons
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
search | query | string | Busca por nome, SKU ou código. |
status | query | string | active, inactive, archived ou all. |
per_page | query | integer | Itens por página (1 a 100, padrão 25). |
page | query | integer | Página (a partir de 1). |
curl -X GET https://api.uneway.pro/api/v1/developer/coupons \ -H "Authorization: Bearer uw_test_SUA_CHAVE"
Resposta (exemplo)
{
"success": true,
"data": [
{
"id": 5,
"object": "coupon",
"code": "BEMVINDO10",
"description": "10% na primeira compra",
"discount_type": "percentage",
"discount_value": 10.0,
"currency": null,
"min_amount": null,
"starts_at": null,
"expires_at": "2026-12-31T23:59:59+00:00",
"max_uses": 500,
"uses_count": 42,
"applies_to_methods": null,
"applies_to_products": null,
"active": true,
"status": "active",
"archived_at": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
],
"meta": {
"page": 1,
"per_page": 25,
"total": 1,
"last_page": 1
}
}GET /developer/coupons/{ref}
Consultar cupom
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
ref obrigatório | caminho | string | id ou código. |
curl -X GET https://api.uneway.pro/api/v1/developer/coupons/pedido-2001 \ -H "Authorization: Bearer uw_test_SUA_CHAVE"
Resposta (exemplo)
{
"success": true,
"data": {
"id": 5,
"object": "coupon",
"code": "BEMVINDO10",
"description": "10% na primeira compra",
"discount_type": "percentage",
"discount_value": 10.0,
"currency": null,
"min_amount": null,
"starts_at": null,
"expires_at": "2026-12-31T23:59:59+00:00",
"max_uses": 500,
"uses_count": 42,
"applies_to_methods": null,
"applies_to_products": null,
"active": true,
"status": "active",
"archived_at": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
}POST /developer/coupons
Criar cupom
| Campo | Tipo | Descrição |
|---|---|---|
code obrigatório | string | 3 a 40 letras, números, hífen ou sublinhado. |
discount_type obrigatório | string | percentage ou fixed. |
discount_value obrigatório | number | Percentual ou valor fixo do desconto. |
currency | string | EUR ou BRL (obrigatório na prática para desconto fixo). |
min_amount | number | Valor mínimo do pedido. |
starts_at | string (data) | Início da validade. |
expires_at | string (data) | Fim da validade. |
max_uses | integer | Limite total de usos. |
applies_to_methods | string[] | Restringe a métodos (europix, mbway...). |
applies_to_products | integer[] | Restringe a produtos (ids). |
description | string | Descrição interna. |
active | boolean | Ativo. |
curl -X POST https://api.uneway.pro/api/v1/developer/coupons \
-H "Authorization: Bearer uw_test_SUA_CHAVE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"code": "BEMVINDO10", "discount_type": "percentage", "discount_value": 10, "max_uses": 500}'Resposta (exemplo)
{
"success": true,
"data": {
"id": 5,
"object": "coupon",
"code": "BEMVINDO10",
"description": "10% na primeira compra",
"discount_type": "percentage",
"discount_value": 10.0,
"currency": null,
"min_amount": null,
"starts_at": null,
"expires_at": "2026-12-31T23:59:59+00:00",
"max_uses": 500,
"uses_count": 42,
"applies_to_methods": null,
"applies_to_products": null,
"active": true,
"status": "active",
"archived_at": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
}PUT /developer/coupons/{ref}
Atualizar cupom
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
ref obrigatório | caminho | string | id ou código. |
| Campo | Tipo | Descrição |
|---|---|---|
code | string | 3 a 40 letras, números, hífen ou sublinhado. |
discount_type | string | percentage ou fixed. |
discount_value | number | Percentual ou valor fixo do desconto. |
currency | string | EUR ou BRL (obrigatório na prática para desconto fixo). |
min_amount | number | Valor mínimo do pedido. |
starts_at | string (data) | Início da validade. |
expires_at | string (data) | Fim da validade. |
max_uses | integer | Limite total de usos. |
applies_to_methods | string[] | Restringe a métodos (europix, mbway...). |
applies_to_products | integer[] | Restringe a produtos (ids). |
description | string | Descrição interna. |
active | boolean | Ativo. |
curl -X PUT https://api.uneway.pro/api/v1/developer/coupons/pedido-2001 \
-H "Authorization: Bearer uw_test_SUA_CHAVE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"max_uses": 1000}'Resposta (exemplo)
{
"success": true,
"data": {
"id": 5,
"object": "coupon",
"code": "BEMVINDO10",
"description": "10% na primeira compra",
"discount_type": "percentage",
"discount_value": 10.0,
"currency": null,
"min_amount": null,
"starts_at": null,
"expires_at": "2026-12-31T23:59:59+00:00",
"max_uses": 500,
"uses_count": 42,
"applies_to_methods": null,
"applies_to_products": null,
"active": true,
"status": "active",
"archived_at": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
}PATCH /developer/coupons/{ref}
Atualizar cupom (parcial)
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
ref obrigatório | caminho | string | id ou código. |
| Campo | Tipo | Descrição |
|---|---|---|
code | string | 3 a 40 letras, números, hífen ou sublinhado. |
discount_type | string | percentage ou fixed. |
discount_value | number | Percentual ou valor fixo do desconto. |
currency | string | EUR ou BRL (obrigatório na prática para desconto fixo). |
min_amount | number | Valor mínimo do pedido. |
starts_at | string (data) | Início da validade. |
expires_at | string (data) | Fim da validade. |
max_uses | integer | Limite total de usos. |
applies_to_methods | string[] | Restringe a métodos (europix, mbway...). |
applies_to_products | integer[] | Restringe a produtos (ids). |
description | string | Descrição interna. |
active | boolean | Ativo. |
curl -X PATCH https://api.uneway.pro/api/v1/developer/coupons/pedido-2001 \
-H "Authorization: Bearer uw_test_SUA_CHAVE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"active": false}'Resposta (exemplo)
{
"success": true,
"data": {
"id": 5,
"object": "coupon",
"code": "BEMVINDO10",
"description": "10% na primeira compra",
"discount_type": "percentage",
"discount_value": 10.0,
"currency": null,
"min_amount": null,
"starts_at": null,
"expires_at": "2026-12-31T23:59:59+00:00",
"max_uses": 500,
"uses_count": 42,
"applies_to_methods": null,
"applies_to_products": null,
"active": true,
"status": "active",
"archived_at": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
}POST /developer/coupons/{ref}/archive
Arquivar cupom
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
ref obrigatório | caminho | string | id ou código. |
curl -X POST https://api.uneway.pro/api/v1/developer/coupons/pedido-2001/archive \ -H "Authorization: Bearer uw_test_SUA_CHAVE" \ -H "Idempotency-Key: $(uuidgen)"
Resposta (exemplo)
{
"success": true,
"data": {
"id": 5,
"object": "coupon",
"code": "BEMVINDO10",
"description": "10% na primeira compra",
"discount_type": "percentage",
"discount_value": 10.0,
"currency": null,
"min_amount": null,
"starts_at": null,
"expires_at": "2026-12-31T23:59:59+00:00",
"max_uses": 500,
"uses_count": 42,
"applies_to_methods": null,
"applies_to_products": null,
"active": false,
"status": "archived",
"archived_at": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
}POST /developer/coupons/{ref}/restore
Restaurar cupom
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
ref obrigatório | caminho | string | id ou código. |
curl -X POST https://api.uneway.pro/api/v1/developer/coupons/pedido-2001/restore \ -H "Authorization: Bearer uw_test_SUA_CHAVE" \ -H "Idempotency-Key: $(uuidgen)"
Resposta (exemplo)
{
"success": true,
"data": {
"id": 5,
"object": "coupon",
"code": "BEMVINDO10",
"description": "10% na primeira compra",
"discount_type": "percentage",
"discount_value": 10.0,
"currency": null,
"min_amount": null,
"starts_at": null,
"expires_at": "2026-12-31T23:59:59+00:00",
"max_uses": 500,
"uses_count": 42,
"applies_to_methods": null,
"applies_to_products": null,
"active": true,
"status": "active",
"archived_at": null,
"created_at": "2026-10-02T12:00:00+00:00",
"updated_at": "2026-10-02T12:00:00+00:00"
}
}