API Reference
Documentação completa de todos os endpoints da API Vpay. Use os exemplos abaixo para integrar sua aplicação.
| Variável | Valor | Descrição | |
|---|---|---|---|
base_url | https://api.vpay.co.mz | URL base da API | |
client_id | — | Client ID obtido no dashboard | |
client_secret | — | Client Secret obtido no dashboard | |
access_token | — | Token gerado após autenticação | |
refresh_token | — | Token para renovar acesso | |
product_id | — | ID do produto (preencher após criar) | |
customer_id | — | ID do cliente (preencher após criar) | |
plan_id | — | ID do plano (preencher após criar) | |
subscription_id | — | ID da assinatura (preencher após criar) | |
order_id | — | ID do pedido (preencher após criar) |
⚠️ O access_token é preenchido automaticamente após autenticação. O refresh_token é obtido na resposta da autenticação.
/v1/auth/tokenGerar token de acesso usando Client ID e Secret
Exemplo de payload
{
"client_id": "seu_client_id",
"client_secret": "seu_client_secret"
}/v1/auth/token/refreshRenovar token de acesso usando refresh token
Exemplo de payload
{
"refresh_token": "seu_refresh_token"
}/v1/auth/token/revokeRevogar token de acesso
Exemplo de payload
{
"token": "token_a_revogar"
}/v1/auth/token/listListar todos os tokens ativos do cliente
/v1/products/createCriar um novo produto
Exemplo de payload
{
"name": "Smartphone XYZ",
"description": "Latest generation smartphone with 128GB",
"price": 2499.99,
"imageUrl": "https://example.com/images/smartphone.jpg",
"originProductId": "ERP-2026-002",
"metadata": {
"brand": "TechBrand",
"model": "XYZ-2024",
"color": "Black"
}
}/v1/productsListar todos os produtos
/v1/products/{{product_id}}Buscar produto por ID
/v1/products/syncSincronizar um único produto (cria ou atualiza)
Exemplo de payload
{
"originProductId": "ERP-2026-002",
"name": "Smartphone XYZ Pro",
"description": "Smartphone de última geração",
"price": 2999.9,
"imageUrl": "https://images.example.com/smartphone.jpg",
"metadata": {
"brand": "XYZ Tech",
"category": "eletrônicos"
}
}/v1/products/sync/batchSincronizar múltiplos produtos em lote
Exemplo de payload
{
"products": [
{
"originProductId": "ERP-2026-001",
"name": "Smartphone XYZ Pro",
"price": 2999.9
},
{
"originProductId": "ERP-2026-002",
"name": "Notebook Ultra Slim",
"price": 5499.9
}
]
}/v1/customersCriar um novo cliente
Exemplo de payload
{
"name": "João Silva",
"email": "joao.silva@email.com",
"phone": "+258 82 123 4567",
"addressLine": "Rua 1234, Nº 45",
"city": "Maputo",
"postalCode": "1100",
"taxId": "123456789",
"merchantCustomerId": "CLIENTE-001",
"metadata": {
"segment": "premium",
"birthDate": "1990-05-15"
}
}/v1/customersListar todos os clientes
/v1/customers/{{customer_id}}Buscar cliente por ID
/v1/customers/syncSincronizar um único cliente (cria ou atualiza)
Exemplo de payload
{
"merchantCustomerId": "CLIENTE-001",
"name": "João Silva",
"email": "joao.silva@email.com",
"phone": "+258 82 123 4567",
"addressLine": "Rua 1234, Nº 45",
"city": "Maputo",
"postalCode": "1100",
"taxId": "123456789"
}/v1/customers/sync/batchSincronizar múltiplos clientes em lote
Exemplo de payload
{
"customers": [
{
"merchantCustomerId": "ERP-CUSTOMER-001",
"name": "João Silva",
"email": "joao.silva@email.com"
},
{
"merchantCustomerId": "ERP-CUSTOMER-002",
"name": "Maria Santos",
"email": "maria.santos@email.com"
}
]
}/v1/plansCriar um novo plano
Exemplo de payload
{
"name": "Plano Basic",
"description": "Plano com recursos essenciais",
"price": 49.9,
"interval": "monthly",
"intervalCount": 1,
"metadata": {
"features": [
"5 produtos",
"1 usuário"
],
"level": "basic"
}
}/v1/plansListar todos os planos
/v1/plans/{{plan_id}}Buscar plano por ID
/v1/plans/syncSincronizar um único plano
Exemplo de payload
{
"originPlanId": "ERP-PLAN-001",
"name": "Plano Basic",
"price": 49.9,
"interval": "monthly"
}/v1/plans/sync/batchSincronizar múltiplos planos
Exemplo de payload
{
"plans": [
{
"originPlanId": "ERP-PLAN-001",
"name": "Plano Basic",
"price": 49.9,
"interval": "monthly"
},
{
"originPlanId": "ERP-PLAN-002",
"name": "Plano Premium",
"price": 149.9,
"interval": "monthly"
}
]
}/v1/subscriptionsCriar assinatura (com dados novos)
Exemplo de payload
{
"plan": {
"originPlanId": "ERP-PLAN-001",
"name": "Plano Basic",
"price": 49.9,
"interval": "monthly"
},
"customer": {
"merchantCustomerId": "CLIENTE-001",
"name": "João Silva",
"email": "joao@email.com"
},
"name": "Assinatura João Silva",
"description": "Assinatura do plano basic",
"maxAttempts": 3,
"originSubscriptionId": "ERP-SUB-001"
}/v1/subscriptionsCriar assinatura (com dados existentes)
Exemplo de payload
{
"plan": {
"planId": "plan_abc123"
},
"customer": {
"customerId": "cus_abc123"
},
"name": "Assinatura João Silva",
"maxAttempts": 3
}/v1/subscriptions/syncSincronizar assinatura (cria ou obtém)
Exemplo de payload
{
"originSubscriptionId": "ERP-SUB-001",
"plan": {
"originPlanId": "ERP-PLAN-001",
"name": "Plano Basic",
"price": 49.9,
"interval": "monthly"
},
"customer": {
"merchantCustomerId": "CLIENTE-001",
"name": "João Silva",
"email": "joao@email.com"
}
}/v1/subscriptionsListar todas as assinaturas
/v1/subscriptions/{{subscription_id}}Buscar assinatura por ID
/v1/ordersCriar pedido (com dados novos)
Exemplo de payload
{
"source": {
"source": "api"
},
"customer": {
"merchantCustomerId": "CUS-123",
"name": "Maria Santos",
"email": "maria@email.com"
},
"items": [
{
"originProductId": "ERP-SMARTPRO-001",
"name": "Smartphone Pro Max",
"quantity": 2,
"price": 3999.9
}
]
}/v1/ordersCriar pedido (com dados existentes)
Exemplo de payload
{
"source": {
"source": "api"
},
"customer": {
"customerId": "8a90c950-4ca1-42a1-89b3-543038d15633"
},
"items": [
{
"productId": "9982ba76-8e8a-4161-9722-f456cadad719",
"quantity": 1
}
]
}/v1/ordersCriar pedido com shipping address
Exemplo de payload
{
"source": {
"source": "api"
},
"customer": {
"name": "Ana Pereira",
"email": "ana@email.com",
"phone": "+258 84 987 6543"
},
"shippingAddress": {
"street": "Avenida 24 de Julho",
"number": "100",
"city": "Maputo",
"zipCode": "1100",
"country": "MZ"
},
"items": [
{
"originProductId": "prod_notebook_001",
"name": "Notebook Ultra Slim",
"quantity": 1,
"price": 5499.9
}
]
}/v1/ordersCriar pedido com shipping e delivery desabilitados
Exemplo de payload
{
"source": {
"source": "api"
},
"customer": {
"name": "Rui Mendes",
"email": "rui@email.com"
},
"shippingAddressDisabled": true,
"deliveryInfoDisabled": true,
"items": [
{
"originProductId": "ERP-CONSULTING-001",
"name": "Serviço de Consultoria",
"quantity": 5,
"price": 300
}
]
}/v1/ordersCriar pedido com shipping cost
Exemplo de payload
{
"source": {
"source": "api"
},
"customer": {
"name": "Joana Costa",
"email": "joana@email.com",
"phone": "+258 82 888 7777"
},
"shippingAddress": {
"street": "Rua dos Combatentes",
"number": "25",
"city": "Beira",
"zipCode": "2100",
"country": "MZ"
},
"shippingCost": 250,
"items": [
{
"productId": "c325e9d6-fc1b-4583-9da1-9648a02ac0fd",
"quantity": 1
}
]
}/v1/ordersListar todos os pedidos com paginação
/v1/orders/{{order_id}}Buscar pedido completo por ID
/v1/orders/{{order_id}}/statusConsultar status do pedido (para polling)
- Configure as variáveis
base_url,client_ideclient_secret - Execute a requisição POST /v1/auth/token
- O token será armazenado automaticamente na variável
access_token - Teste qualquer endpoint protegido, como GET /v1/products
v2.0.0