Create Bill Payment
curl --request POST \
--url https://api.rootfi.dev/accounting/bill_payments \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"company_id": 1,
"data": [
{
"bill_id": "123456",
"contact_id": "123456",
"amount": 100,
"account_id": "123456",
"payment_date": "2021-09-28T15:00:00.000Z",
"document_number": "ROOTFI01",
"memo": "Test Memo"
}
]
}
'import requests
url = "https://api.rootfi.dev/accounting/bill_payments"
payload = {
"company_id": 1,
"data": [
{
"bill_id": "123456",
"contact_id": "123456",
"amount": 100,
"account_id": "123456",
"payment_date": "2021-09-28T15:00:00.000Z",
"document_number": "ROOTFI01",
"memo": "Test Memo"
}
]
}
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: [
{
bill_id: '123456',
contact_id: '123456',
amount: 100,
account_id: '123456',
payment_date: '2021-09-28T15:00:00.000Z',
document_number: 'ROOTFI01',
memo: 'Test Memo'
}
]
})
};
fetch('https://api.rootfi.dev/accounting/bill_payments', 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_payments",
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' => [
[
'bill_id' => '123456',
'contact_id' => '123456',
'amount' => 100,
'account_id' => '123456',
'payment_date' => '2021-09-28T15:00:00.000Z',
'document_number' => 'ROOTFI01',
'memo' => 'Test Memo'
]
]
]),
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_payments"
payload := strings.NewReader("{\n \"company_id\": 1,\n \"data\": [\n {\n \"bill_id\": \"123456\",\n \"contact_id\": \"123456\",\n \"amount\": 100,\n \"account_id\": \"123456\",\n \"payment_date\": \"2021-09-28T15:00:00.000Z\",\n \"document_number\": \"ROOTFI01\",\n \"memo\": \"Test Memo\"\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_payments")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"company_id\": 1,\n \"data\": [\n {\n \"bill_id\": \"123456\",\n \"contact_id\": \"123456\",\n \"amount\": 100,\n \"account_id\": \"123456\",\n \"payment_date\": \"2021-09-28T15:00:00.000Z\",\n \"document_number\": \"ROOTFI01\",\n \"memo\": \"Test Memo\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rootfi.dev/accounting/bill_payments")
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 \"bill_id\": \"123456\",\n \"contact_id\": \"123456\",\n \"amount\": 100,\n \"account_id\": \"123456\",\n \"payment_date\": \"2021-09-28T15:00:00.000Z\",\n \"document_number\": \"ROOTFI01\",\n \"memo\": \"Test Memo\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"status": "SUCCESS",
"upload_job_id": "xQm2K441VosP8W4",
"data": [
{
"job_id": "aXI9pUDA5T7E2LS",
"status": "success",
"response": {
"platform_id": "3770712000001669018",
"payment_id": "3770712000001669016",
"bill_id": "3770712000000319001",
"contact_id": "3770712000000209007",
"credit_note_id": "3770712000001669016",
"account_id": "3770712000000000361",
"currency_id": "3770712000000000099",
"amount": 1234,
"payment_date": "2023-03-01T00:00:00.000Z",
"payment_mode": "Cash",
"currency_rate": 12,
"document_number": "S69",
"memo": "Payment for the Bill",
"updated_at": "2023-11-01T00: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": "b2e791f5-7384-4e4f-800f-5c032f6bb61b"
}Bill Payments
Create Bill Payments
Create a new bill payment in the database.
POST
/
accounting
/
bill_payments
Create Bill Payment
curl --request POST \
--url https://api.rootfi.dev/accounting/bill_payments \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"company_id": 1,
"data": [
{
"bill_id": "123456",
"contact_id": "123456",
"amount": 100,
"account_id": "123456",
"payment_date": "2021-09-28T15:00:00.000Z",
"document_number": "ROOTFI01",
"memo": "Test Memo"
}
]
}
'import requests
url = "https://api.rootfi.dev/accounting/bill_payments"
payload = {
"company_id": 1,
"data": [
{
"bill_id": "123456",
"contact_id": "123456",
"amount": 100,
"account_id": "123456",
"payment_date": "2021-09-28T15:00:00.000Z",
"document_number": "ROOTFI01",
"memo": "Test Memo"
}
]
}
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: [
{
bill_id: '123456',
contact_id: '123456',
amount: 100,
account_id: '123456',
payment_date: '2021-09-28T15:00:00.000Z',
document_number: 'ROOTFI01',
memo: 'Test Memo'
}
]
})
};
fetch('https://api.rootfi.dev/accounting/bill_payments', 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_payments",
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' => [
[
'bill_id' => '123456',
'contact_id' => '123456',
'amount' => 100,
'account_id' => '123456',
'payment_date' => '2021-09-28T15:00:00.000Z',
'document_number' => 'ROOTFI01',
'memo' => 'Test Memo'
]
]
]),
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_payments"
payload := strings.NewReader("{\n \"company_id\": 1,\n \"data\": [\n {\n \"bill_id\": \"123456\",\n \"contact_id\": \"123456\",\n \"amount\": 100,\n \"account_id\": \"123456\",\n \"payment_date\": \"2021-09-28T15:00:00.000Z\",\n \"document_number\": \"ROOTFI01\",\n \"memo\": \"Test Memo\"\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_payments")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"company_id\": 1,\n \"data\": [\n {\n \"bill_id\": \"123456\",\n \"contact_id\": \"123456\",\n \"amount\": 100,\n \"account_id\": \"123456\",\n \"payment_date\": \"2021-09-28T15:00:00.000Z\",\n \"document_number\": \"ROOTFI01\",\n \"memo\": \"Test Memo\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rootfi.dev/accounting/bill_payments")
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 \"bill_id\": \"123456\",\n \"contact_id\": \"123456\",\n \"amount\": 100,\n \"account_id\": \"123456\",\n \"payment_date\": \"2021-09-28T15:00:00.000Z\",\n \"document_number\": \"ROOTFI01\",\n \"memo\": \"Test Memo\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"status": "SUCCESS",
"upload_job_id": "xQm2K441VosP8W4",
"data": [
{
"job_id": "aXI9pUDA5T7E2LS",
"status": "success",
"response": {
"platform_id": "3770712000001669018",
"payment_id": "3770712000001669016",
"bill_id": "3770712000000319001",
"contact_id": "3770712000000209007",
"credit_note_id": "3770712000001669016",
"account_id": "3770712000000000361",
"currency_id": "3770712000000000099",
"amount": 1234,
"payment_date": "2023-03-01T00:00:00.000Z",
"payment_mode": "Cash",
"currency_rate": 12,
"document_number": "S69",
"memo": "Payment for the Bill",
"updated_at": "2023-11-01T00: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": "b2e791f5-7384-4e4f-800f-5c032f6bb61b"
}The Bill Payments Data Model is designed to standardise and simplify the management of bill payment information across various accounting platforms.
Additional Required Fields
To successfully create a bill payment, certain fields must be included in the raw_data object of the request body. The required fields are as follows:| Integration | Field | Description |
|---|---|---|
| MS_DYNAMICS_365 | payment_journal_id | The ID of the payment journal. |
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