For the complete documentation index, see llms.txt. This page is also available as Markdown.

Recibos

O atual capítulo tem como objetivo descrever as rotas da API responsáveis pela gestão de recibos

Criação de recibos

Cada recibo é constituído por:

  1. Um cabeçalho

  2. Uma ou mais linhas

O recibo não possui um estado "em preparação".

Um recibo pode ser (3.) anulado.

1. Criação do cabeçalho do recibo

Os detalhes do pedido POST para a criação de recibos estão descritos de seguida, em formato OpenAPI, e em cURL.

post
Body
Responses
200

OK

application/json
post/commercial_sales_receipts
POST /commercial_sales_receipts HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 758

{
  "data": {
    "type": "commercial_sales_receipts",
    "attributes": {
      "id": 1,
      "date": "text",
      "document_no": "text",
      "document_series_id": 1,
      "payment_mechanism": "text",
      "gross_total": 1,
      "net_total": 1,
      "third_party_type": "text",
      "third_party_id": 1
    },
    "relationships": {
      "bank_accounts": {
        "data": {
          "resource": "bank_accounts"
        }
      },
      "cash_accounts": {
        "data": {
          "resource": "cash_accounts"
        }
      },
      "company": {
        "data": {
          "resource": "current_company"
        }
      },
      "commercial_document_series": {
        "data": {
          "resource": "commercial_document_series"
        }
      },
      "country": {
        "data": {
          "resource": "countries"
        }
      },
      "customer": {
        "data": {
          "resource": "customers"
        }
      },
      "currency": {
        "data": {
          "resource": "currencies"
        }
      },
      "user": {
        "data": {
          "resource": "current_company_users"
        }
      },
      "lines": {
        "data": {
          "table": "receipt_lines",
          "resource": "commercial_sales_receipt_lines"
        }
      }
    }
  }
}
200

OK

{
  "data": {
    "type": "commercial_sales_receipts",
    "id": null,
    "attributes": {
      "id": 1,
      "date": "text",
      "document_no": "text",
      "document_series_id": 1,
      "payment_mechanism": "text",
      "gross_total": 1,
      "net_total": 1,
      "third_party_type": "text",
      "third_party_id": 1
    },
    "relationships": {
      "bank_accounts": {
        "data": {
          "resource": "bank_accounts"
        }
      },
      "cash_accounts": {
        "data": {
          "resource": "cash_accounts"
        }
      },
      "company": {
        "data": {
          "resource": "current_company"
        }
      },
      "commercial_document_series": {
        "data": {
          "resource": "commercial_document_series"
        }
      },
      "country": {
        "data": {
          "resource": "countries"
        }
      },
      "customer": {
        "data": {
          "resource": "customers"
        }
      },
      "currency": {
        "data": {
          "resource": "currencies"
        }
      },
      "user": {
        "data": {
          "resource": "current_company_users"
        }
      },
      "lines": {
        "data": {
          "table": "receipt_lines",
          "resource": "commercial_sales_receipt_lines"
        }
      }
    }
  }
}

No pedido acima, o <access_token> corresponde ao token de acesso válido devolvido pelo serviço de OAuth, e o <payload JSON> deverá ter o seguinte formato

Após criar o cabeçalho, a resposta TEM QUE ser consultada para obtenção do identificador interno ("id") do recibo criado. Este identificador será necessário para a criação de todas as linhas.

  • NOTA 1: A série associada ao recibo tem já que existir, e o seu "id" interno deve ser obtido por um

  • NOTA 2: O "id" interno da conta bancária da empresa deve ser obtido por um

  • NOTA 3: O "id" interno da conta de caixa da empresa deve ser obtido por um

2. Criação da linha do recibo a liquidar o documento de venda associado:

Os detalhes do pedido POST para a criação de recibos estão descritos de seguida, em formato OpenAPI, e em cURL.

post
Body
Responses
200

OK

application/json
post/commercial_sales_receipt_lines
POST /commercial_sales_receipt_lines HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 574

{
  "data": {
    "type": "commercial_sales_receipt_lines",
    "attributes": {
      "receipt_id": 1,
      "receivable_type": "text",
      "receivable_id": 1,
      "received_value": 1,
      "settlement_percentage": 1,
      "cashed_vat_amount": 1,
      "gross_total": 1,
      "settlement_amount": 1,
      "net_total": 1,
      "retention_total": 1
    },
    "relationships": {
      "receipt": {
        "data": {
          "resource": "commercial_sales_receipts"
        }
      },
      "commercial_sales_document": {
        "data": {
          "table": "receipt_lines",
          "resource": "commercial_sales_documents"
        }
      },
      "commercial_internal_sales_document_line": {
        "data": {
          "table": "receipt_lines",
          "resource": "commercial_internal_sales_document_lines"
        }
      }
    }
  }
}
200

OK

{
  "data": {
    "type": "commercial_sales_receipt_lines",
    "id": null,
    "attributes": {
      "receipt_id": 1,
      "receivable_type": "text",
      "receivable_id": 1,
      "received_value": 1,
      "settlement_percentage": 1,
      "cashed_vat_amount": 1,
      "gross_total": 1,
      "settlement_amount": 1,
      "net_total": 1,
      "retention_total": 1
    },
    "relationships": {
      "receipt": {
        "data": {
          "resource": "commercial_sales_receipts"
        }
      },
      "commercial_sales_document": {
        "data": {
          "table": "receipt_lines",
          "resource": "commercial_sales_documents"
        }
      },
      "commercial_internal_sales_document_line": {
        "data": {
          "table": "receipt_lines",
          "resource": "commercial_internal_sales_document_lines"
        }
      }
    }
  }
}

No pedido acima, o <access_token> corresponde ao token de acesso válido devolvido pelo serviço de OAuth, e o <payload JSON> deverá ter o seguinte formato

  • NOTA 1: O "id" interno do documento (fatura, nota) a receber deve ser obtido por um

3. (Caso seja preciso) Anulação de um recibo:

Os detalhes do pedido POST para a criação de recibos estão descritos de seguida, em formato OpenAPI, e em cURL.

patch
Body
Responses
200

OK

application/json
patch/commercial_sales_receipts
PATCH /commercial_sales_receipts HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 770

{
  "data": {
    "type": "commercial_sales_receipts",
    "attributes": {
      "id": 1,
      "date": "text",
      "document_no": "text",
      "document_series_id": 1,
      "payment_mechanism": "text",
      "gross_total": 1,
      "net_total": 1,
      "third_party_type": "text",
      "third_party_id": 1
    },
    "relationships": {
      "bank_accounts": {
        "data": {
          "resource": "bank_accounts"
        }
      },
      "cash_accounts": {
        "data": {
          "resource": "cash_accounts"
        }
      },
      "company": {
        "data": {
          "resource": "current_company"
        }
      },
      "commercial_document_series": {
        "data": {
          "resource": "commercial_document_series"
        }
      },
      "country": {
        "data": {
          "resource": "countries"
        }
      },
      "customer": {
        "data": {
          "resource": "customers"
        }
      },
      "currency": {
        "data": {
          "resource": "currencies"
        }
      },
      "user": {
        "data": {
          "resource": "current_company_users"
        }
      },
      "lines": {
        "data": {
          "table": "receipt_lines",
          "resource": "commercial_sales_receipt_lines"
        }
      }
    },
    "id": "text"
  }
}
200

OK

{
  "data": {
    "type": "commercial_sales_receipts",
    "id": null,
    "attributes": {
      "id": 1,
      "date": "text",
      "document_no": "text",
      "document_series_id": 1,
      "payment_mechanism": "text",
      "gross_total": 1,
      "net_total": 1,
      "third_party_type": "text",
      "third_party_id": 1
    },
    "relationships": {
      "bank_accounts": {
        "data": {
          "resource": "bank_accounts"
        }
      },
      "cash_accounts": {
        "data": {
          "resource": "cash_accounts"
        }
      },
      "company": {
        "data": {
          "resource": "current_company"
        }
      },
      "commercial_document_series": {
        "data": {
          "resource": "commercial_document_series"
        }
      },
      "country": {
        "data": {
          "resource": "countries"
        }
      },
      "customer": {
        "data": {
          "resource": "customers"
        }
      },
      "currency": {
        "data": {
          "resource": "currencies"
        }
      },
      "user": {
        "data": {
          "resource": "current_company_users"
        }
      },
      "lines": {
        "data": {
          "table": "receipt_lines",
          "resource": "commercial_sales_receipt_lines"
        }
      }
    }
  }
}

No pedido acima, o <access_token> corresponde ao token de acesso válido devolvido pelo serviço de OAuth, e o <payload JSON> deverá ter o seguinte formato

  • NOTA 1: O "id" interno do recibo a anular deve ser obtido por um

É na linha do recibo que se indica qual o documento (FT, ou outro) que foi pago.

Se necessário, pode criar-se mais do que uma linha (e nesse caso o recibo é emitido de uma só vez para todos os documentos referenciados)

Last updated