curl --request POST \
--url https://od.deliveryvip.com.br/oauth/token \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data grant_type=client_credentials \
--data client_id=seu-client-id \
--data client_secret=seu-client-secret \
--data scope=od.allimport requests
url = "https://od.deliveryvip.com.br/oauth/token"
payload = {
"grant_type": "client_credentials",
"client_id": "seu-client-id",
"client_secret": "seu-client-secret",
"scope": "od.all"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/x-www-form-urlencoded"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: new URLSearchParams({
grant_type: 'client_credentials',
client_id: 'seu-client-id',
client_secret: 'seu-client-secret',
scope: 'od.all'
})
};
fetch('https://od.deliveryvip.com.br/oauth/token', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://od.deliveryvip.com.br/oauth/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "grant_type=client_credentials&client_id=seu-client-id&client_secret=seu-client-secret&scope=od.all",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/x-www-form-urlencoded"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://od.deliveryvip.com.br/oauth/token"
payload := strings.NewReader("grant_type=client_credentials&client_id=seu-client-id&client_secret=seu-client-secret&scope=od.all")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://od.deliveryvip.com.br/oauth/token")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("grant_type=client_credentials&client_id=seu-client-id&client_secret=seu-client-secret&scope=od.all")
.asString();require 'uri'
require 'net/http'
url = URI("https://od.deliveryvip.com.br/oauth/token")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = "grant_type=client_credentials&client_id=seu-client-id&client_secret=seu-client-secret&scope=od.all"
response = http.request(request)
puts response.read_body{
"access_token": "2YotnFZFEjr1zCsicMWpAA",
"token_type": "Bearer",
"expires_in": 86400,
"scope": "od.all",
"created_at": 1639571898
}{
"error": "invalid_client",
"error_description": "<string>"
}{
"error": "invalid_client",
"error_description": "<string>"
}Obter access token
Emite um access token com grant_type=client_credentials. As credenciais podem ser enviadas no corpo (client_id/client_secret) ou via HTTP Basic. Quando o client_secret é a credencial de uma loja específica (aplicativos com a extensão OpenDelivery), o token fica vinculado apenas àquela loja; nesse caso, a loja precisa ter o aplicativo instalado. Tokens expiram em 24 horas e não têm refresh_token. Envie Content-Type: application/x-www-form-urlencoded.
curl --request POST \
--url https://od.deliveryvip.com.br/oauth/token \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data grant_type=client_credentials \
--data client_id=seu-client-id \
--data client_secret=seu-client-secret \
--data scope=od.allimport requests
url = "https://od.deliveryvip.com.br/oauth/token"
payload = {
"grant_type": "client_credentials",
"client_id": "seu-client-id",
"client_secret": "seu-client-secret",
"scope": "od.all"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/x-www-form-urlencoded"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: new URLSearchParams({
grant_type: 'client_credentials',
client_id: 'seu-client-id',
client_secret: 'seu-client-secret',
scope: 'od.all'
})
};
fetch('https://od.deliveryvip.com.br/oauth/token', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://od.deliveryvip.com.br/oauth/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "grant_type=client_credentials&client_id=seu-client-id&client_secret=seu-client-secret&scope=od.all",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/x-www-form-urlencoded"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://od.deliveryvip.com.br/oauth/token"
payload := strings.NewReader("grant_type=client_credentials&client_id=seu-client-id&client_secret=seu-client-secret&scope=od.all")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://od.deliveryvip.com.br/oauth/token")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("grant_type=client_credentials&client_id=seu-client-id&client_secret=seu-client-secret&scope=od.all")
.asString();require 'uri'
require 'net/http'
url = URI("https://od.deliveryvip.com.br/oauth/token")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = "grant_type=client_credentials&client_id=seu-client-id&client_secret=seu-client-secret&scope=od.all"
response = http.request(request)
puts response.read_body{
"access_token": "2YotnFZFEjr1zCsicMWpAA",
"token_type": "Bearer",
"expires_in": 86400,
"scope": "od.all",
"created_at": 1639571898
}{
"error": "invalid_client",
"error_description": "<string>"
}{
"error": "invalid_client",
"error_description": "<string>"
}Autorizações
client_id como usuário e client_secret como senha.
Corpo
Tipo de concessão OAuth.
client_credentials Identificador do aplicativo.
"seu-client-id"
Segredo do aplicativo ou credencial da loja.
"seu-client-secret"
Escopos separados por espaço. Padrão od.all.
"od.all"
Resposta
Token emitido.
Access token opaco.
"2YotnFZFEjr1zCsicMWpAA"
Tipo do token, sempre Bearer.
"Bearer"
Tempo restante de validade, em segundos.
86400
Escopos concedidos.
"od.all"
Momento de emissão (Unix timestamp, em segundos).
1639571898