LivePix API (2.0.0)
Download OpenAPI specification:Download
Para garantir o uso justo da API, cada endpoint é protegido por um limite de requisições que reseta a cada minuto. Se você ultrapassar o limite máximo de chamadas no mesmo minuto para um mesmo endpoint, a API passará a retornar HTTP 429 Too Many Requests
até que o limite seja resetado no próximo minuto.
Para saber qual o limite de cada endpoint, verifique o valor do header X-RateLimit-Limit
na resposta do endpoint.
A API LivePix utiliza OAuth2 para gerenciar as permissões de acesso a API. Você pode se autenticar utilizando suas credenciais de cliente ou como um usuário terceiro através do fluxo de autorização.
Crie uma aplicação nas configurações da sua conta para obter o client_id
e client_secret
necessários para os passos abaixo.
Para autenticar na sua própria conta, você pode utilizar o grant client_credentials
:
POST https://oauth.livepix.gg/oauth2/token
grant_type=client_credentials&client_id=<id do cliente>&client_secret=<segredo do cliente>&scope=<permissoes>
A requisição acima deve retornar o token de acesso para a conta conforme o exemplo abaixo:
{
"access_token": "...",
"expires_in": 3600,
"scope": "account:read wallet:read webhooks",
"token_type": "bearer"
}
Para solicitar permissão para acessar uma conta de terceiro, siga o fluxo de autorização abaixo:
- Redirecione o usuário para a URL abaixo (substitua os parâmetros pelos configurados na sua aplicação):
https://oauth.livepix.gg/oauth2/auth?client_id=<id do cliente>&redirect_uri=<url de redirecionamento>&response_type=code&scope=<permissoes>&state=<state>
O usuário será direcionado para uma página onde revisará as permissões solicitadas e poderá aprovar ou não a conexão.
Após o usuário aprovar, o usuário será redirecionado para a URL configurada no parâmetro
redirect_uri
com um parâmetrocode
na URL que será utilizado no passo a seguir.Utilize a requisição abaixo para trocar o token recebido no parâmetro
code
por um token de acesso que será utilizado para requisitar a API:
POST https://oauth.livepix.gg/oauth2/token
grant_type=authorization_code&client_id=<id do cliente>&client_secret=<segredo do cliente>&code=<valor do parametro code>&redirect_uri=<url de redirecionamento>
A requisição acima deve retornar o token de acesso para a conta conforme o exemplo abaixo:
{
"access_token": "...",
"expires_in": 3600,
"scope": "account:read wallet:read webhooks",
"token_type": "bearer"
}
Você deve utilizar os tokens emitidos até sua expiração para evitar chamadas desnecessárias ao servidor OAuth. Nossa equipe monitora constantemente a atividade em nossa API e caso seja detectado uso incorreto da emissão de tokens, a conta poderá ser encerrada.
Você pode configurar uma URL para receber notificações de mensagens e assinaturas recebidas.
Ao receber uma mensagem ou assinatura, a URL configurada será chamada com as informações do evento no corpo da requisição. Se a primeira chamada falhar, a URL será chamada a cada 10 minutos até que a mesma retorne uma resposta de sucesso (HTTP 200) em até 24 horas.
Por segurança, apenas algumas informações básicas são enviadas a URL configurada no webhook. Para obter todos os detalhes da mensagem ou assinatura, você deve realizar uma chamada a API.
Response samples
- 200
{- "data": {
- "id": "61021c7bdabe5e001225b65b",
- "username": "harrypotter",
- "displayName": "Harry Potter",
}
}
Pagamento recebido Webhook
Evento enviado quando o usuário recebe um pagamento
Request Body schema: application/json
userId | string ID do usuário |
clientId | string ID do cliente da aplicação |
event | string Evento |
object |
Responses
Request samples
- Payload
{- "userId": "61021c7bdabe5e001225b65b",
- "clientId": "61021c7bdabe5e001225b65b",
- "event": "new",
- "resource": {
- "id": "61021c7bdabe5e001225b65b",
- "reference": "61021c7bdabe5e001225b65b",
- "type": "payment"
}
}
Consultar pagamentos recebidos
Consultar pagamentos recebidos
Authorizations:
query Parameters
proof | string Filtrar pagamentos pelo comprovante |
reference | string Filtrar pagamentos pela referência |
currency | string Filtrar pagamentos pela moeda |
page | int Número da página |
limit | int Limite de itens por página |
Responses
Response samples
- 200
{- "data": [
- {
- "id": "61021c7bdabe5e001225b65b",
- "proof": "E0000000020210727170449258921630",
- "reference": "foo",
- "amount": 1000,
- "currency": "BRL",
- "createdAt": "2021-01-01T00:00:00-03:00"
}
]
}
Iniciar pagamento
Iniciar pagamento
Authorizations:
Request Body schema: application/json
amount | integer Valor do pagamento em centavos |
currency | string Moeda do pagamento (BRL, BNB, etc) |
redirectUrl | string URL para redirecionar o usuário de volta após o pagamento |
Responses
Request samples
- Payload
{- "amount": 1000,
- "currency": "BRL",
}
Response samples
- 201
{- "data": {
- "reference": "61021c7bdabe5e001225b65b",
}
}
Consultar pagamento
Consultar pagamento
Authorizations:
path Parameters
paymentId required | string ID do pagamento |
Responses
Response samples
- 200
{- "data": {
- "id": "61021c7bdabe5e001225b65b",
- "proof": "E0000000020210727170449258921630",
- "reference": "foo",
- "amount": 1000,
- "currency": "BRL",
- "createdAt": "2021-01-01T00:00:00-03:00"
}
}
Mensagem recebida Webhook
Evento enviado quando o usuário recebe uma mensagem
Request Body schema: application/json
userId | string ID do usuário |
clientId | string ID do cliente da aplicação |
event | string Evento |
object |
Responses
Request samples
- Payload
{- "userId": "61021c7bdabe5e001225b65b",
- "clientId": "61021c7bdabe5e001225b65b",
- "event": "new",
- "resource": {
- "id": "61021c7bdabe5e001225b65b",
- "reference": "61021c7bdabe5e001225b65b",
- "type": "message"
}
}
Consultar mensagens recebidas
Consultar mensagens recebidas
Authorizations:
query Parameters
proof | string Filtrar transações pelo comprovante |
reference | string Filtrar transações pela referência |
currency | string Filtrar transações pela moeda |
page | int Número da página |
limit | int Limite de itens por página |
Responses
Response samples
- 200
{- "data": [
- {
- "id": "61021c7bdabe5e001225b65b",
- "proof": "E0000000020210727170449258921630",
- "reference": "foo",
- "username": "Harry",
- "message": "Olá!",
- "amount": 1000,
- "currency": "BRL",
- "flagged": false,
- "createdAt": "2021-01-01T00:00:00-03:00"
}
]
}
Enviar mensagem
Enviar mensagem
Authorizations:
Request Body schema: application/json
username | string Nome de usuário autor da mensagem |
message | string Mensagem |
amount | integer Valor da mensagem em centavos |
currency | string Moeda da mensagem (BRL, BNB, etc) |
redirectUrl | string URL para redirecionar o usuário de volta após o pagamento |
Responses
Request samples
- Payload
{- "username": "harrypotter",
- "message": "Ola!",
- "amount": 1000,
- "currency": "BRL",
}
Response samples
- 201
{- "data": {
- "reference": "61021c7bdabe5e001225b65b",
}
}
Consultar mensagem
Consultar mensagem
Authorizations:
path Parameters
messageId required | string ID da mensagem |
Responses
Response samples
- 200
{- "data": {
- "id": "61021c7bdabe5e001225b65b",
- "proof": "E0000000020210727170449258921630",
- "reference": "foo",
- "username": "Harry",
- "message": "Olá!",
- "amount": 1000,
- "currency": "BRL",
- "flagged": false,
- "createdAt": "2021-01-01T00:00:00-03:00"
}
}
Endpoints para interagir com as assinaturas recebidas e planos de assinatura e iniciar o envio de novas assinaturas
Assinatura recebida Webhook
Evento enviado quando o usuário recebe uma assinatura
Request Body schema: application/json
userId | string ID do usuário |
clientId | string ID do cliente da aplicação |
event | string Evento |
object |
Responses
Request samples
- Payload
{- "userId": "61021c7bdabe5e001225b65b",
- "clientId": "61021c7bdabe5e001225b65b",
- "event": "new",
- "resource": {
- "id": "61021c7bdabe5e001225b65b",
- "reference": "61021c7bdabe5e001225b65b",
- "type": "subscription"
}
}
Assinatura cancelada Webhook
Evento enviado quando a assinatura é cancelada
Request Body schema: application/json
userId | string ID do usuário |
clientId | string ID do cliente da aplicação |
event | string Evento |
object |
Responses
Request samples
- Payload
{- "userId": "61021c7bdabe5e001225b65b",
- "clientId": "61021c7bdabe5e001225b65b",
- "event": "cancelled",
- "resource": {
- "id": "61021c7bdabe5e001225b65b",
- "reference": "61021c7bdabe5e001225b65b",
- "type": "subscription"
}
}
Consultar planos
Consultar planos
Authorizations:
query Parameters
page | int Número da página |
limit | int Limite de itens por página |
Responses
Response samples
- 200
{- "data": [
- {
- "id": "61021c7bdabe5e001225b65b",
- "slug": "basic",
- "name": "Basic",
- "description": "Basic",
- "amount": 1000,
- "currency": "BRL",
- "createdAt": "2021-01-01T00:00:00-03:00"
}
]
}
Criar plano
Criar plano
Authorizations:
Request Body schema: application/json
slug | string Slug do plano |
name | string Nome do plano |
description | string Descrição do plano |
amount | string Valor do plano em centavos |
currency | string Moeda do plano |
Responses
Request samples
- Payload
{- "slug": "basic",
- "name": "Basic",
- "description": "Basic",
- "amount": 1000,
- "currency": "BRL"
}
Response samples
- 201
{- "data": {
- "id": "61021c7bdabe5e001225b65b"
}
}
Exibir plano
Exibir plano
Authorizations:
path Parameters
planId required | string ID do plano |
Responses
Response samples
- 200
{- "data": [
- {
- "id": "61021c7bdabe5e001225b65b",
- "slug": "basic",
- "name": "Basic",
- "description": "Basic",
- "amount": 1000,
- "currency": "BRL",
- "createdAt": "2021-01-01T00:00:00-03:00"
}
]
}
Atualizar plano
Atualizar plano
Authorizations:
path Parameters
planId required | string ID do plano |
Request Body schema: application/json
slug | string Slug do plano |
name | string Nome do plano |
description | string Descrição do plano |
amount | string Valor do plano em centavos |
Responses
Request samples
- Payload
{- "slug": "basic",
- "name": "Basic",
- "description": "Basic",
- "amount": 1000
}
Consultar assinaturas recebidas
Consultar assinaturas recebidas
Authorizations:
query Parameters
status | string Enum: "active" "pending" "cancelled" Filtrar assinaturas pelo status |
currency | string Filtrar assinaturas pela moeda |
page | int Número da página |
limit | int Limite de itens por página |
Responses
Response samples
- 200
{- "data": [
- {
- "id": "61021c7bdabe5e001225b65b",
- "subscriber": "harrypotter",
- "months": 3,
- "currency": "BRL",
- "amount": 1000,
- "recurrence": "monthly",
- "status": "active",
- "renewAt": "2021-01-01T00:00:00-03:00",
- "updatedAt": "2021-01-01T00:00:00-03:00",
- "createdAt": "2021-01-01T00:00:00-03:00"
}
]
}
Enviar assinatura
Enviar assinatura
Authorizations:
Request Body schema: application/json
planId | string ID do plano de assinatura |
recurrence | string Enum: "monthly" "quarterly" "semiannual" "yearly" Recorrência da assinatura |
object | |
redirectUrl | string URL para redirecionar o usuário de volta após o pagamento |
Responses
Request samples
- Payload
{- "planId": "61021c7bdabe5e001225b65b",
- "recurrence": "monthly",
}
Response samples
- 201
{- "data": {
- "reference": "61021c7bdabe5e001225b65b",
}
}
Consultar assinatura
Consultar assinatura
Authorizations:
path Parameters
subscriptionId required | string ID da assinatura |
Responses
Response samples
- 200
{- "data": {
- "id": "61021c7bdabe5e001225b65b",
- "subscriber": "harrypotter",
- "months": 3,
- "currency": "BRL",
- "amount": 1000,
- "recurrence": "monthly",
- "status": "active",
- "renewAt": "2021-01-01T00:00:00-03:00",
- "updatedAt": "2021-01-01T00:00:00-03:00",
- "createdAt": "2021-01-01T00:00:00-03:00"
}
}
Consultar pagamentos da assinatura
Consultar pagamentos da assinatura
Authorizations:
path Parameters
subscriptionId required | string ID da assinatura |
query Parameters
proof | string Filtrar pagamentos pelo comprovante |
page | int Número da página |
limit | int Limite de itens por página |
Responses
Response samples
- 200
{- "data": [
- {
- "id": "61021c7bdabe5e001225b65b",
- "proof": "E0000000020210727170449258921630",
- "amount": 1000,
- "createdAt": "2021-01-01T00:00:00-03:00"
}
]
}
Response samples
- 200
{- "data": [
- {
- "id": "61021c7bdabe5e001225b65b",
- "type": "discord-role",
- "title": "Grupo dos Apoiadores",
- "description": "Tenha acesso ao grupo dos apoiadores no Discord!",
- "triggers": [ ],
- "config": { },
- "amount": 100,
- "status": "Enabled",
- "updatedAt": "2021-01-01T00:00:00-03:00",
- "createdAt": "2021-01-01T00:00:00-03:00"
}
]
}
Consultar recompensas concedidas
Consultar recompensas concedidas
Authorizations:
path Parameters
rewardId required | string ID da recompensa |
Responses
Response samples
- 200
{- "data": [
- {
- "id": "61021c7bdabe5e001225b65b",
- "user": {
- "id": "61021c7bdabe5e001225b65b",
- "username": "harrypotter"
}, - "data": { },
- "status": "Enabled",
- "updatedAt": "2021-01-01T00:00:00-03:00",
- "createdAt": "2021-01-01T00:00:00-03:00"
}
]
}
Response samples
- 200
{- "data": [
- {
- "symbol": "BRL",
- "minimumAmount": 100,
- "decimals": 2,
- "crypto": {
- "network": "bsc",
- "address": 5.0265035345798305e+45,
- "userAddress": 5.0265035345798305e+45
}
}
]
}
Consultar transações
Consultar transações
Authorizations:
path Parameters
currency required | string Example: BRL Moeda das transações |
query Parameters
page | int Número da página |
limit | int Limite de itens por página |
Responses
Response samples
- 200
{- "data": [
- {
- "proof": "E0000000020210727170449258921630",
- "currency": "BRL",
- "amount": 100,
- "balance": 100,
- "timestamp": 1637626062
}
]
}
Consultar transações pendentes de liberação
Consultar transações pendentes de liberação
Authorizations:
path Parameters
currency required | string Example: BRL Moeda das transações |
query Parameters
page | int Número da página |
limit | int Limite de itens por página |
Responses
Response samples
- 200
{- "data": [
- {
- "proof": "E0000000020210727170449258921630",
- "currency": "BRL",
- "amount": 100,
- "releaseAt": 1637626062,
- "timestamp": 1637626062
}
]
}