Skip to main content
Todas as APIs da DeliveryVip usam OAuth2. O seu app troca as credenciais por um token de acesso e envia esse token no header Authorization de cada chamada. Todos ficam em https://api.deliveryvip.com.br. O endpoint de token só aceita Content-Type: application/x-www-form-urlencoded.
O Open Delivery tem endpoint de token próprio, em https://od.deliveryvip.com.br/oauth/token, com um client_secret por loja. Veja Primeiros passos do Open Delivery.

Obtendo o token

O fluxo depende do tipo de distribuição do app.
Usado por apps de distribuição direta. Um token atende todas as lojas que instalaram o app.
string
obrigatório
client_credentials
string
obrigatório
Client ID do app.
string
obrigatório
Client Secret do app.
string
padrão:"od.all"
Scopes separados por espaço, entre os que o app tem.
Tokens de client credentials não têm refresh_token. Quando expirarem, peça outro com as mesmas credenciais.

Resposta

200 OK
string
O token para o header Authorization. É uma string opaca: não tente decodificá-la.
string
Sempre Bearer.
integer
Segundos até o token expirar. Um token novo vale 86400 (24 horas); um token reaproveitado volta com o tempo que ainda resta.
string
Só no fluxo authorization_code (e nas renovações dele). Ausente em client_credentials.
string
Scopes concedidos, separados por espaço.
integer
Emissão do token, em Unix timestamp (segundos).

Scopes

Você só pode pedir scopes marcados nas permissões do app. Um token sem o scope que o endpoint exige recebe 403 Forbidden.

Usando o token

Envie o token no header Authorization em todas as chamadas:

Expiração e reaproveitamento

O token de acesso expira em 24 horas. Depois disso, as chamadas retornam 401 Unauthorized.
Guarde o token e reaproveite. Peça um token novo só quando ele estiver perto de expirar ou quando receber 401. Pedir um token por chamada é desnecessário e só gera carga.
Enquanto o token vigente tiver usado menos de 80% da validade (cerca de 19 horas), um novo pedido com as mesmas credenciais e scopes devolve o mesmo token, com o expires_in restante. Passado esse ponto, a API emite um token novo.

Renovando com refresh_token

Tokens do fluxo authorization_code vêm com refresh_token. Use-o para obter um novo token sem pedir nova autorização à loja:
A resposta traz um access_token e um refresh_token novos. Substitua os dois no seu armazenamento.

Verificando o token

GET /authentication/v1/oauth/token/info descreve o token enviado no header. Útil como primeira chamada e para depurar 401 e 403.
200 OK
string[]
Scopes do token, como lista.
integer
Segundos restantes até expirar.
string
O Client ID do app dono do token.
string | null
Dono que autorizou o token no fluxo authorization_code, com o tipo em resource_owner_type. null em client_credentials.
Para checar um token sem usá-lo como Bearer, há também o introspect, que responde { "active": false } para tokens inválidos ou expirados.

Revogando o token

Revogue um token (de acesso ou de refresh) quando ele não for mais usado, por exemplo ao desconectar uma loja do seu sistema. A resposta é sempre 200, mesmo para tokens já inválidos.

Erros de autenticação

Os erros do endpoint de token seguem o padrão OAuth2 (error e error_description), diferente do formato de erros das demais rotas.
401 Unauthorized
Nas demais rotas:
401 Unauthorized