Coder Social home page Coder Social logo

api-doc's Introduction

A API do Organizze

Introdução

A API do Organizze possibilita que aplicações se comuniquem com a sua conta no sistema. Este documento explica como o Organizze funciona, quais são os objetos envolvidos e como esta comunicação pode ser feita. Esta é a primeira versão da API, ainda em versão beta, algumas mudanças e melhorias serão implementadas futuramente.

Fazendo uma requisição

A autenticação de todas request é via Http Basic com o Username e Password descritos abaixo:

Todas as requisições são criptografadas, o Organizze não aceita requisições feitas com HTTP simples, apenas HTTPS. A URL base da API é https://api.organizze.com.br/rest/v2

Todas as requisições à API do Organizze devem ser acompanhadas do header User-Agent, use este header para informar qual a sua aplicação e qual o seu email para contato. Veja alguns exemplos de como você pode se identificar usando o header User-Agent:

User-Agent: Esdras ([email protected])
User-Agent: Alex ([email protected])

Se você não informar este header, você receberá 400 Bad Request como resposta.

Apenas JSON

A API só suporta JSON, nós não vamos dar suporte a outro formato. Mesmo que você não utilize o header Content-Type: application/json; charset=utf-8 a resposta será em JSON e com charset utf-8.

Paginação

Movimentações e faturas de cartão de crédito são paginadas por período. Para informar qual período utilize os parâmetros &start_date=2015-09-01&end_date=2015-09-30. Se você não informar o período o Organizze vai limitar os registros para o período atual: Mês atual para movimentações e Ano atual para faturas de cartão de crédito.

Erros

Abaixo estão listados alguns exemplos de erros que podem acontecer e as suas respectivas respostas:

Autorização negada: O email ou senha estão incorretos ou o usuário não está autenticado, o status HTTP é 401 e o body é:

{
    "error": "Não autorizado"
}

Uma tentativa de criar ou atualizar um registro inválido. No exemplo abaixo o usuário está tentando criar uma conta bancária sem nome, o status HTTP é 422 e o body é:

{
    "id": null,
    "name": null,
    "description": "Minha conta corrente",
    "archived": false,
    "created_at": null,
    "updated_at": null,
    "default": false,
    "errors": {
        "name": [
            "não pode estar em branco"
        ]
    },
    "type": "checking"
}

Usuários

Detalhar usuário

Request:

GET /users/3

Response:

{
    "id": 3,
    "name": "Esdras Mayrink",
    "email": "[email protected]",
    "role": "admin"
}

Listar contas bancárias

Request:

GET /accounts

Response:

[
    {
        "id": 3,
        "name": "Bradesco CC",
        "description": "Some descriptions",
        "archived": false,
        "created_at": "2015-06-22T16:17:03-03:00",
        "updated_at": "2015-08-31T22:24:24-03:00",
        "default": true,
        "type": "checking"
    },
    {
        "id": 4,
        "name": "Caixa Poupança",
        "description": "",
        "archived": false,
        "created_at": "2015-08-20T17:59:06-03:00",
        "updated_at": "2015-08-31T18:46:23-03:00",
        "default": false,
        "type": "savings"
    },
    {
        "id": 5,
        "name": "Carteira",
        "description": null,
        "archived": false,
        "created_at": "2015-08-31T18:19:01-03:00",
        "updated_at": "2015-08-31T18:19:01-03:00",
        "default": false,
        "type": "other"
    }
]

Detalhar conta bancária

Request:

GET /accounts/3

Response:

{
    "id": 3,
    "name": "Bradesco CC",
    "description": "Some descriptions",
    "archived": false,
    "created_at": "2015-06-22T16:17:03-03:00",
    "updated_at": "2015-08-31T22:24:24-03:00",
    "default": true,
    "type": "checking"
}

Criar conta bancária

Request:

POST /accounts

Body:

{
    "name": "Itaú CC",
    "type": "checking",
    "description": "Minha conta corrente",
    "default": true
}

Response:

{
    "id": 18,
    "name": "Itaú CC",
    "description": "Minha conta corrente",
    "archived": false,
    "created_at": "2015-09-15T21:04:30-03:00",
    "updated_at": "2015-09-15T21:04:30-03:00",
    "default": true,
    "type": "checking"
}

Atualizar conta bancária

Request:

PUT /accounts/18

Body:

{
    "name": "Itaú Poupança",
}

Response:

{
    "id": 18,
    "name": "Itaú Poupança",
    "description": "Minha conta corrente",
    "archived": false,
    "created_at": "2015-09-15T21:04:30-03:00",
    "updated_at": "2015-09-15T21:04:30-03:00",
    "default": true,
    "type": "checking"
}

Excluir conta bancária

Request:

DELETE /accounts/18

Response:

{
    "id": 18,
    "name": "Itaú Poupança",
    "description": "Minha conta corrente",
    "archived": false,
    "created_at": "2015-09-15T21:04:30-03:00",
    "updated_at": "2015-09-15T21:04:30-03:00",
    "default": true,
    "type": "checking"
}

Listar Metas

Ao chamar a raiz desse endpoint, ira receber todas as metas referentes ao mês atual.

Para retornar todas as metas referentes ao ano, basta escopar na url /budgets/2018

Metas referentes ao mês e ano, basta escopar na url /budgets/2018/08

Request:

GET /budgets

Response:

[
    {
        "amount_in_cents": 150000,
        "category_id": 17,
        "date": "2018-08-01",
        "activity_type": 0,
        "total": 0,
        "predicted_total": 0,
        "percentage": "0.0"
    },
    {
        "amount_in_cents": 30000,
        "category_id": 13,
        "date": "2018-08-01",
        "activity_type": 0,
        "total": 0,
        "predicted_total": 0,
        "percentage": "0.0"
    }
]

Listar categorias

Request:

GET /categories

Response:

[
    {
        "id": 1,
        "name": "Lazer",
        "color": "438b83",
        "parent_id": null
    },
    {
        "id": 3,
        "name": "Saúde",
        "color": "ffff00",
        "parent_id": null
    },
    {
        "id": 4,
        "name": "Salário",
        "color": "66ff99",
        "parent_id": null
    },
    {
        "id": 5,
        "name": "SEO",
        "color": "cc0000",
        "parent_id": null
    }
]

Detalhar categoria

Request:

GET /categories/1

Response:

{
    "id": 1,
    "name": "Lazer",
    "color": "438b83",
    "parent_id": null
}

Cria uma categoria

Request

POST /categories

Body:

{
    "name": "SEO"
}

Response:

{
    "id": 6,
    "name": "SEO",
    "color": "8dd47f",
    "parent_id": null
}

Atualizar uma categoria

Request:

PUT /categories/6

Body:

{
    "name": "Marketing",
}

Response:

{
    "id": 6,
    "name": "Marketing",
    "color": "8dd47f",
    "parent_id": null
}

Excluir uma categoria

Ao excluir uma categoria você pode informar uma categoria para substitui-la, todas as movimentações da categoria excluídas serão transferidas para a categoria substituta. Se a categoria substituta não for informada, a categoria padrão substituirá a categoria excluída.

Request:

DELETE /categories/6

Body:

{
    "replacement_id": 18
}

Response:

{
    "id": 6,
    "name": "Marketing",
    "color": "8dd47f",
    "parent_id": null
}

Listar cartões de crédito

Request:

GET /credit_cards

Response:

[
    {
        "id": 3,
        "name": "Visa Exclusive",
        "description": null,
        "card_network": "visa",
        "closing_day": 4,
        "due_day": 17,
        "limit_cents": 1200000,
        "kind": "credit_card",
        "archived": true,
        "default": false,
        "created_at": "2015-06-22T16:45:30-03:00",
        "updated_at": "2015-09-01T18:18:48-03:00"
    },
    {
        "id": 4,
        "name": "Sem limite",
        "description": null,
        "card_network": null,
        "closing_day": 2,
        "due_day": 15,
        "limit_cents": 0,
        "kind": "credit_card",
        "archived": false,
        "default": false,
        "created_at": "2015-09-01T18:06:16-03:00",
        "updated_at": "2015-09-01T18:06:16-03:00"
    }
]

Detalhar cartão de crédito

Request:

GET /credit_cards/3

Response

{
    "id": 3,
    "name": "Visa Exclusive",
    "description": null,
    "card_network": "visa",
    "closing_day": 4,
    "due_day": 17,
    "limit_cents": 1200000,
    "kind": "credit_card",
    "archived": true,
    "default": false,
    "created_at": "2015-06-22T16:45:30-03:00",
    "updated_at": "2015-09-01T18:18:48-03:00"
}

Criar um cartão de crédito

Request:

POST /credit_cards

Body:

{
    "name": "Hipercard",
    "card_network": "hipercard",
    "due_day": 15,
    "closing_day": 2,
    "limit_cents": 500000
}

Response:

{
    "id": 6,
    "name": "Hipercard",
    "description": null,
    "card_network": "hipercard",
    "closing_day": 2,
    "due_day": 15,
    "limit_cents": 500000,
    "kind": "credit_card",
    "archived": false,
    "default": false,
    "created_at": "2015-09-15T22:02:55-03:00",
    "updated_at": "2015-09-15T22:02:55-03:00"
}

Atualizar um cartão de crédito

Request:

PUT /categories/6

Body:

{
    "name": "Visa Exclusive",
    "due_day": 17,
    "closing_day": 4,
    "update_invoices_since": "2015-07-01"
}

Response:

{
    "id": 3,
    "name": "Visa Exclusive",
    "description": null,
    "card_network": "visa",
    "closing_day": 4,
    "due_day": 17,
    "limit_cents": 1200000,
    "kind": "credit_card",
    "archived": true,
    "default": false,
    "created_at": "2015-06-22T16:45:30-03:00",
    "updated_at": "2015-09-01T18:18:48-03:00"
}

Excluir um cartão de crédito

Request:

DELETE /credit_cards/3

Response:

{
    "id": 3,
    "name": "Visa Exclusive",
    "description": null,
    "card_network": "visa",
    "closing_day": 4,
    "due_day": 17,
    "limit_cents": 1200000,
    "kind": "credit_card",
    "archived": true,
    "default": false,
    "created_at": "2015-06-22T16:45:30-03:00",
    "updated_at": "2015-09-01T18:18:48-03:00"
}

Listar as faturas de um cartão de crédito

Request:

GET /credit_cards/3/invoices

Response:

[
    {
        "id": 180,
        "date": "2015-01-15",
        "starting_date": "2014-12-03",
        "closing_date": "2015-01-02",
        "amount_cents": 0,
        "payment_amount_cents": 0,
        "balance_cents": 0,
        "previous_balance_cents": 0,
        "credit_card_id": 3
    },
    {
        "id": 181,
        "date": "2015-02-15",
        "starting_date": "2015-01-03",
        "closing_date": "2015-02-02",
        "amount_cents": 0,
        "payment_amount_cents": 0,
        "balance_cents": 0,
        "previous_balance_cents": 0,
        "credit_card_id": 3
    },
    {
        "id": 182,
        "date": "2015-03-15",
        "starting_date": "2015-02-03",
        "closing_date": "2015-03-02",
        "amount_cents": 0,
        "payment_amount_cents": 0,
        "balance_cents": 0,
        "previous_balance_cents": 0,
        "credit_card_id": 3
    },
    {
        "id": 183,
        "date": "2015-04-15",
        "starting_date": "2015-03-03",
        "closing_date": "2015-04-02",
        "amount_cents": 0,
        "payment_amount_cents": 0,
        "balance_cents": 0,
        "previous_balance_cents": 0,
        "credit_card_id": 3
    },
    {
        "id": 184,
        "date": "2015-05-15",
        "starting_date": "2015-04-03",
        "closing_date": "2015-05-02",
        "amount_cents": -25098,
        "payment_amount_cents": 0,
        "balance_cents": -25098,
        "previous_balance_cents": 0,
        "credit_card_id": 3
    },
    {
        "id": 185,
        "date": "2015-06-15",
        "starting_date": "2015-05-03",
        "closing_date": "2015-06-02",
        "amount_cents": 584900,
        "payment_amount_cents": 0,
        "balance_cents": 584900,
        "previous_balance_cents": 0,
        "credit_card_id": 3
    },
    {
        "id": 186,
        "date": "2015-07-17",
        "starting_date": "2015-06-03",
        "closing_date": "2015-07-04",
        "amount_cents": 30000,
        "payment_amount_cents": -70000,
        "balance_cents": 100000,
        "previous_balance_cents": 0,
        "credit_card_id": 3
    },
    {
        "id": 187,
        "date": "2015-08-17",
        "starting_date": "2015-07-05",
        "closing_date": "2015-08-04",
        "amount_cents": -22098,
        "payment_amount_cents": 0,
        "balance_cents": 77902,
        "previous_balance_cents": 100000,
        "credit_card_id": 3
    },
    {
        "id": 188,
        "date": "2015-09-17",
        "starting_date": "2015-08-05",
        "closing_date": "2015-09-04",
        "amount_cents": -15000,
        "payment_amount_cents": 0,
        "balance_cents": -15000,
        "previous_balance_cents": 0,
        "credit_card_id": 3
    },
    {
        "id": 189,
        "date": "2015-10-17",
        "starting_date": "2015-09-05",
        "closing_date": "2015-10-04",
        "amount_cents": -15000,
        "payment_amount_cents": 0,
        "balance_cents": -15000,
        "previous_balance_cents": 0,
        "credit_card_id": 3
    },
    {
        "id": 190,
        "date": "2015-11-17",
        "starting_date": "2015-10-05",
        "closing_date": "2015-11-04",
        "amount_cents": -30000,
        "payment_amount_cents": 0,
        "balance_cents": -30000,
        "previous_balance_cents": 0,
        "credit_card_id": 3
    },
    {
        "id": 191,
        "date": "2015-12-17",
        "starting_date": "2015-11-05",
        "closing_date": "2015-12-04",
        "amount_cents": -15000,
        "payment_amount_cents": 0,
        "balance_cents": -15000,
        "previous_balance_cents": 0,
        "credit_card_id": 3
    }
]

Detalhar uma fatura de cartão de crédito

Request:

GET /credit_cards/3/invoices/186

Response:

{
    "id": 186,
    "date": "2015-07-17",
    "starting_date": "2015-06-03",
    "closing_date": "2015-07-04",
    "amount_cents": 30000,
    "payment_amount_cents": -70000,
    "balance_cents": 100000,
    "previous_balance_cents": 0,
    "credit_card_id": 3,
    "transactions": [
        {
            "id": 19,
            "description": "Gasto no cartão",
            "date": "2015-06-03",
            "paid": true,
            "amount_cents": -5000,
            "total_installments": 1,
            "installment": 1,
            "recurring": false,
            "account_id": 3,
            "account_type": "CreditCard",
            "category_id": 21,
            "contact_id": null,
            "notes": "",
            "attachments_count": 0,
            "created_at": "2015-08-04T20:13:49-03:00",
            "updated_at": "2015-08-04T20:14:04-03:00"
        },
        {
            "id": 12,
            "description": "SAQUE LOT",
            "date": "2015-06-06",
            "paid": true,
            "amount_cents": -15000,
            "total_installments": 5,
            "installment": 1,
            "recurring": false,
            "account_id": 3,
            "account_type": "CreditCard",
            "category_id": 21,
            "contact_id": null,
            "notes": "",
            "attachments_count": 0,
            "created_at": "2015-07-01T10:52:06-03:00",
            "updated_at": "2015-08-04T20:17:17-03:00"
        }
    ],
    "payments": [
        {
            "id": 83,
            "description": "Pagamento Julho de 2015",
            "date": "2015-09-01",
            "paid": true,
            "amount_cents": -20000,
            "total_installments": 1,
            "installment": 1,
            "recurring": false,
            "account_id": 3,
            "account_type": "Account",
            "category_id": 21,
            "contact_id": null,
            "notes": null,
            "attachments_count": 0,
            "created_at": "2015-09-01T23:42:29-03:00",
            "updated_at": "2015-09-01T23:42:29-03:00"
        }
    ]
}

Pagamento de uma fatura

Request:

GET /credit_cards/3/invoices/186/payments

Response:

{
    "id": 1033,
    "description": "Pagamento fatura",
    "date": "2015-09-16",
    "paid": true,
    "amount_cents": 0,
    "total_installments": 1,
    "installment": 1,
    "recurring": false,
    "account_id": 3,
    "account_type": "Account",
    "category_id": 21,
    "contact_id": null,
    "notes": "Pagamento via boleto",
    "attachments_count": 0,
    "created_at": "2015-09-15T22:27:20-03:00",
    "updated_at": "2015-09-15T22:27:20-03:00"
}

Listar movimentações

A paginação de movimentações é feita com os parâmetros start_date e end_date, conforme descrito na seção de Paginação acima. O periodo processado será sempre mês inteiro. Ou seja, seu start_date é sempre processado como start_date.beginning_of_month e o seu end_date é sempre convertido para end_date.end_of_month.

Filtros:

Esse endpoint permite filtrar por uma conta bancária (account_id). Para isso, deve enviar o parâmetro account_id com o id da conta bancária que deseja filtrar.

**No endpoint de contas bancárias /accounts, é possível obter o id de todas suas contas bancárias.

Request:

GET /transactions

Response:

[
    {
        "id": 15,
        "description": "SAQUE LOT",
        "date": "2015-09-06",
        "paid": false,
        "amount_cents": -15000,
        "total_installments": 1,
        "installment": 1,
        "recurring": false,
        "account_id": 3,
        "account_type": "CreditCard",
        "category_id": 21,
        "contact_id": null,
        "notes": "",
        "attachments_count": 0,
        "credit_card_id": 3,
        "credit_card_invoice_id": 189,
        "paid_credit_card_id": null,
        "paid_credit_card_invoice_id": null,
        "oposite_transaction_id": null,
        "oposite_account_id": null,
        "created_at": "2015-07-01T10:52:06-03:00",
        "updated_at": "2015-08-04T20:17:17-03:00"
    },
    {
        "id": 31,
        "description": "Lanche",
        "date": "2015-09-02",
        "paid": false,
        "amount_cents": -2098,
        "total_installments": 1,
        "installment": 1,
        "recurring": false,
        "account_id": 3,
        "account_type": "Account",
        "category_id": 18,
        "contact_id": null,
        "notes": "",
        "attachments_count": 0,
        "credit_card_id": null,
        "credit_card_invoice_id": null,
        "paid_credit_card_id": null,
        "paid_credit_card_invoice_id": null,
        "oposite_transaction_id": 63,
        "oposite_account_id": 4,
        "created_at": "2015-08-20T18:00:20-03:00",
        "updated_at": "2015-09-01T18:14:54-03:00"
    },
    {
        "id": 63,
        "description": "Gasolina",
        "date": "2015-09-02",
        "paid": false,
        "amount_cents": 20000,
        "total_installments": 1,
        "installment": 1,
        "recurring": false,
        "account_id": 4,
        "account_type": "Account",
        "category_id": 18,
        "contact_id": null,
        "notes": "",
        "attachments_count": 0,
        "credit_card_id": null,
        "credit_card_invoice_id": null,
        "paid_credit_card_id": null,
        "paid_credit_card_invoice_id": null,
        "oposite_transaction_id": 31,
        "oposite_account_id": 3,
        "created_at": "2015-08-20T18:00:20-03:00",
        "updated_at": "2015-09-01T18:14:54-03:00"
    },
    {
        "id": 83,
        "description": "Pagamento Julho de 2015",
        "date": "2015-09-01",
        "paid": true,
        "amount_cents": -20000,
        "total_installments": 1,
        "installment": 1,
        "recurring": false,
        "account_id": 3,
        "account_type": "Account",
        "category_id": 21,
        "contact_id": null,
        "notes": null,
        "attachments_count": 0,
        "credit_card_id": null,
        "credit_card_invoice_id": null,
        "paid_credit_card_id": 3,
        "paid_credit_card_invoice_id": 186,
        "oposite_transaction_id": null,
        "oposite_account_id": null,
        "created_at": "2015-09-01T23:42:29-03:00",
        "updated_at": "2015-09-01T23:42:29-03:00"
    }
]

Detalhar uma movimentação

Request:

GET /transactions/15

Response:

{
    "id": 15,
    "description": "SAQUE LOT",
    "date": "2015-09-06",
    "paid": false,
    "amount_cents": -15000,
    "total_installments": 1,
    "installment": 1,
    "recurring": false,
    "account_id": 3,
    "category_id": 21,
    "contact_id": null,
    "notes": "",
    "attachments_count": 0,
    "credit_card_id": 3,
    "credit_card_invoice_id": 189,
    "paid_credit_card_id": null,
    "paid_credit_card_invoice_id": null,
    "oposite_transaction_id": null,
    "oposite_account_id": null,
    "created_at": "2015-07-01T10:52:06-03:00",
    "updated_at": "2015-08-04T20:17:17-03:00"
}

Cria uma movimentação.

Request:

POST /transactions

Body:

{
    "description": "Computador",
    "notes": "Pagamento via boleto",
    "date": "2015-09-16",
    "tags": [{"name": "homeoffice"}]
}

Response:

{
    "id": 97,
    "description": "Computador",
    "date": "2015-09-16",
    "paid": false,
    "amount_cents": 0,
    "total_installments": 1,
    "installment": 1,
    "recurring": false,
    "account_id": 3,
    "category_id": 21,
    "contact_id": null,
    "notes": "Pagamento via boleto",
    "attachments_count": 0,
    "credit_card_id": null,
    "credit_card_invoice_id": null,
    "paid_credit_card_id": null,
    "paid_credit_card_invoice_id": null,
    "oposite_transaction_id": null,
    "oposite_account_id": null,
    "created_at": "2015-09-04T00:09:34-03:00",
    "updated_at": "2015-09-04T00:09:34-03:00",
    "tags": [{"name": "homeoffice"}]
}

Cria uma movimentação recorrente (fixa).

Os valores para periodicity são: ["monthly", "yearly", "weekly", "biweekly", "bimonthly", "trimonthly"]

Request:

POST /transactions

Body:

{
    "description": "Despesa fixa",
    "notes": "Pagamento via boleto",
    "date": "2015-09-16",
    "recurrence_attributes": {"periodicity": "monthly"}
}

Response:

{
    "id": 97,
    "description": "Despesa fixa",
    "date": "2015-09-16",
    "paid": false,
    "amount_cents": 0,
    "total_installments": 1,
    "installment": 1,
    "recurring": true,
    "account_id": 3,
    "category_id": 21,
    "contact_id": null,
    "notes": "Pagamento via boleto",
    "attachments_count": 0,
    "credit_card_id": null,
    "credit_card_invoice_id": null,
    "paid_credit_card_id": null,
    "paid_credit_card_invoice_id": null,
    "oposite_transaction_id": null,
    "oposite_account_id": null,
    "created_at": "2015-09-04T00:09:34-03:00",
    "updated_at": "2015-09-04T00:09:34-03:00"
}

Cria uma movimentação recorrente (parcelada).

Os valores para periodicity são: ["monthly", "yearly", "weekly", "biweekly", "bimonthly", "trimonthly"]

Request:

POST /transactions

Body:

{
    "description": "Despesa parcelada",
    "notes": "Pagamento via boleto",
    "date": "2015-09-16",
    "installments_attributes": {"periodicity": "monthly", "total": 12}
}

Response:

{
    "id": 97,
    "description": "Despesa parcelada",
    "date": "2015-09-16",
    "paid": false,
    "amount_cents": 0,
    "total_installments": 12,
    "installment": 1,
    "recurring": false,
    "account_id": 3,
    "category_id": 21,
    "contact_id": null,
    "notes": "Pagamento via boleto",
    "attachments_count": 0,
    "credit_card_id": null,
    "credit_card_invoice_id": null,
    "paid_credit_card_id": null,
    "paid_credit_card_invoice_id": null,
    "oposite_transaction_id": null,
    "oposite_account_id": null,
    "created_at": "2015-09-04T00:09:34-03:00",
    "updated_at": "2015-09-04T00:09:34-03:00"
}

Atualizar uma movimentação

No caso de movimentações fixas ou parceladas, para atualizar a movimentação e as próximas ocorrências envie o attributo "update_future": true; Caso queira atualizar todas as ocorrências, inclusive as anteriores, envie o attributo "update_all": true. Observe que este último pode alterar o saldo da conta caso as movimentações anteriores já estejam pagas/recebidas.

Request:

PUT /transactions/101

Body:

{
    "description": "Updated parcelada via API",
    "notes": "Pagamento via boleto",
    "amount_cents": 20050,
    "date": "2015-12-20",
    "update_future": true,
    "tags": [{"name": "via_api"}]
}

Response:

{
    "id": 101,
    "description": "Updated parcelada via API",
    "date": "2015-12-20",
    "paid": false,
    "amount_cents": -20050,
    "total_installments": 1,
    "installment": 1,
    "recurring": true,
    "account_id": 3,
    "category_id": 21,
    "contact_id": null,
    "notes": "Pagamento via boleto",
    "attachments_count": 0,
    "credit_card_id": null,
    "credit_card_invoice_id": null,
    "paid_credit_card_id": null,
    "paid_credit_card_invoice_id": null,
    "oposite_transaction_id": null,
    "oposite_account_id": null,
    "created_at": "2015-09-04T00:09:34-03:00",
    "updated_at": "2015-09-04T00:34:54-03:00",
    "tags": [{"name": "via_api"}]
}

Excluir movimentação

No caso de movimentações fixas ou parceladas, para excluir a movimentação e as próximas ocorrências envie o attributo "update_future": true; Caso queira excluir todas as ocorrências, inclusive as anteriores, envie o attributo "update_all": true. Observe que este último pode alterar o saldo da conta caso as movimentações anteriores já estejam pagas/recebidas.

Request:

DELETE /transactions/101

Body:

{
    "update_future": true
}

Response:

{
    "id": 101,
    "description": "Updated parcelada via API",
    "date": "2015-12-20",
    "paid": false,
    "amount_cents": -20050,
    "total_installments": 1,
    "installment": 1,
    "recurring": true,
    "account_id": 3,
    "category_id": 21,
    "contact_id": null,
    "notes": "Pagamento via boleto",
    "attachments_count": 0,
    "credit_card_id": null,
    "credit_card_invoice_id": null,
    "paid_credit_card_id": null,
    "paid_credit_card_invoice_id": null,
    "oposite_transaction_id": null,
    "oposite_account_id": null,
    "created_at": "2015-09-04T00:09:34-03:00",
    "updated_at": "2015-09-04T00:34:54-03:00"
}

api-doc's People

Contributors

alexwbuschle avatar brunomafioletti avatar deploy-organizze avatar e3duardo avatar esdras avatar henryhamon avatar ronanrodrigo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

api-doc's Issues

Request com Axios

Boa tarde pessoal,

Estou tentando fazer uma requisição com o axios em um aplicação React mas estou recebendo vários erros. Faço a requisição assim:

const requestSl =  axios.get(
	'https://api.organizze.com.br/rest/v2/balances',
	{	
		auth: { username: ORG_SL_EMAIL, password: ORG_SL_API_KEY },
		headers: { 
			'User-Agent': 'MyPanel ([email protected])' 
		},
	}
);

Estou recebendo os erros:
Refused to set unsafe header "User-Agent"
Failed to load https://api.organizze.com.br/rest/v2/balances: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. The response had HTTP status code 404.

As URL's e credenciais estão certinhas.. Tanto pelo navegador quanto pelo Postman ele funciona.

API depreciada ?

A api parou de receber atualizações? necessito usar vários endpoints que não consta nela, mas tem um bom tempo que ninguém altera nada por aqui.

Categorias de Entrada

O end-point de categoria lista somente categorias de despesas. Sugiro que tenha um parâmetro para que eu possa escolher se quero de despesa ou de entrada. O mesmo na hora de criar uma categoria.

Total de gastos por categoria no mês.

Olá, boa tarde!

Gostaria de saber se é possível trazer os gastos por categoria no mês. Sem ser no regime de competência como a aplicação faz, e sim no regime de caixa.

Endpoints para manipular as tags

Seria interessante novos endpoints para manipular as tags:

Listar tags

Request:
GET /tags

Response:

[
    {
        "name": "TAG1"
    },
    {
        "name": "TAG2"
    }
]

Cria uma tag

Request:
POST /tags

Body:

{
    "name": "TAG3"
}

Excluir uma tag

Request:
DELETE /tags/{tag}

Data de Pagamento

Não é possível definir a data de baixa das transaçōes ao criar ou atualizar via API.

Nosso emissor de boleto leva até um dia util para nos informar o pagamento, com isso boletos pagos no dia(exemplo) 28 estão com data de pagamento no dia 29.

Precisamos que essa correção seja realizada o quanto antes pois nossas contas estão ficando furadas.

Cliente: Consolide Registro de Marcas

Movimentação realizada no mês filtrado mas após fechamento do cartão não é retornada

Tenho uma movimentação realizada no meu cartão de crédito no dia 31/05.
O fatura é fechada no dia 30 de cada mês, então esse lançamento aparecerá somente na fatura paga em julho.

Ao requisitar o endereço https://api.organizze.com.br/rest/v2/transactions?start_date=2019-05-01&end_date=2019-05-31 a movimentação não é retornada.
Ao tentar requisitar as movimentações do mês seguinte essa movimentação também não aparece.

Estou fazendo algo errado ou é algum problema na API?

Transações

Existe alguma forma de puxar transações em um periodo de 1 ou 2 anos, ou algum serviço de webhook

Goals endpoint

Alguma previsão de lançamento para o endpoint que lista as metas?

Paginação por período não funciona

No endpoint \transactions, a paginação por período retorna movimentações relativas ao mês dos parâmetros start_date e end_date, e não especificamente aos dias.

Por exemplo, ao colocar o end_date como 2019-06-10, movimentações com data posteriores ao dia 10, relativas ao mês de junho, são retornadas. O mesmo acontece para o parâmetro start_date.

Além disso, existe alguma forma de receber apenas as movimentações que não são de cartões de crédito? Se não, como posso definir um offset para acessar todas as movimentações do período?

Obs.: Parabéns pela iniciativa!

Cadastro de transferência

Olá, comecei a utilizar a integração com o Organizze via API e senti falta de um endpoint para cadastrar transferências realizadas entre contas.
Tentei fazer o cadastro das movimentações manualmente e depois cadastrando uma movimentação com o "oposite_transaction_id" preenchido com o ID da movimentação criada, porém não funciona como imaginei.
Existe um endpoint para fazer isso?
Agradeço desde já.

2 api-keys por conta

Pessoal,

Tenho duas contas no mesmo email (exemplo: CONTA_01 e CONTA_02 )
Estou tentando acessar o endpoint /balances

Toda vez que eu crio uma api-key em uma das contas, a outra conta para de funcionar. A api-key da conta que para de funcionar começa retornar um json que não representa nenhuma das contas.

Exemplo do json:
{ "previous_balance": 0, "previous_predicted_balance": -9343, "balance": 0, "predicted_balance": -9343, "outcomes": 0, "predicted_outcomes": 0, "incomes": 0, "predicted_incomes": 0, "expenses": 0, "predicted_expenses": 0, "earnings": 0, "predicted_earnings": 0, "initial_amounts": 0, "predicted_initial_amounts": 0, "result": 0, "predicted_result": 0, "balances": [...] }

Endpoint /categories

Seria interessante um novo "atributo" informando se a categoria está arquivada ou não.

Documentação via OpenAPI (Swagger)

Olá, vi que tem um Pull Request aberto com um documento OpenAPI, porém apenas com alguns dos métodos disponíveis na API.
Vocês planejam criar uma documentação com todas as rotas disponíveis?

Agradeço desde já.

Lançamento parcelado

Estou integrando com vocês através da API documentada em https://github.com/organizze/api-doc. Em particular, estou tentando criar lançamentos parcelados. Pela documentação devo utilizar o endpoint POST /transactions passando "installments_attributes": {"periodicity": "monthly", "total": 12} para um lançamento de 12x. No entanto ao fazer isso o lançamento é criado sem parcelamento, como se esse atributo não estivesse lá.

É um erro da documentação?
Como devo proceder?

/balances retornando 404

olá,

estive usando até hoje a api. Mas hoje um dos endpoint parou de funcionar.
/balances?account_id={id} está retornando 404 agora.

Esse endpoint não está documentado no README mas foi mencionado em:
#11
e
#21

é algum erro temporário ou tem algum outro endpoint que posso usar para obter o saldo de uma conta.

Obrigado!

Obter faturas antigas

Eu percebi que só é possível obter faturas do ano corrente, não é possível obter faturas de anos passados?

Id para integração

Olá estou integrando um sistema terceiro com o organizze e vamos criar muitas transações e vai ter casos de reembolço que vamos ter que deletar algumas transações se na api de vcs tivesse um idexterno em que eu pudesse deletar ou somente fazer um filtro por esse idexterno seria uma ótima feature pra mim que evitaria que eu tivesse que ter um banco de integração só pra fazer um de para de de IDs o ideal que esse campo fosse um campo do tipo string

Inclusão de tags

Olá, pessoal.
Tudo bem?

Estou trabalhando em uma integração do organizze com o meu banco, porém não estou conseguindo incluir as tags. Sempre retorna o erro 500. Alguém mais com este problema? Ou algo que eu esteja fazendo errado?

image
image

IDs negativos para lançamentos da consulta /credit_cards/x/invoices/y

Prezados, boa tarde.

Primeiro gostaria mais uma vez parabenizá-los pela disponibilização da API a nós clientes do Organizze.

Então.. ao atualizar uma rotina pessoal que faz uso da API, percebi um comportamento diferente em relação à chave id disponibilizada através do endereço: GET /credit_cards/x/invoices/y. Ocorre que para 19 lançamentos o id veio negativo. Ao observar na consulta principal de lançamentos (GET/transactions), esses 19 negativos não possuem correspondentes.
Dessa forma, imagino que a API deva estar com alguma versão antiga para a consulta GET /credit_cards/x/invoices/y. Esse palpite é baseado nas verificações que fiz na minha conta pela versão web: os ids são outros e não são negativos, ou seja, nenhum problema para a aplicação web nem mobile.

Posso compartilhar mais informações com vocês caso seja necessário.

Sei que vcs devem ter inúmeras outras prioridades e um número reduzido de clientes utilizem a API, mas se for algo simples de resolver, ficarei grato. : )

Abaixo seguem alguns dos ids:

api_organizze_id_negativo

Saldo da conta

Alguma forma de eu conseguir o saldo de uma conta sem ter que passar por todos os lançamentos?

não consigo mais autenticar minha aplicação

olá, por acaso houve alguma mudança no backend? de um mês para outro passei a não conseguir mais me autenticar na API, e quando abri um ticket no suporte eles sugeriram tentar uma outra API key, o que também não funcionou.

credit_card_invoice_id voltando como null

Há algum tempo uso a integração para incluir novas transações no organizze de forma automática.
Percebi uma mudança de comportamento há alguns dias:

Usando o POST /transactions para criar uma nova transação para um cartão de crédito, a invoice que aquela transação será adicionada era anteriormente calculada a partir da data:

Usando o payload abaixo, credit_card_invoice_id era retornado pelo back-end a partir do cálculo de fechamento das faturas configurado no Organizze e então a transação aparece no painel de forma correta na fatura correta.

{
    "description": "Teste transação",
    "date": "2024-03-26",
    "amount_cents": -1590,
    "category_id": 127885532,
    "credit_card_id": 1410639
}

Porém, agora estou recebendo credit_card_invoice_id nulo ao enviar o payload acima. Esta alteração foi feita por vocês? É obrigatório agora enviar o credit_card_invoice_id na chamada do endpoint?

Outro fato importante: mesmo enviando credit_card_invoice_id como nulo, a transação é registrada. Porém não consigo vê-la em nenhum lugar nem na plataforma nem usando o método GET /transactions! Os saldos de fatura começam a não bater por conta dessas transações "fantasma".

Deletar categorias às vezes retornar erro 500

A documentação da API diz que se o replacement_id não for especificado, que a categoria padrão é usada automaticamente.

Mas isso não está ocorrendo, em 90% dos casos que eu não digo o replacement_id, eu recebo um erro 500.
Quando especifico o replacement, tudo funciona.

Filtrar lançamentos

Olá. Primeiramente, parabens pelo projeto!

Estou tentando filtrar lançamentos, pois vi que são retornados no máximo 100 registros por requisição e, no meu caso, há mais que isso em alguns meses. Entretanto, vi na documentação que o mês inteiro será sempre filtrado. Tentei filtrar de 15 em 15 dias, por exemplo, e não deu certo.

Existe alguma outra forma de filtrar melhor os dados de lançamentos (transactions)?

Sugestão: criar parâmetro para ignorar lançamentos de cartões de crédito, uma vez que já existe um endpoint para tal.

Saldo da conta

Seria interessante incluir o saldo no detalhamento da conta.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.