Create Invite Link
curl --request POST \
--url https://api.rootfi.dev/v3/core/invite_links \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"company_name": "RootFi",
"integrations": [
"XERO"
],
"integration_categories": [
"ACCOUNTING"
],
"sync_config": [
{
"data_model": "ACCOUNTS",
"category": "ACCOUNTING",
"enabled": true,
"frequency": "DAILY",
"interval": 1,
"scope_access": {
"READ": true,
"CREATE": true,
"UPDATE": true,
"DELETE": true
},
"sync_from": "2023-01-01T00:00:00Z"
}
]
}
'import requests
url = "https://api.rootfi.dev/v3/core/invite_links"
payload = {
"company_name": "RootFi",
"integrations": ["XERO"],
"integration_categories": ["ACCOUNTING"],
"sync_config": [
{
"data_model": "ACCOUNTS",
"category": "ACCOUNTING",
"enabled": True,
"frequency": "DAILY",
"interval": 1,
"scope_access": {
"READ": True,
"CREATE": True,
"UPDATE": True,
"DELETE": True
},
"sync_from": "2023-01-01T00:00:00Z"
}
]
}
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_name: 'RootFi',
integrations: ['XERO'],
integration_categories: ['ACCOUNTING'],
sync_config: [
{
data_model: 'ACCOUNTS',
category: 'ACCOUNTING',
enabled: true,
frequency: 'DAILY',
interval: 1,
scope_access: {READ: true, CREATE: true, UPDATE: true, DELETE: true},
sync_from: '2023-01-01T00:00:00Z'
}
]
})
};
fetch('https://api.rootfi.dev/v3/core/invite_links', 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/v3/core/invite_links",
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_name' => 'RootFi',
'integrations' => [
'XERO'
],
'integration_categories' => [
'ACCOUNTING'
],
'sync_config' => [
[
'data_model' => 'ACCOUNTS',
'category' => 'ACCOUNTING',
'enabled' => true,
'frequency' => 'DAILY',
'interval' => 1,
'scope_access' => [
'READ' => true,
'CREATE' => true,
'UPDATE' => true,
'DELETE' => true
],
'sync_from' => '2023-01-01T00:00:00Z'
]
]
]),
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/v3/core/invite_links"
payload := strings.NewReader("{\n \"company_name\": \"RootFi\",\n \"integrations\": [\n \"XERO\"\n ],\n \"integration_categories\": [\n \"ACCOUNTING\"\n ],\n \"sync_config\": [\n {\n \"data_model\": \"ACCOUNTS\",\n \"category\": \"ACCOUNTING\",\n \"enabled\": true,\n \"frequency\": \"DAILY\",\n \"interval\": 1,\n \"scope_access\": {\n \"READ\": true,\n \"CREATE\": true,\n \"UPDATE\": true,\n \"DELETE\": true\n },\n \"sync_from\": \"2023-01-01T00:00:00Z\"\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/v3/core/invite_links")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"company_name\": \"RootFi\",\n \"integrations\": [\n \"XERO\"\n ],\n \"integration_categories\": [\n \"ACCOUNTING\"\n ],\n \"sync_config\": [\n {\n \"data_model\": \"ACCOUNTS\",\n \"category\": \"ACCOUNTING\",\n \"enabled\": true,\n \"frequency\": \"DAILY\",\n \"interval\": 1,\n \"scope_access\": {\n \"READ\": true,\n \"CREATE\": true,\n \"UPDATE\": true,\n \"DELETE\": true\n },\n \"sync_from\": \"2023-01-01T00:00:00Z\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rootfi.dev/v3/core/invite_links")
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_name\": \"RootFi\",\n \"integrations\": [\n \"XERO\"\n ],\n \"integration_categories\": [\n \"ACCOUNTING\"\n ],\n \"sync_config\": [\n {\n \"data_model\": \"ACCOUNTS\",\n \"category\": \"ACCOUNTING\",\n \"enabled\": true,\n \"frequency\": \"DAILY\",\n \"interval\": 1,\n \"scope_access\": {\n \"READ\": true,\n \"CREATE\": true,\n \"UPDATE\": true,\n \"DELETE\": true\n },\n \"sync_from\": \"2023-01-01T00:00:00Z\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"rootfi_id": 1,
"rootfi_created_at": "2021-08-10T12:00:00Z",
"rootfi_updated_at": "2021-08-10T12:00:00Z",
"invite_link_id": "1",
"integrations": [
"XERO"
],
"integration_categories": [
"ACCOUNTING"
],
"company": {
"rootfi_id": 1,
"rootfi_created_at": "2021-08-10T12:00:00Z",
"rootfi_updated_at": "2021-08-10T12:00:00Z",
"name": "RootFi"
},
"connections": null
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"field": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"field": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"field": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"field": "<string>"
}
}Invite Links
Create Invite Link
Create a single invite link from the database.
POST
/
core
/
invite_links
Create Invite Link
curl --request POST \
--url https://api.rootfi.dev/v3/core/invite_links \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"company_name": "RootFi",
"integrations": [
"XERO"
],
"integration_categories": [
"ACCOUNTING"
],
"sync_config": [
{
"data_model": "ACCOUNTS",
"category": "ACCOUNTING",
"enabled": true,
"frequency": "DAILY",
"interval": 1,
"scope_access": {
"READ": true,
"CREATE": true,
"UPDATE": true,
"DELETE": true
},
"sync_from": "2023-01-01T00:00:00Z"
}
]
}
'import requests
url = "https://api.rootfi.dev/v3/core/invite_links"
payload = {
"company_name": "RootFi",
"integrations": ["XERO"],
"integration_categories": ["ACCOUNTING"],
"sync_config": [
{
"data_model": "ACCOUNTS",
"category": "ACCOUNTING",
"enabled": True,
"frequency": "DAILY",
"interval": 1,
"scope_access": {
"READ": True,
"CREATE": True,
"UPDATE": True,
"DELETE": True
},
"sync_from": "2023-01-01T00:00:00Z"
}
]
}
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_name: 'RootFi',
integrations: ['XERO'],
integration_categories: ['ACCOUNTING'],
sync_config: [
{
data_model: 'ACCOUNTS',
category: 'ACCOUNTING',
enabled: true,
frequency: 'DAILY',
interval: 1,
scope_access: {READ: true, CREATE: true, UPDATE: true, DELETE: true},
sync_from: '2023-01-01T00:00:00Z'
}
]
})
};
fetch('https://api.rootfi.dev/v3/core/invite_links', 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/v3/core/invite_links",
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_name' => 'RootFi',
'integrations' => [
'XERO'
],
'integration_categories' => [
'ACCOUNTING'
],
'sync_config' => [
[
'data_model' => 'ACCOUNTS',
'category' => 'ACCOUNTING',
'enabled' => true,
'frequency' => 'DAILY',
'interval' => 1,
'scope_access' => [
'READ' => true,
'CREATE' => true,
'UPDATE' => true,
'DELETE' => true
],
'sync_from' => '2023-01-01T00:00:00Z'
]
]
]),
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/v3/core/invite_links"
payload := strings.NewReader("{\n \"company_name\": \"RootFi\",\n \"integrations\": [\n \"XERO\"\n ],\n \"integration_categories\": [\n \"ACCOUNTING\"\n ],\n \"sync_config\": [\n {\n \"data_model\": \"ACCOUNTS\",\n \"category\": \"ACCOUNTING\",\n \"enabled\": true,\n \"frequency\": \"DAILY\",\n \"interval\": 1,\n \"scope_access\": {\n \"READ\": true,\n \"CREATE\": true,\n \"UPDATE\": true,\n \"DELETE\": true\n },\n \"sync_from\": \"2023-01-01T00:00:00Z\"\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/v3/core/invite_links")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"company_name\": \"RootFi\",\n \"integrations\": [\n \"XERO\"\n ],\n \"integration_categories\": [\n \"ACCOUNTING\"\n ],\n \"sync_config\": [\n {\n \"data_model\": \"ACCOUNTS\",\n \"category\": \"ACCOUNTING\",\n \"enabled\": true,\n \"frequency\": \"DAILY\",\n \"interval\": 1,\n \"scope_access\": {\n \"READ\": true,\n \"CREATE\": true,\n \"UPDATE\": true,\n \"DELETE\": true\n },\n \"sync_from\": \"2023-01-01T00:00:00Z\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rootfi.dev/v3/core/invite_links")
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_name\": \"RootFi\",\n \"integrations\": [\n \"XERO\"\n ],\n \"integration_categories\": [\n \"ACCOUNTING\"\n ],\n \"sync_config\": [\n {\n \"data_model\": \"ACCOUNTS\",\n \"category\": \"ACCOUNTING\",\n \"enabled\": true,\n \"frequency\": \"DAILY\",\n \"interval\": 1,\n \"scope_access\": {\n \"READ\": true,\n \"CREATE\": true,\n \"UPDATE\": true,\n \"DELETE\": true\n },\n \"sync_from\": \"2023-01-01T00:00:00Z\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"rootfi_id": 1,
"rootfi_created_at": "2021-08-10T12:00:00Z",
"rootfi_updated_at": "2021-08-10T12:00:00Z",
"invite_link_id": "1",
"integrations": [
"XERO"
],
"integration_categories": [
"ACCOUNTING"
],
"company": {
"rootfi_id": 1,
"rootfi_created_at": "2021-08-10T12:00:00Z",
"rootfi_updated_at": "2021-08-10T12:00:00Z",
"name": "RootFi"
},
"connections": null
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"field": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"field": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"field": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"field": "<string>"
}
}An invite link contains API requests for generating and managing invite links, which can be used to connect end users to their preferred accounting platforms.
Company Name is the name of your customer’s company. This is the name that will be displayed in the RootFi dashboard. If left blank, your customer will be prompted to enter a company name when they connect their integration.
Integration is the name of the integration that you want to connect to.
Integration Category is the category of the integrations that you want to connect to.
Authorizations
Body
application/json
The body of the invite link to create
The data of the invite link endpoint
The integration categories of the invite link
Available options:
ACCOUNTING, PAYMENTS, CRM, ECOMMERCE, CUSTOM The name of the company
The integrations of the invite link
Available options:
ZOHO_BOOKS, QUICKBOOKS_SANDBOX, QUICKBOOKS, XERO, TALLY, ROOTFI_SANDBOX, SAGE_CLOUD_ACCOUNTING, MS_DYNAMICS_365, SAGE_ZA_CLOUD_ACCOUNTING, MYOB_BUSINESS, NETSUITE, WAVE, ODOO_ACCOUNTING, WAFEQ, MEKARI_JURNAL, BUSY, QOYOD, STRIPE, RAZORPAY, PAYPAL, SHOPIFY, BIG_COMMERCE, WOO_COMMERCE, HUBSPOT, SALESFORCE, PIPEDRIVE, ZOHO_CRM The sync configuration of the connection
Show child attributes
Show child attributes
A custom ID which can be used to identify the invite link or Company
Response
The data of the invite link endpoint
The data of the invite link endpoint
Show child attributes
Show child attributes
⌘I