Create Bill Credit Note
curl --request POST \
--url https://api.rootfi.dev/accounting/bill_credit_notes \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"company_id": 1,
"data": [
{
"contact_id": "123456",
"document_number": "ROOTFI01",
"posted_date": "2021-09-28T15:00:00.000Z",
"currency_id": "GBP",
"bill_ids": [],
"memo": "Test Invoice",
"line_items": [
{
"account_id": "123456",
"quantity": 1,
"item_id": "123456",
"tax_id": "123456",
"unit_amount": 100,
"total_discount": 0,
"description": "Test Item"
}
]
}
]
}
'import requests
url = "https://api.rootfi.dev/accounting/bill_credit_notes"
payload = {
"company_id": 1,
"data": [
{
"contact_id": "123456",
"document_number": "ROOTFI01",
"posted_date": "2021-09-28T15:00:00.000Z",
"currency_id": "GBP",
"bill_ids": [],
"memo": "Test Invoice",
"line_items": [
{
"account_id": "123456",
"quantity": 1,
"item_id": "123456",
"tax_id": "123456",
"unit_amount": 100,
"total_discount": 0,
"description": "Test Item"
}
]
}
]
}
headers = {
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {api_key: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
company_id: 1,
data: [
{
contact_id: '123456',
document_number: 'ROOTFI01',
posted_date: '2021-09-28T15:00:00.000Z',
currency_id: 'GBP',
bill_ids: [],
memo: 'Test Invoice',
line_items: [
{
account_id: '123456',
quantity: 1,
item_id: '123456',
tax_id: '123456',
unit_amount: 100,
total_discount: 0,
description: 'Test Item'
}
]
}
]
})
};
fetch('https://api.rootfi.dev/accounting/bill_credit_notes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.rootfi.dev/accounting/bill_credit_notes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'company_id' => 1,
'data' => [
[
'contact_id' => '123456',
'document_number' => 'ROOTFI01',
'posted_date' => '2021-09-28T15:00:00.000Z',
'currency_id' => 'GBP',
'bill_ids' => [
],
'memo' => 'Test Invoice',
'line_items' => [
[
'account_id' => '123456',
'quantity' => 1,
'item_id' => '123456',
'tax_id' => '123456',
'unit_amount' => 100,
'total_discount' => 0,
'description' => 'Test Item'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api_key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.rootfi.dev/accounting/bill_credit_notes"
payload := strings.NewReader("{\n \"company_id\": 1,\n \"data\": [\n {\n \"contact_id\": \"123456\",\n \"document_number\": \"ROOTFI01\",\n \"posted_date\": \"2021-09-28T15:00:00.000Z\",\n \"currency_id\": \"GBP\",\n \"bill_ids\": [],\n \"memo\": \"Test Invoice\",\n \"line_items\": [\n {\n \"account_id\": \"123456\",\n \"quantity\": 1,\n \"item_id\": \"123456\",\n \"tax_id\": \"123456\",\n \"unit_amount\": 100,\n \"total_discount\": 0,\n \"description\": \"Test Item\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api_key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.rootfi.dev/accounting/bill_credit_notes")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"company_id\": 1,\n \"data\": [\n {\n \"contact_id\": \"123456\",\n \"document_number\": \"ROOTFI01\",\n \"posted_date\": \"2021-09-28T15:00:00.000Z\",\n \"currency_id\": \"GBP\",\n \"bill_ids\": [],\n \"memo\": \"Test Invoice\",\n \"line_items\": [\n {\n \"account_id\": \"123456\",\n \"quantity\": 1,\n \"item_id\": \"123456\",\n \"tax_id\": \"123456\",\n \"unit_amount\": 100,\n \"total_discount\": 0,\n \"description\": \"Test Item\"\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rootfi.dev/accounting/bill_credit_notes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api_key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"company_id\": 1,\n \"data\": [\n {\n \"contact_id\": \"123456\",\n \"document_number\": \"ROOTFI01\",\n \"posted_date\": \"2021-09-28T15:00:00.000Z\",\n \"currency_id\": \"GBP\",\n \"bill_ids\": [],\n \"memo\": \"Test Invoice\",\n \"line_items\": [\n {\n \"account_id\": \"123456\",\n \"quantity\": 1,\n \"item_id\": \"123456\",\n \"tax_id\": \"123456\",\n \"unit_amount\": 100,\n \"total_discount\": 0,\n \"description\": \"Test Item\"\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"status": "SUCCESS",
"upload_job_id": "aXI9pUDA5T7E2LS",
"data": [
{
"job_id": "xQm2K441VosP8W4",
"status": "success",
"response": {
"platform_id": "3770712000001684001",
"bill_ids": [
"3770712000000213001"
],
"contact_id": "3770712000000209007",
"currency_id": "3770712000000000099",
"document_number": "Bd5200",
"posted_date": "2023-04-17T00:00:00.000Z",
"memo": "psssss",
"remaining_credit": 140,
"total_amount": 140,
"status": "SUBMITTED",
"updated_at": "2023-10-31T00:00:00.000Z",
"raw_data": {
"platform_id": "123456",
"nominal_code": "Rootfi 01",
"name": "Test Account",
"description": "Test Description",
"category": "LIABILITY",
"sub_category": "Long Term Liabilities",
"status": "ACTIVE"
}
},
"error": null
}
]
},
"request_timestamp": "2021-09-28T15:00:00.000Z",
"response_timestamp": "2021-09-28T15:00:00.000Z",
"request_id": "7a1c0e42-9f85-4d6e-bb5d-358a72913c0b"
}Bill Credit Notes
Create Bill Credit Note
Create a new Bill credit note.
POST
/
accounting
/
bill_credit_notes
Create Bill Credit Note
curl --request POST \
--url https://api.rootfi.dev/accounting/bill_credit_notes \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"company_id": 1,
"data": [
{
"contact_id": "123456",
"document_number": "ROOTFI01",
"posted_date": "2021-09-28T15:00:00.000Z",
"currency_id": "GBP",
"bill_ids": [],
"memo": "Test Invoice",
"line_items": [
{
"account_id": "123456",
"quantity": 1,
"item_id": "123456",
"tax_id": "123456",
"unit_amount": 100,
"total_discount": 0,
"description": "Test Item"
}
]
}
]
}
'import requests
url = "https://api.rootfi.dev/accounting/bill_credit_notes"
payload = {
"company_id": 1,
"data": [
{
"contact_id": "123456",
"document_number": "ROOTFI01",
"posted_date": "2021-09-28T15:00:00.000Z",
"currency_id": "GBP",
"bill_ids": [],
"memo": "Test Invoice",
"line_items": [
{
"account_id": "123456",
"quantity": 1,
"item_id": "123456",
"tax_id": "123456",
"unit_amount": 100,
"total_discount": 0,
"description": "Test Item"
}
]
}
]
}
headers = {
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {api_key: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
company_id: 1,
data: [
{
contact_id: '123456',
document_number: 'ROOTFI01',
posted_date: '2021-09-28T15:00:00.000Z',
currency_id: 'GBP',
bill_ids: [],
memo: 'Test Invoice',
line_items: [
{
account_id: '123456',
quantity: 1,
item_id: '123456',
tax_id: '123456',
unit_amount: 100,
total_discount: 0,
description: 'Test Item'
}
]
}
]
})
};
fetch('https://api.rootfi.dev/accounting/bill_credit_notes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.rootfi.dev/accounting/bill_credit_notes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'company_id' => 1,
'data' => [
[
'contact_id' => '123456',
'document_number' => 'ROOTFI01',
'posted_date' => '2021-09-28T15:00:00.000Z',
'currency_id' => 'GBP',
'bill_ids' => [
],
'memo' => 'Test Invoice',
'line_items' => [
[
'account_id' => '123456',
'quantity' => 1,
'item_id' => '123456',
'tax_id' => '123456',
'unit_amount' => 100,
'total_discount' => 0,
'description' => 'Test Item'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api_key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.rootfi.dev/accounting/bill_credit_notes"
payload := strings.NewReader("{\n \"company_id\": 1,\n \"data\": [\n {\n \"contact_id\": \"123456\",\n \"document_number\": \"ROOTFI01\",\n \"posted_date\": \"2021-09-28T15:00:00.000Z\",\n \"currency_id\": \"GBP\",\n \"bill_ids\": [],\n \"memo\": \"Test Invoice\",\n \"line_items\": [\n {\n \"account_id\": \"123456\",\n \"quantity\": 1,\n \"item_id\": \"123456\",\n \"tax_id\": \"123456\",\n \"unit_amount\": 100,\n \"total_discount\": 0,\n \"description\": \"Test Item\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api_key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.rootfi.dev/accounting/bill_credit_notes")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"company_id\": 1,\n \"data\": [\n {\n \"contact_id\": \"123456\",\n \"document_number\": \"ROOTFI01\",\n \"posted_date\": \"2021-09-28T15:00:00.000Z\",\n \"currency_id\": \"GBP\",\n \"bill_ids\": [],\n \"memo\": \"Test Invoice\",\n \"line_items\": [\n {\n \"account_id\": \"123456\",\n \"quantity\": 1,\n \"item_id\": \"123456\",\n \"tax_id\": \"123456\",\n \"unit_amount\": 100,\n \"total_discount\": 0,\n \"description\": \"Test Item\"\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rootfi.dev/accounting/bill_credit_notes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api_key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"company_id\": 1,\n \"data\": [\n {\n \"contact_id\": \"123456\",\n \"document_number\": \"ROOTFI01\",\n \"posted_date\": \"2021-09-28T15:00:00.000Z\",\n \"currency_id\": \"GBP\",\n \"bill_ids\": [],\n \"memo\": \"Test Invoice\",\n \"line_items\": [\n {\n \"account_id\": \"123456\",\n \"quantity\": 1,\n \"item_id\": \"123456\",\n \"tax_id\": \"123456\",\n \"unit_amount\": 100,\n \"total_discount\": 0,\n \"description\": \"Test Item\"\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"status": "SUCCESS",
"upload_job_id": "aXI9pUDA5T7E2LS",
"data": [
{
"job_id": "xQm2K441VosP8W4",
"status": "success",
"response": {
"platform_id": "3770712000001684001",
"bill_ids": [
"3770712000000213001"
],
"contact_id": "3770712000000209007",
"currency_id": "3770712000000000099",
"document_number": "Bd5200",
"posted_date": "2023-04-17T00:00:00.000Z",
"memo": "psssss",
"remaining_credit": 140,
"total_amount": 140,
"status": "SUBMITTED",
"updated_at": "2023-10-31T00:00:00.000Z",
"raw_data": {
"platform_id": "123456",
"nominal_code": "Rootfi 01",
"name": "Test Account",
"description": "Test Description",
"category": "LIABILITY",
"sub_category": "Long Term Liabilities",
"status": "ACTIVE"
}
},
"error": null
}
]
},
"request_timestamp": "2021-09-28T15:00:00.000Z",
"response_timestamp": "2021-09-28T15:00:00.000Z",
"request_id": "7a1c0e42-9f85-4d6e-bb5d-358a72913c0b"
}An Bill Credit Note is a financial transaction representing a reduction that can be applied against one or multiple bills issued to Vendors.
Additional Required Fields
To successfully create a bill credit note, certain fields must be included in the raw_data object of the request body. The required fields are as follows:| Integration | Field | Description |
|---|---|---|
| FRESH_BOOKS | currency_rate | The exchange rate between the currency of the invoice credit note and the base currency of the company. |
| MYOB_BUSINESS | tax_code | The tax code to which the contact belongs. |
| SAGE_CLOUD_ACCOUNTING | currency_rate | The exchange rate to be used for the bill credit note. |
Authorizations
Body
application/json
Response
200 - application/json
Show child attributes
Show child attributes
The time at which the request was received by the server
The time at which the response was sent by the server
The unique ID of the request
⌘I