Guia do Desenvolvedor

Primeiros Passos

Registre-se como desenvolvedor, crie seu primeiro app e complete o fluxo OAuth em 10 minutos.

Registre-se como Desenvolvedor

Para comecar a construir no Venddor-IO, voce precisa de uma conta de desenvolvedor. Acesse o Portal do Desenvolvedor e crie sua conta.

#PassoDetalhes
1Acesse o portalhttps://io.venddor.com.br/developers
2Clique em Criar ContaPreencha nome, email, empresa e senha
3Verifique seu emailClique no link de confirmacao
4Faca loginAcesse o painel de desenvolvedor
A conta de desenvolvedor e separada da conta de lojista/admin. Voce pode usar o mesmo email, mas sao logins diferentes.

Crie seu Primeiro App

No painel do desenvolvedor, clique em 'Criar Novo App'. Preencha as informacoes do app:

CampoDescriçãoExemplo
Nome do AppNome para exibicaoMy Inventory Sync
DescriçãoO que seu app fazSyncs inventory with external ERP
URI de RedirectURL de callback OAuthhttps://myapp.com/auth/callback
EscoposPermissoes necessariasread_products, write_inventory

Após criar o app, você receberá um Client ID e Client Secret. O secret só é exibido UMA VEZ, então copie e guarde-o em lugar seguro.

NUNCA exponha o Client Secret no frontend, commits publicos ou logs. Trate-o como uma senha.

Fluxo OAuth 2.0

O Venddor usa OAuth 2.0 Authorization Code para conectar seu app a lojas de tenants. O fluxo funciona assim:

text
1. Your App  --->  Venddor Auth  (redirect user to authorize)
2. User approves scopes on Venddor
3. Venddor Auth  --->  Your App  (redirect back with ?code=...)
4. Your App  --->  Venddor API   (exchange code for access_token)
5. Your App  --->  Venddor API   (use access_token to call APIs)

Passo 1: Redirecionar para Autorizar

Redirecione o usuario para a pagina de autorizacao do Venddor:

text
GET https://api.io.venddor.com.br/oauth/authorize
  ?client_id=YOUR_CLIENT_ID
  &redirect_uri=https://myapp.com/auth/callback
  &response_type=code
  &scope=read_products write_inventory
  &state=random_csrf_token
O parametro state e obrigatorio para prevenir ataques CSRF. Gere um valor aleatorio e valide-o no callback.

Passo 2: Tratar o Callback

Apos o usuario aprovar, o Venddor redireciona para sua redirect_uri com um codigo de autorizacao:

text
GET https://myapp.com/auth/callback
  ?code=AUTHORIZATION_CODE
  &state=random_csrf_token
  &tenant_id=TENANT_UUID

Passo 3: Trocar Codigo por Token

Troque o codigo de autorizacao por um token de acesso chamando a API do servidor:

bash
curl -X POST https://api.io.venddor.com.br/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "authorization_code",
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET",
    "code": "AUTHORIZATION_CODE",
    "redirect_uri": "https://myapp.com/auth/callback"
  }'

Resposta:

json
{
  "access_token": "eyJhbGciOiJIUzI1NiIs...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "refresh_token": "rt_abc123...",
  "tenant_id": "550e8400-e29b-41d4-a716-446655440000",
  "scopes": ["read_products", "write_inventory"]
}

Faca sua Primeira Chamada API

Com o access_token, voce pode chamar qualquer endpoint permitido pelos escopos do seu app:

bash
# List products from the tenant's store
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "X-Tenant-ID: TENANT_UUID" \
     https://api.io.venddor.com.br/api/storefront/products

# Response:
# {
#   "items": [
#     {
#       "id": "prod_123",
#       "name": "Camiseta Premium",
#       "price_cents": 8990,
#       "currency": "BRL",
#       "status": "active"
#     },
#     ...
#   ],
#   "total": 42,
#   "page": 1,
#   "limit": 20
# }

Exemplo com JavaScript

javascript
// Using the Venddor JS SDK (or plain fetch)
const response = await fetch('https://api.io.venddor.com.br/api/storefront/products', {
  headers: {
    'Authorization': `Bearer ${accessToken}`,
    'X-Tenant-ID': tenantId,
  },
});

const data = await response.json();
console.log(`Found ${data.total} products`);

for (const product of data.items) {
  console.log(`${product.name}: R$ ${(product.price_cents / 100).toFixed(2)}`);
}

Exemplo com Python

python
import requests

headers = {
    'Authorization': f'Bearer {access_token}',
    'X-Tenant-ID': tenant_id,
}

response = requests.get(
    'https://api.io.venddor.com.br/api/storefront/products',
    headers=headers
)

data = response.json()
print(f"Found {data['total']} products")

for product in data['items']:
    price = product['price_cents'] / 100
    print(f"{product['name']}: R$ {price:.2f}")

Proximos Passos