Download OpenAPI specification:
Public API for Vitorio payments.
Uma Account representa uma conta de pagamento vinculada a um cliente. Antes de criar uma conta, o cliente ja deve estar cadastrado (veja Customer).
POST /v1/customers POST /v1/accounts
| |
v v
Customer criado --------> Conta criada (PENDING)
|
GET /v1/accounts/{id}
(poll status)
|
v
Conta ACTIVE
POST /v1/customers (se ainda não existir).POST /v1/accounts informando o customer_id.PENDING enquanto o onboarding e processado.GET /v1/accounts/{id} ate o status mudar para ACTIVE.PENDING ---> ACTIVE <---> INACTIVE ---> CLOSED
| Transicao | Endpoint |
|---|---|
| ACTIVE -> INACTIVE | POST /v1/accounts/{id}/deactivate |
| INACTIVE -> ACTIVE | POST /v1/accounts/{id}/reactivate |
| INACTIVE -> CLOSED | POST /v1/accounts/{id}/close |
Proximo passo: Com a conta ativa, crie cobranças seguindo o fluxo de Payment.
Recupera os detalhes da conta do cliente especificado, incluindo saldo
| customerId | string ID do cliente (opcional) — quando informado, recupera os detalhes da conta deste cliente |
{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "status": "ACTIVE",
- "bankLegalName": "Celcoin Instituição de Pagamento S.A.",
- "bankCode": "509",
- "accountNumber": "12345678",
- "branch": "0001",
- "balance": {
- "balanceCents": 5000000,
- "blockedCents": 200000,
- "availableCents": 4800000
}, - "createdAt": "2025-01-15T14:30:00Z",
- "updatedAt": "2025-01-16T10:00:00Z",
- "pixKeys": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "key": "12345678000190",
- "keyType": "EVP",
- "createdAt": "2025-01-15T14:30:00Z"
}
]
}Cria uma conta bancária para o cliente especificado
| cnpj required | string CNPJ da empresa (14 dígitos) |
| phoneNumber required | string Número de telefone de contato da empresa |
| businessEmail required | string E-mail de contato da empresa |
| businessName required | string Razão social |
| tradingName required | string Nome fantasia |
| companyType required | string Enum: "PJ" "MEI" "ME" Tipo de pessoa jurídica |
| customerId | string UUID do cliente. Quando informado, cria uma conta bancária para este cliente. Omita para criar a conta do próprio tenant (somente API key vitorio ou JWT). |
required | Array of objects (account.v1.Owner) Proprietários/sócios da empresa |
required | object Endereço da empresa |
{- "cnpj": "12345678000190",
- "phoneNumber": "+5511999999999",
- "businessEmail": "contato@empresa.com.br",
- "businessName": "Empresa Exemplo Ltda",
- "tradingName": "Empresa Exemplo",
- "companyType": "PJ",
- "customerId": "550e8400-e29b-41d4-a716-446655440000",
- "owners": [
- {
- "ownerType": "SOCIO",
- "cpf": "12345678901",
- "fullName": "João da Silva",
- "phoneNumber": "+5511999999999",
- "email": "joao@example.com",
- "motherName": "Maria da Silva",
- "socialName": "João Silva",
- "birthDate": "15-06-1990",
- "isPoliticallyExposedPerson": false,
- "address": {
- "postalCode": "01310-100",
- "street": "Avenida Paulista",
- "number": "1000",
- "complement": "Sala 101",
- "neighborhood": "Bela Vista",
- "city": "São Paulo",
- "state": "SP"
}
}
], - "businessAddress": {
- "postalCode": "01310-100",
- "street": "Avenida Paulista",
- "number": "1000",
- "complement": "Sala 101",
- "neighborhood": "Bela Vista",
- "city": "São Paulo",
- "state": "SP"
}
}{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "status": "INITIATED"
}Recupera o status atual de onboarding da conta do cliente especificado
| customerId | string ID do cliente (opcional) — quando informado, recupera o status de onboarding da conta deste cliente |
{- "status": "INITIATED",
- "externalOnboardingId": "prop-123456",
- "createdAt": "2025-01-15T14:30:00Z",
- "updatedAt": "2025-01-16T10:00:00Z",
- "documents": [
- {
- "documentNumber": "DOC-001",
- "status": "PENDING",
- "createdAt": "2025-01-15T14:30:00Z",
- "updatedAt": "2025-01-16T10:00:00Z"
}
], - "rejectedReason": {
- "errorCode": "INVALID_DOCUMENT",
- "message": "The submitted document could not be verified"
}
}Fecha permanentemente a conta bancária do cliente especificado
| accountId required | string ID da conta (UUID) |
| reason required | string Motivo do encerramento da conta |
{- "reason": "Business dissolved"
}{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "status": "CLOSED"
}Desativa temporariamente a conta bancária do cliente especificado
| accountId required | string ID da conta (UUID) |
| reason required | string Motivo da desativação da conta |
{- "reason": "Suspicious activity detected"
}{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "status": "INACTIVE"
}Reativa uma conta bancária previamente desativada
| accountId required | string ID da conta (UUID) |
| reason required | string Motivo da reativação da conta |
{- "reason": "Investigation cleared"
}{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "status": "ACTIVE"
}O cadastro de clientes é o primeiro passo para utilizar a API da Vitorio. Um Customer representa uma pessoa física (PF) ou jurídica (PJ) que será associada a contas e cobranças.
POST /v1/customers --> Customer criado (status: ACTIVE)
POST /v1/customers.customer_id retornado será usado para criar contas (Account) e cobranças (Payment).PATCH /v1/customers/{id}.Próximo passo: Com o cliente cadastrado, abra uma conta seguindo o fluxo de Account.
Cria um novo cliente. Este endpoint deve ser utilizado apenas para cadastrar clientes diretos da sua empresa. Clientes dos seus clientes não devem ser registrados. Telefone e endereço são obrigatórios caso voce pretenda abrir uma conta para o cliente.
| name required | string |
| taxId required | string CPF (11 dígitos) ou CNPJ (14 dígitos). |
| externalId | string |
| phone | string |
object (customers.v1.Address) |
{- "name": "John Doe",
- "taxId": "12345678901",
- "externalId": "CUST-001",
- "phone": "+5511999999999",
- "address": {
- "postalCode": "string",
- "street": "string",
- "number": "string",
- "complement": "string",
- "neighborhood": "string",
- "city": "string",
- "state": "string"
}
}{- "data": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "John Doe",
- "taxId": "12345678901",
- "customerType": "PF",
- "externalId": "CUST-001",
- "phone": "+5511999999999",
- "address": {
- "postalCode": "string",
- "street": "string",
- "number": "string",
- "complement": "string",
- "neighborhood": "string",
- "city": "string",
- "state": "string"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
}Atualiza um cliente existente
| customerId required | string |
| name | string |
| externalId | string |
| phone | string |
object (customers.v1.Address) |
{- "name": "John Doe Updated",
- "externalId": "string",
- "phone": "string",
- "address": {
- "postalCode": "string",
- "street": "string",
- "number": "string",
- "complement": "string",
- "neighborhood": "string",
- "city": "string",
- "state": "string"
}
}{- "data": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "John Doe",
- "taxId": "12345678901",
- "customerType": "PF",
- "externalId": "CUST-001",
- "phone": "+5511999999999",
- "address": {
- "postalCode": "string",
- "street": "string",
- "number": "string",
- "complement": "string",
- "neighborhood": "string",
- "city": "string",
- "state": "string"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
}A API suporta dois metodos de pagamento: PIX e Boleto. Cada cobrança
é criada via POST /v1/payments com o campo method definindo o tipo.
POST /v1/payments --> Payment criado (PENDING)
|
Pagador efetua pagamento
|
v
Payment COMPLETED
| Opção | Descrição |
|---|---|
customer_id |
Seu cliente já cadastrado na plataforma |
payer (inline) |
Cliente do seu cliente - dados do pagador informados sem cadastro prévio |
| Opção | Descricao |
|---|---|
| Padrão | Valor creditado na sua conta Vitório |
account_id |
Valor creditado na conta Vitório do seu cliente |
Pre-requisitos: Customer cadastrado (se usar
customer_id) e Account ativa (se especificaraccount_id).
Cria uma cobrança individual (boleto ou PIX)
| amountCents required | string Valor do pagamento em centavos. Deve ser |
| paymentMethod required | string Enum: "PIX" "BOLETO" Método de pagamento |
| dueDate required | string Data de vencimento do pagamento (AAAA-MM-DD) |
| externalId required | string Chave de idempotência fornecida pelo cliente (alfanumérico, hífens, underscores; máx. 255 caracteres) |
| receiverAccountId required | string UUID da conta que recebe o pagamento. Use sua conta para receber pagamentos diretamente, ou a conta de um cliente para que ele receba. |
| payerCustomerId | string UUID de cliente existente como pagador |
object Informações do pagador anônimo (nome + documento) | |
object Configuração de pagamento PIX (quando payment_method é PIX) | |
object Configuração de pagamento por boleto (quando payment_method é BOLETO) |
{- "amountCents": 10000,
- "paymentMethod": "PIX",
- "dueDate": "2026-04-01",
- "externalId": "PAY-001",
- "receiverAccountId": "550e8400-e29b-41d4-a716-446655440000",
- "payerCustomerId": "660e8400-e29b-41d4-a716-446655440001",
- "anonymousPayer": {
- "name": "João da Silva",
- "taxId": "12345678901"
}, - "pixConfig": {
- "expirationDaysAfterDueDate": 0,
- "fine": {
- "modality": "FIXED_VALUE",
- "amount": "string"
}, - "interest": {
- "modality": "FIXED_VALUE",
- "amount": "string"
}, - "discount": {
- "modality": "FIXED_VALUE",
- "amount": "string",
- "untilDate": "2026-03-01"
}
}, - "boletoConfig": {
- "finePercent": 0,
- "interestPercent": 0,
- "deadlineDays": 0,
- "instructions": "string",
- "discount": {
- "modality": "FIXED_VALUE",
- "amount": "string",
- "limitDate": "2026-03-01"
}
}
}{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "status": "PENDING",
- "paymentMethod": "PIX",
- "amountCents": 10000,
- "dueDate": "2026-04-01",
- "pixQrCode": "string",
- "pixLocationUrl": "string",
- "boletoBarcode": "string",
- "boletoBankLine": "string"
}