Introdução
Para começar a utilizar a API do Procfy, você precisará de um token de API. Os tokens de API permitem que o Procfy rastreie o uso de sua API por token.
Os tokens de API são únicas para cada conta e podem ser gerenciadas pelo painel api tokens.
Cada token possui um conjunto de permissões que determinam quais recursos da API ela pode acessar. Por exemplo, uma token pode ter permissão para criar e excluir documentos, mas não para criar ou excluir contatos. Você pode gerenciar essas permissões no painel api tokens.
Criando um token de API
Para criar um token de API, acesse o painel api key ou clique no seu nome no canto superior esquerdo da tela e selecione Configurações da Conta.

Após acessar as Configurações da Conta, selecione a opção Tokens da API

Ao acessar a tela de Tokens da API pela primeira vez, você verá uma imagem semelhante a esta:

Para criar um novo token de API, clique no botão Adicionar.
Configurando um token de API
Ao clicar no botão Adicionar, você verá uma imagem semelhante a esta:

Nessa interface, é possível personalizar o nome do token de API, incluir uma descrição, se desejado e definir a duração do token. Após concluir a configuração do token de API, basta clicar no botão Criar Api Token para aplicar as configurações.
Visualizando um token de API
Após acessar as Configurações da Conta, e selecionar a opção Tokens da API, você verá uma imagem semelhante a esta:

Nessa tela, é possível visualizar o nome do token de API, verificar seu status de ativação, consultar a última vez que foi utilizada e conferir a descrição. Para visualizar o token, basta clicar na seta localizada no canto direito da tela.
Ao clicar na seta, você verá uma imagem semelhante a esta:

Nessa tela, você pode visualizar a chave vinculada ao token de API. Para copiá-la, simplesmente clique no botão Copiar. Se desejar editar o token de API, utilize o botão Editar. Além disso, é possível excluir o token de API clicando no botão Excluir.
Postman
Introdução
O Postman é uma ferramenta que permite testar e documentar APIs. Com o Postman, você pode enviar solicitações HTTP para o servidor e visualizar as respostas. O Postman também permite criar coleções de solicitações, que podem ser compartilhadas com outras pessoas.
Para começar a usar o Postman, você precisa criar uma conta no site postman.com. Após criar uma conta, você pode baixar o aplicativo Postman e fazer login com suas credenciais.
Importando Coleção no Postman
Você pode acessar a coleção da API do Procfy no Postman clicando no botão abaixo:
Importando a coleção
Para importar a coleção no Postman, siga os passos abaixo:
1. Clique no botão Run in Postman e depois em Fork Collection.

2. Faça login no Postman, se necessário.

3. Clique no botão Fork collection para importar a coleção.

4. Após importar a coleção, você verá a coleção Procfy API no menu lateral esquerdo.

Configurando o ambiente
Para configurar as variáveis de ambiente no Postman, siga os passos abaixo:
1. Clique no Procfy API no menu lateral esquerdo.

2. Clique na aba Authorization.

3. No campo Bearer Token, insira a chave de API, que pode ser obtida no painel api tokens, veja como criar uma chave de API aqui.

Testando a API com o Postman
O Postman é uma ferramenta que permite testar e documentar APIs. Com o Postman, você pode enviar solicitações HTTP para o servidor e visualizar as respostas. Para testar a API do Procfy no Postman, siga os passos abaixo:
1. Selecione o que deseja testar no menu lateral esquerdo.

2. Após selecionar o que deseja testar, visualize as solicitações disponíveis.

3. Selecione a solicitação que deseja testar.

4. Clique no botão Send para enviar a solicitação.

5. Visualize a resposta da solicitação.

6. Pronto! Agora você pode testar a API do Procfy no Postman.
Autenticação
Introdução
Exemplo de requisição com token de acesso
curl -X GET \
-H "Authorization: Bearer seu-token-aqui" \
https://api.procfy.io/api/v1/exemplo
const axios = require('axios');
const TOKEN = 'seu_token_de_acesso';
const url = 'https://api.exemplo.com/recurso';
axios.get(url, {
headers: {
'Authorization': `Bearer ${TOKEN}`
}
})
import requests
url = "https://api.procfy.io/api/v1/exemplo"
headers = {
"Authorization": "Bearer seu-token-aqui"
}
response = requests.get(url, headers=headers)
print(response.text)
require 'httparty'
TOKEN = "seu_token_de_acesso"
url = "https://api.exemplo.com/recurso"
response = HTTParty.get(url, headers: { "Authorization" => "Bearer #{TOKEN}" })
puts response.body
O Procfy utiliza o padrão de autenticação baseado em token. Para autenticar uma requisição, você deve enviar o token de acesso no cabeçalho da requisição.
Todos os tokens criados no painel api tokens são compostos de 64 caracteres.
O envio do token é composto por duas partes: o tipo de autenticação e o token em si. O tipo de autenticação deve ser Bearer
e o token logo em seguida,
conforme o exemplo ao lado direito.
Erros
Ao enviar uma requisição com um token de acesso em branco, a API retornará o seguinte JSON com o status HTTP 400:
{
"error": "Token not found",
"description": "Token not found, please check your request"
}
Ao enviar uma requisição com um token de acesso inválido, a API retornará o seguinte JSON com o status HTTP 401:
{
"error": "Invalid token",
"description": "Invalid token, certify that you are using the correct token"
}
Ao enviar uma requisição com um token de acesso já expirado, a API retornará o seguinte JSON com o status HTTP 403:
{
"error": "Token expired",
"description": "Token expired, please create a new token"
}
A API do Procfy utiliza diferentes códigos de status HTTP para indicar o sucesso ou falha de uma requisição. O código de status é retornado no cabeçalho da resposta, e o corpo da resposta contém um JSON com mais detalhes sobre o erro.
Código do erro | Significado |
---|---|
400 | Bad Request -- Suas requisições estão mal formatadas |
401 | Unauthorized -- Seu token de acesso é inválido |
403 | Forbidden -- Você não tem permissão para acessar este recurso |
Paginação
Introdução
O Procfy utiliza o padrão de paginação para retornar os resultados das requisições. A paginação é utilizada para dividir os resultados em páginas, facilitando a visualização e a navegação entre os resultados.
A paginação é utilizada em todas as rotas que retornam uma lista de resultados. Por exemplo, a rota de visualizar várias transações retorna uma lista de transações, e utiliza a paginação para dividir os resultados em páginas.
A paginação é controlada através dos parâmetros page
e items
. O parâmetro page
indica o número da página, e o parâmetro items
indica a quantidade de itens por página.
Parâmetro | Tipo | Descrição |
---|---|---|
page | integer | Número da página |
items | integer | Quantidade de itens por página |
Valores aceitos para os parâmetros
page
O parâmetro page
deve ser um número inteiro maior que zero. O valor padrão é 1
.
items
O parâmetro items
deve ser um número inteiro maior que zero. O valor padrão é 25
.
Exemplo
Exemplo de requisição para listar todas as transações (1ª página)
GET /api/v1/transactions
Exemplo de resposta para listar todas as transações (1ª página)
{
"page": {
"page": 1,
"items": 25,
"pages": 2,
"last": 2,
"next": 2,
"prev": null,
"count": 39,
"from": 1,
"to": 25
},
"data": [...]
}
Exemplo de requisição para listar todas as transações (2ª página)
GET /api/v1/transactions?page=2
Exemplo de resposta para listar todas as transações (2ª página)
{
"page": {
"page": 2,
"items": 25,
"pages": 2,
"last": 2,
"next": null,
"prev": 1,
"count": 39,
"from": 26,
"to": 39
},
"data": [...]
}
Vamos fazer uma requisição para a API para listar todas as transações. Para isso, vamos utilizar o endpoint GET api/v1/transactions
.
A primeira requisição pode ser feita sem a inclusão de parâmetros, o que a API interpretará como a solicitação da primeira página. Caso deseje acessar uma página específica, basta fornecer o número da página no parâmetro page
.
Observe que os objetos que estão dentro da paginação são retornados no atributo data
. Se os objetos forem de outro tipo, como contas bancárias, os nomes dos objetos presentes na página também serão incluídos no atributo data
. Veja mais sobre isso na seção Acessando objetos de uma página.
Acessando objetos de uma página
Exemplo de resposta de uma requisição para listar todas as transações (1ª página)
{
"page": {
"page": 1,
"items": 25,
"pages": 2,
"last": 2,
"next": 2,
"prev": null,
"count": 39,
"from": 1,
"to": 25
},
"data": [...]
}
Exemplo de resposta de uma requisição para listar todos os contatos (1ª página)
{
"page": {
"page": 1,
"items": 25,
"pages": 2,
"last": 2,
"next": 2,
"prev": null,
"count": 39,
"from": 1,
"to": 25
},
"data": [...]
}
Ao realizar requisições para listar objetos paginados, como transações ou contatos, a API retorna uma estrutura consistente para facilitar a manipulação e a navegação pelos dados. Vamos explorar dois exemplos: transações e contatos.
Exemplo
Ao requisitar a listagem de todas as transações, a resposta é um objeto contendo o atributo data
, o qual encapsula uma lista de transações disponíveis. A estrutura adotada facilita a identificação e manipulação desses dados específicos.
De maneira análoga, ao requisitar a listagem de contatos, a resposta apresenta o atributo data
contendo a lista correspondente. A estrutura é a mesma, independentemente do tipo de objeto solicitado.
Exemplo Prático
Exemplo de como acessar objetos de uma página
require 'httparty'
response = HTTParty.get('https://api.procfy.io/api/v1/transacoes?page=1')
# Acessando objetos de uma página
transactions = response.parsed_response['transactions']
# Agora, você pode manipular a lista de transações conforme necessário
puts transactions
const axios = require('axios');
axios.get('https://api.procfy.io/api/v1/transacoes?page=1')
.then(response => {
// Acessando objetos de uma página
const transactions = response.data.transactions;
// Agora, você pode manipular a lista de transações conforme necessário
console.log(transactions);
})
.catch(error => console.error(error));
import requests
api_url = 'https://api.procfy.io/api/v1/transacoes?page=1'
response = requests.get(api_url)
# Acessando objetos de uma página
transactions = response.json()['transactions']
# Agora, você pode manipular a lista de transações conforme necessário
print(transactions)
#!/bin/bash
API_URL="https://api.procfy.io/api/v1/transacoes?page=1"
# Fazendo a requisição e armazenando a resposta em um arquivo temporário
response_file=$(mktemp)
curl -s "$API_URL" > "$response_file"
# Acessando objetos de uma página
transactions=$(jq -r '.transactions' "$response_file")
# Agora, você pode manipular a lista de transações conforme necessário
echo "$transactions"
# Limpando o arquivo temporário
rm "$response_file"
Considerando a requisição para listar transações, ao acessar response.data, você terá acesso direto à lista de transações retornadas. Essa abordagem proporciona clareza e praticidade ao trabalhar com objetos paginados em ambientes de programação.
Erros
Enviando items com valor menor ou igual a zero
{
"error": "Pagination error",
"description": "expected :items >= 1; got 0"
}
Enviando page com valor menor ou igual a zero
{
"error": "Pagination error",
"description": "expected :page >= 1; got 0"
}
Parâmetros menores ou iguais a zero
Se a requisição enviar o parâmetro page
com um valor menor ou igual a zero, ou enviar o parametro items
com um valor menor ou igual a zero, a API retornará os erros ao lado.
Enviando page com valor
99
, sendo que o número de páginas é2
{
"error": "Pagination error",
"description": "expected :page in 1..2; got 99"
}
Parâmetros maiores que o número de páginas
Caso o parâmetro page
seja maior que o número de páginas, a API retornará o erro ao lado.
Padrão de respostas
Visualizando vários objetos
Exemplo de resposta contendo uma lista de transações
{
"page": {
"page": 1,
"items": 25,
"pages": 2,
"last": 2,
"next": 2,
"prev": null,
"count": 39,
"from": 1,
"to": 25
},
"data": [...]
}
Por padrão a API busca retornar os JSONs no mesmo padrão, para facilitar a integração com a API. Abaixo você pode ver um exemplo de como é o padrão de resposta da API.
Quando a API retorna uma lista de objetos, ela retorna um JSON com os seguintes atributos:
Atributo | Tipo | Descrição |
---|---|---|
page | object | Objeto da paginação |
objects | array | Lista de objetos |
O objeto da paginação possui os seguintes atributos:
Atributo | Tipo | Descrição |
---|---|---|
page | integer | Número da página |
items | integer | Quantidade de itens por página |
pages | integer | Quantidade de páginas |
last | integer | Número da última página |
next | integer | Número da próxima página |
prev | integer | Número da página anterior |
count | integer | Quantidade total de itens |
from | integer | Número do primeiro item da página |
to | integer | Número do último item da página |
Visualizando um objeto específico
Exemplo de resposta contendo uma transação específica
{
"id": 1,
"name": "Pagamento de boleto",
"amount": 1000,
"status": "paid",
"payment_date": "2016-01-01",
"transaction_date": "2016-01-01",
"created_at": "2016-01-01T00:00:00.000Z",
"updated_at": "2016-01-01T00:00:00.000Z",
"bank_account": {
"id": 1,
"name": "Conta Corrente",
"default": true,
"balance_cents": 0,
"balance_currency": "BRL",
"agency": null
}
}
Quando a API retorna um objeto específico, ela retorna um JSON com os seguintes atributos:
Atributo | Tipo | Descrição |
---|---|---|
object | object | Objeto específico |
Criando objetos
Exemplo de requisição para criar uma transação
POST /api/v1/transactions
Exemplo de corpo da requisição para criar uma transação
{
"name": "Pagamento de aluguel",
"amount": 100000,
"due_date": "2019-01-01",
"account_id": 1,
"category_id": 1,
"bank_account_id": 1
}
Exemplo de resposta para criar uma transação
{
"id": 1,
"name": "Pagamento de aluguel",
"amount": 100000,
"status": "paid",
"payment_date": "2019-01-01",
"transaction_date": "2019-01-01",
"created_at": "2019-01-01T00:00:00.000Z",
"updated_at": "2019-01-01T00:00:00.000Z",
"bank_account": {
"id": 1,
"name": "Conta Corrente",
"default": true,
"balance_cents": 0,
"balance_currency": "BRL",
"agency": null
}
}
Para criar um objeto, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao objeto que deseja criar.
A API vai retornar o objeto criado, caso não ocorra nenhum erro.
Editando objetos
Exemplo de requisição para editar uma transação
PUT /api/v1/transactions/1
Exemplo de corpo da requisição para editar uma transação
{
"name": "Pagamento de aluguel",
"amount": 100000,
"due_date": "2019-01-01",
"account_id": 1,
"category_id": 1
}
Exemplo de resposta para editar uma transação
{
"id": 1,
"name": "Pagamento de aluguel",
"amount": 100000,
"status": "paid",
"due_date": "2019-01-01",
"transaction_date": "2019-01-01",
"created_at": "2019-01-01T00:00:00.000Z",
"updated_at": "2019-01-01T00:00:00.000Z",
"bank_account": {
"id": 1,
"name": "Conta Corrente",
"default": true,
"balance_cents": 0,
"balance_currency": "BRL",
"agency": null
}
}
Para editar um objeto, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao objeto que deseja editar.
A API vai retornar o objeto editado, caso não ocorra nenhum erro.
Transações
Introdução
Na API do Procfy as transações são representadas por um objeto JSON com os seguintes atributos:
Atributo | Tipo | Descrição |
---|---|---|
id | integer | Identificador único da transação |
name | string | Descrição da transação |
description | text | Observações da transação |
due_date | date | Data de vencimento da transação |
paid | boolean | Indica se a transação foi paga |
paid_at | date | Data de pagamento da transação |
competency_date | date | Data de competência da transação |
document_number | string | Número do documento da transação |
installment_number | integer | Número da parcela da transação |
installment_total | integer | Total de parcelas da transação |
amount_cents | integer | Valor da transação em centavos |
amount_currency | string | Moeda da transação |
exchanged_amount_cents | integer | Valor da transação em centavos convertido para a moeda da conta |
exchanged_amount_currency | string | Moeda da transação convertida para a moeda da conta |
created_at | string | Data de criação da transação |
bank_account | object | Objeto com os dados da conta bancária da transação |
transaction_type | string | Tipo da transação |
payment_method | string | Método de pagamento da transação |
payment_type | string | Tipo de pagamento da transação |
transfer_to_id | integer | Identificador único da conta bancária de destino da transferência |
Alguns atributos quando não informados, são preenchidos automaticamente com valores padrão:
Atributo | Valor padrão |
---|---|
paid | false |
transaction_type | revenue |
payment_type | on_cash |
payment_method | no_payment_method |
amount_cents | 0 |
amount_currency | BRL |
Rotas
Método | Endpoint | Descrição |
---|---|---|
GET | /api/v1/transactions | Visualizar várias transações |
GET | /api/v1/transactions/:id | Visualizar uma transação específica |
POST | /api/v1/transactions | Criar uma transação |
PUT | /api/v1/transactions/:id | Editar uma transação |
DELETE | /api/v1/transactions/:id | Excluir |
Visualizar várias transações
GET /api/v1/transactions
O Procfy utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Para visualizar várias transações, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/transactions
Parâmetros aceitos
Parâmetro | Tipo | Descrição |
---|---|---|
page | integer | Número da página |
items | integer | Quantidade de itens por página |
Visualizando uma transação específica
GET /api/v1/transactions/:id
Para visualizar uma transação específica, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/transactions/:id
Criar uma transação
POST /api/v1/transactions
Para criar um objeto, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao objeto que deseja criar.
POST /api/v1/transactions
Editar uma transação
PUT /api/v1/transactions/:id
Para editar um objeto, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao objeto que deseja editar.
PUT /api/v1/transactions/:id
Excluir uma transação
DELETE /api/v1/transactions/:id
Para excluir um objeto, você deve fazer uma requisição para a API utilizando o método DELETE
no endpoint correspondente ao objeto que deseja excluir.
DELETE /api/v1/transactions/:id
Visualizando várias transações
Exemplo de requisição para visualizar várias transações
GET /api/v1/transactions
Exemplo de resposta para visualizar várias transações
{
"page": {
"page": 1,
"items": 25,
"pages": 2,
"last": 2,
"next": 2,
"prev": null,
"count": 50,
"from": 1,
"to": 25
},
"data": [
{
"id": 1,
"name": "Pagamento de aluguel",
"amount_cents": 100000,
"amount_currency": "BRL",
"transaction_type": "fixed_expense",
"payment_method": "bank_slip",
"payment_type": "on_cash",
"due_date": "2019-01-01",
"paid": true,
"bank_account": {
"id": 1,
"name": "Conta Corrente",
"default": true,
"balance_cents": 0,
"balance_currency": "BRL",
"agency": null
}
},
{
"id": 2,
"description": "Recebimento de aluguel",
"amount_cents": 100000,
"amount_currency": "BRL",
"transaction_type": "revenue",
"payment_method": "bank_slip",
"payment_type": "on_cash",
"due_date": "2019-01-01",
"paid": true,
"bank_account": {
"id": 1,
"name": "Conta Corrente",
"default": true,
"balance_cents": 0,
"balance_currency": "BRL",
"agency": null
}
}
]
}
A API disponibiliza algumas opções de filtro para a listagem de transações. Os parâmetros aceitos são:
Parâmetro | Tipo | Descrição |
---|---|---|
page | integer | Número da página |
items | integer | Quantidade de itens por página |
start_date | date | Data de início do período de busca das transações |
end_date | date | Data de fim do período de busca das transações |
bank_account_ids | array | IDs das contas bancárias |
category_ids | array | IDs das categorias |
contact_ids | array | IDs dos contatos |
cost_center_ids | array | IDs dos centros de custo |
A API utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Criando uma transação
Exemplo de requisição para criar uma transação
POST /api/v1/transactions
Exemplo de corpo da requisição para criar uma transação
{
"name": "Pagamento de aluguel",
"amount_cents": 100000,
"amount_currency": "BRL",
"transaction_type": "fixed_expense",
"payment_method": "bank_slip",
"payment_type": "on_cash",
"bank_account_id": 1,
"due_date": "2019-01-01",
"paid": true
}
Exemplo de resposta para criar uma transação
{
"id": 1,
"name": "Pagamento de aluguel",
"amount_cents": 100000,
"amount_currency": "BRL",
"transaction_type": "fixed_expense",
"payment_method": "bank_slip",
"payment_type": "on_cash",
"due_date": "2019-01-01",
"paid": true,
"bank_account": {
"id": 1,
"name": "Conta Corrente",
"default": true,
"balance_cents": 0,
"balance_currency": "BRL",
"agency": null
}
}
Para criar um objeto, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao
objeto que deseja criar.
A API vai retornar o objeto criado, caso não ocorra nenhum erro.
O corpo da requisição deve conter um objeto com os atributos necessários para a criação do objeto.
Os atributos são:
Atributo | Tipo | Obrigatório | Descrição |
---|---|---|---|
name | string | não | Descrição da transação |
bank_account_id | integer | sim | ID da conta bancária |
due_date | date | sim | Data de vencimento da transação |
paid | boolean | não | Indica se a transação foi paga |
paid_at | date | não | Data de pagamento da transação |
competency_date | date | não | Data de competência da transação |
document_number | string | não | Número do documento da transação |
installment_number | integer | não | Número da parcela |
installment_total | integer | não | Total de parcelas |
amount_cents | integer | sim | Valor da transação em centavos |
amount_currency | string | sim | Moeda da transação |
description | text | não | Observações da transação |
exchanged_amount_cents | integer | não | Valor da transação convertido em centavos |
exchanged_amount_currency | string | não | Moeda da transação convertida |
transaction_type | string | sim | Tipo da transação |
payment_method | string | sim | Método de pagamento da transação |
payment_type | string | sim | Tipo de pagamento da transação |
Editando uma transação
Exemplo de requisição para editar uma transação
PUT /api/v1/transactions/:id
Exemplo de corpo da requisição para editar uma transação
{
"name": "Pagamento de aluguel",
"amount_cents": 100000,
"amount_currency": "BRL",
"transaction_type": "fixed_expense",
"payment_method": "bank_slip",
"payment_type": "on_cash",
"contact_id": 1,
"category_id": 1,
"bank_account_id": 1,
"due_date": "2019-01-01",
"paid": false
}
Exemplo de resposta para editar uma transação
{
"id": 1,
"name": "Pagamento de aluguel",
"amount_cents": 100000,
"amount_currency": "BRL",
"transaction_type": "fixed_expense",
"payment_method": "bank_slip",
"payment_type": "on_cash",
"due_date": "2019-01-01",
"paid": false,
"bank_account": {
"id": 1,
"name": "Conta Corrente",
"default": true,
"balance_cents": 0,
"balance_currency": "BRL",
"agency": null
}
}
Para editar um objeto, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao
objeto que deseja editar.
A API vai retornar o objeto editado, caso não ocorra nenhum erro.
O corpo da requisição deve conter um objeto com os atributos necessários para a edição do objeto.
Veja a lista de atributos necessários para a edição do objeto na tabela de atributos.
Enums
Os enums são utilizados para definir os valores permitidos para os atributos de um objeto. A sua utilização é importante para garantir a integridade dos dados.
Transaction Type
O atributo transaction_type
é utilizado para definir o tipo da transação.
Valor | Descrição |
---|---|
revenue | Receita |
fixed_expense | Despesa Fixa |
variable_expense | Despesa Variável |
payroll | Folha de Pagamento |
tax | Imposto |
transfer | Transferência |
Payment Type
O atributo payment_type
é utilizado para definir o tipo de pagamento.
Valor | Descrição |
---|---|
on_cash | À Vista |
installment | Parcelado |
recurring | Recorrente |
Payment Method
O atributo payment_method
é utilizado para definir o método de pagamento.
Valor | Descrição |
---|---|
no_payment_method | Indefinido |
credit_card | Cartão de Crédito |
debit_card | Cartão de Débito |
bank_slip | Boleto Bancário |
check | Cheque |
cash | Dinheiro |
pix | Pix |
bank_transfer | Transferência Bancária |
direct_debit | Débito Direto |
promissory | Promissória |
Frequencies
O atributo frequency
é utilizado para definir a frequência de uma transação recorrente.
Valor | Descrição |
---|---|
daily | Diário |
weekly | Semanal |
biweekly | Quinzenal |
monthly | Mensal |
bimonthly | Bimestral |
quarterly | Trimestral |
semiannual | Semestral |
annual | Anual |
Erros
Erros que podem ocorrer durante a execução de uma transação.
Os erros de validação retornam um objeto com a chave error
e description
com a mensagem de erro. A mensagem de erro pode variar de acordo com o erro ocorrido.
Erros de validação
Exemplo de resposta para erro de validação na criação ou edição de uma transação (Objeto em branco)
{
"error": "Registro inválido",
"description": "A validação falhou: Data não pode ficar em branco, Bank account não pode ficar em branco, Bank account é obrigatório(a)"
}
Os erros de validação são retornados quando os atributos obrigatórios não são informados ou quando os atributos informados não estão de acordo com as regras de validação.
Erros de enum
Exemplo de resposta para erro de enum na criação ou edição de uma transação (trasaction_type)
{
"error": "Enum inválido",
"description": "Tipo de transação inválido"
}
Exemplo de resposta para erro de enum na criação ou edição de uma transação (payment_method)
{
"error": "Enum inválido",
"description": "Método de pagamento inválido"
}
Exemplo de resposta para erro de enum na criação ou edição de uma transação (payment_type)
{
"error": "Enum inválido",
"description": "Tipo de pagamento inválido"
}
Os erros de enum são retornados quando os atributos informados não estão de acordo com os valores permitidos.
Anexos de transações
Introdução
Na API do Procfy os anexos são representadas por um objeto JSON com os seguintes atributos:
Atributo | Tipo | Descrição |
---|---|---|
id | integer | Identificador único da transação |
filename | string | Nome do arquivo |
byte_size | integer | Tamanho do arquivo |
content_type | string | Tipo do arquivo |
created_at | date | Data de criação |
url | url | Url do anexo para o envio do mesmo |
Rotas
Método | Endpoint | Descrição |
---|---|---|
GET | /api/v1/transactions/:id/attachments | Visualizar todos os anexos da transação |
GET | /api/v1/transactions/:id/attachments/:id | Visualizar um anexo específico da transação |
POST | /api/v1/transactions/:id/attachments | Criar anexo em uma transação |
DELETE | /api/v1/transactions/:id/attachments/:id | Excluir um anexo de uma transação |
GET | /api/v1/transactions/:id/attachments/:id/download | Baixar o arquivo |
Visualizar todos os anexos da transação
GET /api/v1/transactions/:id/attachments
O Procfy utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Para visualizar vários anexos, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/transactions/:id/attachments
Parâmetros aceitos
Parâmetro | Tipo | Descrição |
---|---|---|
page | integer | Número da página |
items | integer | Quantidade de itens por página |
Visualizar uma anexo específico da transação
GET /api/v1/transactions/:id/attachments/:id
Para visualizar um anexo específico, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/transactions/:id/attachments/:id
Criar anexo em uma transação
POST /api/v1/transactions/:id/attachments
Para criar um objeto, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao objeto que deseja criar.
POST /api/v1/transactions/:id/attachments
Excluir uma anexo da transação
DELETE /api/v1/transactions/:id/attachments/:id
Para excluir um objeto, você deve fazer uma requisição para a API utilizando o método DELETE
no endpoint correspondente ao objeto que deseja excluir.
DELETE /api/v1/transactions/:id/attachments/:id
Baixar o arquivo
GET /api/v1/transactions/:id/attachments/:id/download
Para fazer download de um arquivo, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao arquivo que deseja fazer o download.
GET /api/v1/transactions/:id/attachments/:id/download
Visualizar todos os anexos da transação
Exemplo de requisição para visualizar todos os anexos da transação
GET /api/v1/transactions/:id/attachments
Exemplo de resposta para visualizar todos os anexos da transação
{
"page": {
"page": 1,
"items": 50,
"pages": 1,
"last": 1,
"next": null,
"prev": null,
"count": 2,
"from": 1,
"to": 2
},
"data": [
{
"id": 179,
"filename": "2022.xlsx",
"byte_size": 242071,
"content_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"created_at": "2024-11-04T14:17:15.799-03:00",
"url": "https://api.procfy.io/v1/transactions/14923/attachments/179/download"
},
{
"id": 183,
"filename": "my",
"byte_size": 39898,
"content_type": "image/jpeg",
"created_at": "2024-11-06T14:22:39.683-03:00",
"url": "https://api.procfy.io/api/v1/transactions/14923/attachments/183/download"
}
]
}
A API disponibiliza algumas opções de filtro para a listagem de anexos. Os parâmetros aceitos são:
Parâmetro | Tipo | Descrição |
---|---|---|
page | integer | Número da página |
items | integer | Quantidade de itens por página |
A API utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Visualizar um anexo específico da transação
Exemplo de requisição para visualizar um anexo específico da transação
GET /api/v1/transactions/:id/attachments/:id
Exemplo de resposta para visualizar um anexo específico da transação
{
"id": 691042,
"filename": "Backup-Procfy-06-11-2024 14-55-05.xlsx",
"byte_size": 33164,
"content_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"created_at": "2024-11-06T15:34:24.871-03:00",
"url": "https://api.procfy.io/api/v1/transactions/45144183/attachments/691042/download"
}
Para consultar um objeto, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao
objeto que deseja consultar.
A API vai retornar o objeto consultado, caso não ocorra nenhum erro.
Criando anexo em uma transação
Exemplo de requisição para criar anexo em uma transação
POST /api/v1/transactions/:id/attachments
Exemplo de resposta para criar uma transação
{
"id": 186,
"filename": "my",
"byte_size": 39898,
"content_type": "image/jpeg",
"created_at": "2024-11-06T16:09:10.038-03:00",
"url": "https://api.procfy.io/api/v1/transactions/14923/attachments/186/download"
}
Para criar um objeto, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao
objeto que deseja criar.
A API vai retornar o objeto criado, caso não ocorra nenhum erro.
O corpo da requisição deve conter um objeto com os atributos necessários para a criação do objeto.
Os atributos são:
Atributo | Tipo | Obrigatório | Descrição |
---|---|---|---|
filename | file | sim | Arquivo que deseja anexar |
Excluindo um anexo de uma transação
Exemplo de requisição para excluir um anexo de uma transação
DELETE /api/v1/transactions/:id/attachments/:id
Exemplo de resposta para excluir um anexo de uma transação
{
"id": 184,
"filename": "my",
"byte_size": 39898,
"content_type": "image/jpeg",
"created_at": "2024-11-06T16:02:45.841-03:00",
"url": "https://api.procfy.io/api/v1/transactions/14923/attachments/183/download"
}
Para excluir um objeto, você deve fazer uma requisição para a API utilizando o método DELETE
no endpoint correspondente ao
objeto que deseja excluir.
A API vai retornar o objeto excluido, caso não ocorra nenhum erro.
Download de arquivo
Exemplo de requisição para download de arquivo
GET /api/v1/transactions/:id/attachments/:id/download
Para fazer download de um arquivo, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao arquivo que deseja fazer download.
A API vai retornar o arquivo criado, caso não ocorra nenhum erro.
Contas Bancárias
Introdução
Na API do Procfy as contas bancárias são representadas por um objeto JSON com os seguintes atributos:
Atributo | Tipo | Descrição |
---|---|---|
id | integer | Identificador único da conta bancária |
name | string | Nome da conta bancária |
default | boolean | Indica se a conta bancária é a padrão |
initial_balance_cents | integer | Saldo inicial da conta bancária em centavos |
balance_cents | integer | Saldo da conta bancária em centavos |
balance_currency | string | Moeda da conta bancária |
agency | string | Número da agência da conta bancária |
Alguns atributos quando não informados, são preenchidos automaticamente com valores padrão:
Atributo | Valor padrão |
---|---|
default | false |
balance_cents | 0 |
balance_currency | BRL |
Rotas
Método | Endpoint | Descrição |
---|---|---|
GET | /api/v1/bank_accounts | Visualizar várias contas bancárias |
GET | /api/v1/bank_accounts/:id | Visualizar uma conta bancária específica |
POST | /api/v1/bank_accounts | Criar uma conta bancária |
PUT | /api/v1/bank_accounts/:id | Editar uma conta bancária |
DELETE | /api/v1/bank_accounts/:id | Excluir uma conta bancária |
Visualizar várias contas bancárias
GET /api/v1/bank_accounts
O Procfy utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Para visualizar várias contas bancárias, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/bank_accounts
Parâmetros aceitos
Parâmetro | Tipo | Descrição |
---|---|---|
page | integer | Número da página |
items | integer | Quantidade de itens por página |
Visualizar uma conta bancária específica
GET /api/v1/bank_accounts/:id
Para visualizar uma conta bancária específica, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/bank_accounts/:id
Criar uma conta bancária
POST /api/v1/bank_accounts
Para criar uma conta bancária, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao objeto que deseja criar.
POST /api/v1/bank_accounts
Editar uma conta bancária
PUT /api/v1/bank_accounts/:id
Para editar uma conta bancária, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao objeto que deseja editar.
PUT /api/v1/bank_accounts/:id
Excluir uma conta bancária
DELETE /api/v1/bank_accounts/:id
Para excluir uma conta bancária, você deve fazer uma requisição para a API utilizando o método DELETE
no endpoint correspondente ao objeto que deseja excluir.
DELETE /api/v1/bank_accounts/:id
Visualizando várias contas bancárias
Exemplo de requisição para visualizar várias contas bancárias
GET /api/v1/bank_accounts
Exemplo de resposta para visualizar várias contas bancárias
{
"page": {
"page": 1,
"items": 25,
"pages": 2,
"last": 2,
"next": 2,
"prev": null,
"count": 50,
"from": 1,
"to": 25
},
"data": [
{
"id": 1,
"name": "Conta Corrente",
"default": true,
"balance_cents": 0,
"balance_currency": "BRL",
"agency": null
},
{
"id": 2,
"name": "Conta Poupança",
"default": false,
"balance_cents": 0,
"balance_currency": "BRL",
"agency": null
}
]
}
A API utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Criando uma conta bancária
Exemplo de requisição para criar uma conta bancária
POST /api/v1/bank_accounts
Exemplo de corpo da requisição para criar uma conta bancária
{
"name": "Conta Corrente",
"initial_balance_cents": 0,
"balance_currency": "BRL",
"agency": null
}
Exemplo de resposta para a requisição de criação de uma conta bancária
{
"id": 1,
"name": "Conta Corrente",
"default": false,
"balance_cents": 0,
"balance_currency": "BRL",
"agency": null
}
Para criar um objeto, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao
objeto que deseja criar.
A API vai retornar o objeto criado, caso não ocorra nenhum erro.
O corpo da requisição deve conter um objeto com os atributos necessários para a criação do objeto.
Os atributos são:
Atributo | Tipo | Obrigatório | Descrição |
---|---|---|---|
name | string | sim | Nome da conta bancária |
initial_balance_cents | integer | sim | Saldo inicial da conta bancária em centavos |
balance_currency | string | sim | Moeda da conta bancária |
agency | string | não | Número da agência da conta bancária |
Editando uma conta bancária
Exemplo de requisição para editar uma conta bancária
PUT /api/v1/bank_accounts/:id
Exemplo de corpo da requisição para editar uma conta bancária
{
"name": "Conta Corrente",
"default": true,
"balance_cents": 1000,
"balance_currency": "BRL",
"agency": null
}
Exemplo de resposta para editar uma conta bancária
{
"id": 1,
"name": "Conta Corrente",
"default": true,
"balance_cents": 1000,
"balance_currency": "BRL",
"agency": null
}
Para editar um objeto, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao
objeto que deseja editar.
A API vai retornar o objeto editado, caso não ocorra nenhum erro.
O corpo da requisição deve conter um objeto com os atributos necessários para a edição do objeto.
Veja a lista de atributos necessários para a edição do objeto na tabela de atributos.
Erros
Erros que podem ocorrer durante a execução de uma transação.
Os erros de validação retornam um objeto com a chave error
e description
com a mensagem de erro. A mensagem de erro pode variar de acordo com o erro ocorrido.
Erros de validação
Exemplo de resposta para erro de validação na criação ou edição de uma conta bancária (Objeto em branco)
{
"error": "Registro inválido",
"description": "A validação falhou: Nome não pode ficar em branco"
}
Os erros de validação são retornados quando os atributos obrigatórios não são informados ou quando os atributos informados não estão de acordo com as regras de validação.
Contatos
Introdução
Na API do Procfy as transações são representadas por um objeto JSON com os seguintes atributos:
Atributo | Tipo | Descrição |
---|---|---|
id | integer | Identificador único do contato |
name | string | Nome do contato |
document_1 | string | CPF ou CNPJ do contato |
document_2 | string | RG ou Inscrição Estadual do contato |
sector_activity_id | string | Identificador único da atividade econômica do contato |
string | Email do contato | |
phone_number | string | Telefone do contato |
cell_phone_number | string | Celular do contato |
birth_date | date | Data de nascimento do contato |
description | string | Descrição do contato |
contact_type | string | Tipo do contato |
person_type | string | Tipo de pessoa do contato |
addresses | array | Lista de endereços do contato |
Atributos de endereço:
Atributo | Tipo | Descrição |
---|---|---|
id | integer | Identificador único do endereço |
country | string | País do endereço |
state | string | Estado do endereço |
city | string | Cidade do endereço |
address_line1 | string | Linha 1 do endereço |
address_line2 | string | Linha 2 do endereço |
district | string | Bairro do endereço |
postcode | string | Código postal do endereço |
address_number | string | Número do endereço |
Alguns atributos quando não informados, são preenchidos automaticamente com valores padrão:
Atributo | Valor padrão |
---|---|
person_type | undefined_person |
contact_type | undefined_contact |
country | Brasil |
Rotas
Método | Endpoint | Descrição |
---|---|---|
GET | /api/v1/contacts | Visualizar vários contatos |
GET | /api/v1/contacts/:id | Visualizar um contato específico |
POST | /api/v1/contacts | Criar um contato |
PUT | /api/v1/contacts/:id | Editar um contato |
DELETE | /api/v1/contacts/:id | Excluir um contato |
Visualizar vários contatos
GET /api/v1/contacts
O Procfy utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Para visualizar vários contatos, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/contacts
Parâmetros aceitos
Parâmetro | Tipo | Descrição |
---|---|---|
page | integer | Número da página |
items | integer | Quantidade de itens por página |
Visualizar um contato específico
GET /api/v1/contacts/:id
Para visualizar um contato específico, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/contacts/:id
Criar um contato
POST /api/v1/contacts
Para criar um objeto, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao objeto que deseja criar.
POST /api/v1/contacts
Editar um contato
PUT /api/v1/contacts/:id
Para editar um objeto, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao objeto que deseja editar.
PUT /api/v1/contacts/:id
Excluir um contato
DELETE /api/v1/contacts/:id
Para excluir um objeto, você deve fazer uma requisição para a API utilizando o método DELETE
no endpoint correspondente ao objeto que deseja excluir.
DELETE /api/v1/contacts/:id
Visualizando vários contatos
Exemplo de requisição para visualizar vários contatos
GET /api/v1/contacts
Exemplo de resposta para visualizar vários contatos
{
"page": {
"page": 1,
"items": 50,
"pages": 1,
"last": 1,
"next": null,
"prev": null,
"count": 2,
"from": 1,
"to": 2
},
"data": [
{
"id": 48,
"name": "Fulano da Silva",
"document_1": "99.999.999/9999-99",
"document_2": "9999999999999",
"email": "fulano@example.com",
"phone_number": "(99) 99999-9999",
"cell_phone_number": "(99) 99999-9999",
"birth_date": "2004-12-03",
"description": "Observações",
"contact_type": "customer",
"person_type": "natural",
"addresses": [
{
"id": 9,
"country": "BR",
"state": "PR",
"city": "Dois Vizinhos",
"address_line1": "Endereco",
"address_line2": "complemento",
"district": "Bairro",
"postcode": "11111111",
"address_number": "123"
}
]
},
{
"id": 49,
"name": "Beltrano da costa",
"document_1": "99.999.999/9999-99",
"document_2": "22222222222",
"email": "beltrano@example.com",
"phone_number": "(99) 99999-9999",
"cell_phone_number": "(99) 99999-9999",
"birth_date": "2004-12-03",
"description": "Observações",
"contact_type": "employee",
"person_type": "undefined_person",
"addresses": [
{
"id": 10,
"country": "BR",
"state": "RJ",
"city": "Belford Roxo",
"address_line1": "Endereco",
"address_line2": "Complemento",
"district": "Bairro",
"postcode": "00000000",
"address_number": "123"
}
]
}
]
}
A API utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Criando um contato
Exemplo de requisição para criar um contato
POST /api/v1/contacts
Exemplo de corpo da requisição para criar um contato
{
"name": "Nome",
"document_1": "99.999.999/9999-99",
"contact_type": "customer",
"person_type": "natural",
"document_2": "9999999999999",
"sector_activity_id": "",
"email": "exemplo@hotmail.com",
"phone_number": "(99) 99999-9999",
"cell_phone_number": "(99) 99999-9999",
"birth_date": "2004-12-03",
"description": "",
"addresses_attributes": {
"0": {
"country": "BR",
"state": "AL",
"city": "Atalaia",
"address_line1": "endereco",
"address_line2": "complemento",
"district": "bairro",
"postcode": "12345678",
"address_number": "123"
}
}
}
Exemplo de resposta para criar um contato
{
"id": 47,
"name": "Nome",
"document_1": "99.999.999/9999-99",
"document_2": "9999999999999",
"sector_activity_id": null,
"email": "exemplo@hotmail.com",
"phone_number": "(99) 99999-9999",
"cell_phone_number": "(99) 99999-9999",
"birth_date": "2004-12-03",
"description": "",
"contact_type": "undefined_contact",
"person_type": "undefined_person",
"addresses": [
{
"id": 8,
"country": "BR",
"state": "AL",
"city": "Atalaia",
"address_line1": "endereco",
"address_line2": "complemento",
"district": "bairro",
"postcode": "12345678",
"address_number": "123"
}
]
}
Para criar um objeto, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao
objeto que deseja criar.
A API vai retornar o objeto criado, caso não ocorra nenhum erro.
O corpo da requisição deve conter um objeto com os atributos necessários para a criação do objeto.
Os atributos são:
Atributo | Tipo | Obrigatório | Descrição |
---|---|---|---|
name | string | sim | Nome do contato |
contact_type | string | sim | Tipo do contato |
person_type | string | sim | Tipo de pessoa |
string | não | Email do contato | |
phone_number | string | não | Telefone do contato |
document_1 | string | não | CPF/CNPJ do contato |
document_2 | string | não | RG do contato |
sector_activity_id | integer | não | ID do setor de atividade do contato |
cell_phone_number | string | não | Celular do contato |
birth_date | date | não | Data de nascimento do contato |
description | string | não | Descrição do contato |
addresses_attributes | object | não | Endereços do contato |
Atributos do objeto addresses_attributes
:
Atributo | Tipo | Obrigatório | Descrição |
---|---|---|---|
country | string | sim | País do endereço |
state | string | não | Estado do endereço |
city | string | não | Cidade do endereço |
address_line1 | string | não | Linha 1 do endereço |
address_line2 | string | não | Linha 2 do endereço |
district | string | não | Bairro do endereço |
postcode | string | não | Código postal do endereço |
address_number | string | não | Número do endereço |
Veja a lista de atributos necessários para a criação do objeto na tabela de atributos.
Editando um contato
Exemplo de requisição para editar um contato
PUT /api/v1/contacts/:id
Exemplo de corpo da requisição para editar um contato
{
"name": "Nome alterado",
"document_1": "99.999.999/9999-99",
"document_2": "9999999999999",
"contact_type": "customer",
"person_type": "natural",
"sector_activity_id": "",
"email": "exemplo@hotmail.com",
"phone_number": "(99) 99999-9999",
"cell_phone_number": "(99) 99999-9999",
"birth_date": "2004-12-03",
"description": "",
"addresses_attributes": {
"0": {
"country": "BR",
"state": "AL",
"city": "Atalaia",
"address_line1": "endereco",
"address_line2": "complemento",
"district": "bairro",
"postcode": "12345678",
"address_number": "123"
}
}
}
Exemplo de resposta para editar um contato
{
"id": 47,
"name": "Nome alterado",
"document_1": "99.999.999/9999-99",
"document_2": "9999999999999",
"contact_type": "customer",
"person_type": "natural",
"sector_activity_id": null,
"email": "example@hotail.com",
"phone_number": "(99) 99999-9999",
"cell_phone_number": "(99) 99999-9999",
"birth_date": "2004-12-03",
"description": "",
"addresses": [
{
"id": 8,
"country": "BR",
"state": "AL",
"city": "Atalaia",
"address_line1": "endereco",
"address_line2": "complemento",
"district": "bairro",
"postcode": "12345678",
"address_number": "123"
}
]
}
Para editar um objeto, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao
objeto que deseja editar.
A API vai retornar o objeto editado, caso não ocorra nenhum erro.
O corpo da requisição deve conter um objeto com os atributos necessários para a edição do objeto.
Veja a lista de atributos necessários para a edição do objeto na tabela de atributos.
Enums
Os enums são utilizados para definir os valores permitidos para os atributos de um objeto. A sua utilização é importante para garantir a integridade dos dados.
Person Type
O atributo person_type
é utilizado para definir o tipo de pessoa.
Valor | Descrição |
---|---|
undefined_person | Indefinida |
natural | Pessoa física |
legal | Pessoa Jurídica |
Contact Type
O atributo contact_type
é utilizado para definir o tipo de contato.
Valor | Descrição |
---|---|
undefined_contact | Outro |
customer | Cliente |
employee | Funcionário |
supplier | Fornecedor |
partner | Parceiro |
associate | Associado |
Erros
Erros que podem ocorrer durante a execução de um contato.
Os erros de validação retornam um objeto com a chave error
e description
com a mensagem de erro. A mensagem de erro pode variar de acordo com o erro ocorrido.
Erros de validação
Exemplo de resposta para erro de validação na criação ou edição de um contato (Objeto em branco)
{
"error": "Registro inválido",
"description": "A validação falhou: Nome não pode ficar em branco, Nome é muito curto (mínimo: 2 caracteres)"
}
Os erros de validação são retornados quando os atributos obrigatórios não são informados ou quando os atributos informados não estão de acordo com as regras de validação.
Centros de Custo
Introdução
Na API do Procfy os centros de custo são representados por um objeto JSON com os seguintes atributos:
Atributo | Tipo | Descrição |
---|---|---|
id | integer | Identificador único do centro de custo |
name | string | Nome do centro de custo |
description | text | Descrição do centro de custo |
Rotas
Método | Endpoint | Descrição |
---|---|---|
GET | /api/v1/cost_centers | Visualizar vários centros de custo |
GET | /api/v1/cost_centers/:id | Visualizar um centro de custo específico |
POST | /api/v1/cost_centers | Criar um centro de custo |
PUT | /api/v1/cost_centers/:id | Editar um centro de custo |
DELETE | /api/v1/cost_centers/:id | Excluir um centro de custo |
Visualizar vários centros de custo
GET /api/v1/cost_centers
O Procfy utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Para visualizar vários centros de custo, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/cost_centers
Parâmetros aceitos
Parâmetro | Tipo | Descrição |
---|---|---|
page | integer | Número da página |
items | integer | Quantidade de itens por página |
Visualizar um centro de custo específico
GET /api/v1/cost_centers/:id
Para visualizar um centro de custo específico, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/cost_centers/:id
Criar um centro de custo
POST /api/v1/cost_centers
Para criar um objeto, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao objeto que deseja criar.
POST /api/v1/cost_centers
Editar um centro de custo
PUT /api/v1/cost_centers/:id
Para editar um objeto, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao objeto que deseja editar.
PUT /api/v1/cost_centers/:id
Excluir um centro de custo
DELETE /api/v1/cost_centers/:id
Para excluir um objeto, você deve fazer uma requisição para a API utilizando o método DELETE
no endpoint correspondente ao objeto que deseja excluir.
DELETE /api/v1/cost_centers/:id
Visualizando vários centros de custo
Exemplo de requisição para visualizar vários centros de custo
GET /api/v1/cost_centers
Exemplo de resposta para visualizar vários centros de custo
{
"page": {
"page": 1,
"items": 50,
"pages": 1,
"last": 1,
"next": null,
"prev": null,
"count": 2,
"from": 1,
"to": 2
},
"data": [
{
"id": 58,
"name": "Centro de custo 1",
"description": "Descrição 1"
},
{
"id": 59,
"name": "Centro de custo 2",
"description": "Descrição 2"
}
]
}
A API utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Criando um centro de custo
Exemplo de requisição para criar um centro de custo
POST /api/v1/cost_centers
Exemplo de corpo da requisição para criar um centro de custo
{
"name": "Nome do centro de custo",
"description": "Descrição"
}
Exemplo de resposta para criar um centro de custo
{
"id": 57,
"name": "Nome do centro de custo",
"description": "Descrição"
}
Para criar um objeto, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao
objeto que deseja criar.
A API vai retornar o objeto criado, caso não ocorra nenhum erro.
O corpo da requisição deve conter um objeto com os atributos necessários para a criação do objeto.
Os atributos são:
Atributo | Tipo | Obrigatório | Descrição |
---|---|---|---|
name | string | sim | Nome do centro de custo |
description | text | não | Descrição do centro de custo |
Veja a lista de atributos necessários para a criação do objeto na tabela de atributos.
Editando um centro de custo
Exemplo de requisição para editar um centro de custo
PUT /api/v1/cost_centers/:id
Exemplo de corpo da requisição para editar um centro de custo
{
"id": 57,
"name": "Nome do centro de custo alterado",
"description": "Descrição"
}
Exemplo de resposta para editar um centro de custo
{
"id": 57,
"name": "Nome do centro de custo alterado",
"description": "Descrição"
}
Para editar um objeto, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao
objeto que deseja editar.
A API vai retornar o objeto editado, caso não ocorra nenhum erro.
O corpo da requisição deve conter um objeto com os atributos necessários para a edição do objeto.
Veja a lista de atributos necessários para a edição do objeto na tabela de atributos.
Erros
Erros que podem ocorrer durante a execução de um centro de custo.
Os erros de validação retornam um objeto com a chave error
e description
com a mensagem de erro. A mensagem de erro pode variar de acordo com o erro ocorrido.
Erros de validação
Exemplo de resposta para erro de validação na criação ou edição de um centro de custo (Objeto em branco)
{
"error": "Registro inválido",
"description": "A validação falhou: Nome não pode ficar em branco, Nome é muito curto (mínimo: 2 caracteres)"
}
Os erros de validação são retornados quando os atributos obrigatórios não são informados ou quando os atributos informados não estão de acordo com as regras de validação.
Categorias
Introdução
Na API do Procfy as categorias são representados por um objeto JSON com os seguintes atributos:
Atributo | Tipo | Descrição |
---|---|---|
id | integer | Identificador único da categoria |
name | string | Nome da categoria |
description | text | Descrição da categoria |
transaction_type | string | Tipo de transação da categoria |
Rotas
Método | Endpoint | Descrição |
---|---|---|
GET | /api/v1/categories | Visualizar várias categorias |
GET | /api/v1/categories/:id | Visualizar uma categoria específica |
POST | /api/v1/categories | Criar uma categoria |
PUT | /api/v1/categories/:id | Editar uma categoria |
DELETE | /api/v1/categories/:id | Excluir uma categoria |
Visualizar várias categorias
GET /api/v1/categories
O Procfy utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Para visualizar várias categorias, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/categories
Parâmetros aceitos
Parâmetro | Tipo | Descrição |
---|---|---|
page | integer | Número da página |
items | integer | Quantidade de itens por página |
Visualizar uma categoria específica
GET /api/v1/categories/:id
Para visualizar uma categoria específica, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/categories/:id
Criar uma categoria
POST /api/v1/categories
Para criar um objeto, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao objeto que deseja criar.
POST /api/v1/categories
Editar uma categoria
PUT /api/v1/categories/:id
Para editar um objeto, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao objeto que deseja editar.
PUT /api/v1/categories/:id
Excluir uma categoria
DELETE /api/v1/categories/:id
Para excluir um objeto, você deve fazer uma requisição para a API utilizando o método DELETE
no endpoint correspondente ao objeto que deseja excluir.
DELETE /api/v1/categories/:id
Visualizando várias categorias
Exemplo de requisição para visualizar várias categorias
GET /api/v1/categories
Exemplo de resposta para visualizar várias categorias
{
"page": {
"page": 1,
"items": 50,
"pages": 1,
"last": 1,
"next": null,
"prev": null,
"count": 1,
"from": 1,
"to": 1
},
"data": [
{
"id": 57,
"name": "Nome de empresa",
"description": "Descrição"
}
]
}
A API utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Criando uma categoria
Exemplo de requisição para criar uma categoria
POST /api/v1/categories
Exemplo de corpo da requisição para criar uma categoria
{
"name": "Nome",
"description": "Descrição",
"transaction_type": "revenue"
}
Exemplo de resposta para criar uma categoria
{
"id": 57,
"name": "Nome",
"description": "Descrição",
"transaction_type": "revenue"
}
Para criar um objeto, você deve fazer uma requisição para a API utilizando o método POST
no endpoint correspondente ao
objeto que deseja criar.
A API vai retornar o objeto criado, caso não ocorra nenhum erro.
O corpo da requisição deve conter um objeto com os atributos necessários para a criação do objeto.
Os atributos são:
Atributo | Tipo | Obrigatório | Descrição |
---|---|---|---|
name | string | sim | Nome da categoria |
description | text | não | Descrição da categoria |
transaction_type | string | sim | Tipo de transação da categoria |
Veja a lista de atributos necessários para a criação do objeto na tabela de atributos.
Editando uma categoria
Exemplo de requisição para editar uma categoria
PUT /api/v1/categories/:id
Exemplo de corpo da requisição para editar uma categoria
{
"name": "Nome",
"description": "Descrição alterada",
"transaction_type": "revenue"
}
Exemplo de resposta para editar uma categoria
{
"id": 57,
"name": "Nome",
"description": "Descrição alterada",
"transaction_type": "revenue"
}
Para editar um objeto, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao
objeto que deseja editar.
A API vai retornar o objeto editado, caso não ocorra nenhum erro.
O corpo da requisição deve conter um objeto com os atributos necessários para a edição do objeto.
Veja a lista de atributos necessários para a edição do objeto na tabela de atributos.
Erros
Erros que podem ocorrer durante a execução de uma categoria.
Os erros de validação retornam um objeto com a chave error
e description
com a mensagem de erro. A mensagem de erro pode variar de acordo com o erro ocorrido.
Erros de validação
Exemplo de resposta para erro de validação na criação ou edição de uma categoria (Objeto em branco)
{
"error": "Registro inválido",
"description": "A validação falhou: Nome não pode ficar em branco"
}
Exemplo de resposta para erro de enum na criação ou edição de uma categoria (transaction_type)
{
"error": "Enum inválido",
"description": "Tipo de transação inválido"
}
Os erros de validação são retornados quando os atributos obrigatórios não são informados ou quando os atributos informados não estão de acordo com as regras de validação.
Usuários
Introdução
Na API do Procfy os usuários são representados por um objeto JSON com os seguintes atributos:
Atributo | Tipo | Descrição |
---|---|---|
id | integer | Identificador único do usuário |
name | string | Nome do usuário |
string | Email do usuário |
Rotas
Método | Endpoint | Descrição |
---|---|---|
GET | /api/v1/users | Visualizar vários usuários |
GET | /api/v1/users/:id | Visualizar um usuário específico |
PUT | /api/v1/users/:id | Editar um usuário |
Visualizar vários usuários
GET /api/v1/users
O Procfy utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Para visualizar vários usuários, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/users
Parâmetros aceitos
Parâmetro | Tipo | Descrição |
---|---|---|
page | integer | Número da página |
items | integer | Quantidade de itens por página |
Visualizar um usuário específico
GET /api/v1/users/:id
Para visualizar um usuário específico, você deve fazer uma requisição para a API utilizando o método GET
no endpoint correspondente ao objeto que deseja visualizar.
GET /api/v1/users/:id
Editar um usuário
PUT /api/v1/users/:id
Para editar um objeto, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao objeto que deseja editar.
PUT /api/v1/users/:id
Visualizando vários usuários
Exemplo de requisição para visualizar vários usuários
GET /api/v1/users
Exemplo de resposta para visualizar vários usuários
{
"page": {
"page": 1,
"items": 50,
"pages": 1,
"last": 1,
"next": null,
"prev": null,
"count": 2,
"from": 1,
"to": 2
},
"data": [
{
"id": 58,
"name": "Usuário 1",
"email": "user1@example.com"
},
{
"id": 59,
"name": "Usuário 2",
"email": "user2@example.com"
}
]
}
A API utiliza o padrão de paginação para retornar os resultados das requisições. Para mais informações sobre paginação, consulte a seção paginação.
Editando um usuário
Exemplo de requisição para editar um usuário
PUT /api/v1/users/:id
Exemplo de corpo da requisição para editar um usuário
{
"name": "Usuario",
"email": "user@example.com"
}
Exemplo de resposta para editar um usuário
{
"id": 1,
"name": "Usuario",
"email": "user@example.com"
}
Para editar um objeto, você deve fazer uma requisição para a API utilizando o método PUT
no endpoint correspondente ao
objeto que deseja editar.
A API vai retornar o objeto editado, caso não ocorra nenhum erro.
O corpo da requisição deve conter um objeto com os atributos necessários para a edição do objeto.
Veja a lista de atributos necessários para a edição do objeto na tabela de atributos.
Erros
Erros que podem ocorrer durante a execução de uma categoria.
Os erros de validação retornam um objeto com a chave error
e description
com a mensagem de erro. A mensagem de erro pode variar de acordo com o erro ocorrido.
Erros de validação
Exemplo de resposta para erro de validação na criação ou edição de uma categoria (Objeto em branco)
{
"error": "Registro inválido",
"description": "A validação falhou: E-mail não pode ficar em branco, E-mail não é válido"
}
É apresentado um exemplo de resposta para erro de validação à direita.