Documentação da API

Catálogo e descontos

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

escopo products:read

ParâmetroOndeTipoDescrição
searchquerystringBusca por nome, SKU ou código.
statusquerystringactive, inactive, archived ou all.
per_pagequeryintegerItens por página (1 a 100, padrão 25).
pagequeryintegerPágina (a partir de 1).
currencyquerystringEUR 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

escopo products:read

ParâmetroOndeTipoDescrição
ref obrigatóriocaminhostringid, 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

escopo products:write aceita Idempotency-Key

CampoTipoDescrição
name obrigatóriostringNome (até 160 caracteres).
price obrigatórionumberPreço (0,50 a 999.999,99).
currency obrigatóriostringEUR ou BRL.
descriptionstringDescrição (até 2.000).
image_urlstringURL https da imagem.
skustringSKU único na sua conta.
external_idstringSeu identificador (único na conta).
activebooleanDisponível para venda.
metadataobjectAté 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

escopo products:write aceita Idempotency-Key

ParâmetroOndeTipoDescrição
ref obrigatóriocaminhostringid, sku ou external_id.
CampoTipoDescrição
namestringNome (até 160 caracteres).
pricenumberPreço (0,50 a 999.999,99).
currencystringEUR ou BRL.
descriptionstringDescrição (até 2.000).
image_urlstringURL https da imagem.
skustringSKU único na sua conta.
external_idstringSeu identificador (único na conta).
activebooleanDisponível para venda.
metadataobjectAté 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)

escopo products:write aceita Idempotency-Key

ParâmetroOndeTipoDescrição
ref obrigatóriocaminhostringid, sku ou external_id.
CampoTipoDescrição
namestringNome (até 160 caracteres).
pricenumberPreço (0,50 a 999.999,99).
currencystringEUR ou BRL.
descriptionstringDescrição (até 2.000).
image_urlstringURL https da imagem.
skustringSKU único na sua conta.
external_idstringSeu identificador (único na conta).
activebooleanDisponível para venda.
metadataobjectAté 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

escopo products:write aceita Idempotency-Key

ParâmetroOndeTipoDescrição
ref obrigatóriocaminhostringid, 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

escopo products:write aceita Idempotency-Key

ParâmetroOndeTipoDescrição
ref obrigatóriocaminhostringid, 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

escopo coupons:read

ParâmetroOndeTipoDescrição
searchquerystringBusca por nome, SKU ou código.
statusquerystringactive, inactive, archived ou all.
per_pagequeryintegerItens por página (1 a 100, padrão 25).
pagequeryintegerPá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

escopo coupons:read

ParâmetroOndeTipoDescrição
ref obrigatóriocaminhostringid 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

escopo coupons:write aceita Idempotency-Key

CampoTipoDescrição
code obrigatóriostring3 a 40 letras, números, hífen ou sublinhado.
discount_type obrigatóriostringpercentage ou fixed.
discount_value obrigatórionumberPercentual ou valor fixo do desconto.
currencystringEUR ou BRL (obrigatório na prática para desconto fixo).
min_amountnumberValor mínimo do pedido.
starts_atstring (data)Início da validade.
expires_atstring (data)Fim da validade.
max_usesintegerLimite total de usos.
applies_to_methodsstring[]Restringe a métodos (europix, mbway...).
applies_to_productsinteger[]Restringe a produtos (ids).
descriptionstringDescrição interna.
activebooleanAtivo.
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

escopo coupons:write aceita Idempotency-Key

ParâmetroOndeTipoDescrição
ref obrigatóriocaminhostringid ou código.
CampoTipoDescrição
codestring3 a 40 letras, números, hífen ou sublinhado.
discount_typestringpercentage ou fixed.
discount_valuenumberPercentual ou valor fixo do desconto.
currencystringEUR ou BRL (obrigatório na prática para desconto fixo).
min_amountnumberValor mínimo do pedido.
starts_atstring (data)Início da validade.
expires_atstring (data)Fim da validade.
max_usesintegerLimite total de usos.
applies_to_methodsstring[]Restringe a métodos (europix, mbway...).
applies_to_productsinteger[]Restringe a produtos (ids).
descriptionstringDescrição interna.
activebooleanAtivo.
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)

escopo coupons:write aceita Idempotency-Key

ParâmetroOndeTipoDescrição
ref obrigatóriocaminhostringid ou código.
CampoTipoDescrição
codestring3 a 40 letras, números, hífen ou sublinhado.
discount_typestringpercentage ou fixed.
discount_valuenumberPercentual ou valor fixo do desconto.
currencystringEUR ou BRL (obrigatório na prática para desconto fixo).
min_amountnumberValor mínimo do pedido.
starts_atstring (data)Início da validade.
expires_atstring (data)Fim da validade.
max_usesintegerLimite total de usos.
applies_to_methodsstring[]Restringe a métodos (europix, mbway...).
applies_to_productsinteger[]Restringe a produtos (ids).
descriptionstringDescrição interna.
activebooleanAtivo.
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

escopo coupons:write aceita Idempotency-Key

ParâmetroOndeTipoDescrição
ref obrigatóriocaminhostringid 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

escopo coupons:write aceita Idempotency-Key

ParâmetroOndeTipoDescrição
ref obrigatóriocaminhostringid 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"
  }
}