Docs/docs/authentication
Primeiros passos

Autenticação

Aprenda a autenticar requisições e gerenciar chaves.

1 — Crie uma chave

Vá em Painel → Integrações → API e clique em Criar Chave API.

Você verá o client_id (formato dx_id_*) e o client_secret (formato dx_sk_*) — o secret aparece uma única vez. Salve em local seguro.

2 — Gere o token base64

A devexpay usa o esquema HTTP Basic over Bearer: concatene client_id:client_secret, codifique em base64, e envie no header.

bash
# Bash
TOKEN=$(echo -n "dx_id_xxxxxxx:dx_sk_yyyyyyyy" | base64)

# Node.js
const token = Buffer.from("dx_id_xxxxxxx:dx_sk_yyyyyyyy").toString("base64");

# Python
import base64
token = base64.b64encode(b"dx_id_xxxxxxx:dx_sk_yyyyyyyy").decode()

3 — Use em todas as requisições

bash
curl https://devexpay-v3.vercel.app/api/v1/products \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json"

Escopos de acesso

Cada chave declara escopos no momento da criação. Endpoints exigem combinações específicas:

EscopoPermite
readEndpoints GET (listar / obter recursos)
writeEndpoints POST/PUT/DELETE (criar / atualizar / excluir)
productsAcesso aos endpoints /products/*
offersAcesso aos endpoints /offers/*
ordersAcesso aos endpoints /orders/* (vendas + reembolso)
webhooksAcesso aos endpoints /webhooks/*

Cada endpoint exige uma combinação de escopos. Por exemplo, POST /offers requer write + offers.

Revogação de chaves

Em qualquer momento, revogue a chave em Painel → Integrações → API. Aplicações que a usem retornarão imediatamente 401 revoked.

Erros de autenticação

CódigoQuando ocorre
missing_authHeader Authorization ausente
invalid_tokenToken não é base64 válido ou não tem ':' separador
invalid_clientclient_id não existe
invalid_secretclient_secret não confere
revokedChave foi revogada pelo dono
insufficient_scopeChave não tem o escopo exigido por esse endpoint