curl --request POST \
--url https://api-sandbox.synctera.com/v0/accounts/products \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rates": [
{
"rate": 1,
"valid_from": "2023-12-25",
"tier_calculation_method": "WHOLE_BALANCE",
"tier_selection_method": "EFFECTIVE_BALANCE",
"tiers": [
{
"min_balance": 1,
"rate": 1,
"max_balance": 1
}
],
"valid_to": "2023-12-25"
}
],
"description": "The rate is designed for high interest saving account."
}
'import requests
url = "https://api-sandbox.synctera.com/v0/accounts/products"
payload = {
"rates": [
{
"rate": 1,
"valid_from": "2023-12-25",
"tier_calculation_method": "WHOLE_BALANCE",
"tier_selection_method": "EFFECTIVE_BALANCE",
"tiers": [
{
"min_balance": 1,
"rate": 1,
"max_balance": 1
}
],
"valid_to": "2023-12-25"
}
],
"description": "The rate is designed for high interest saving account."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
rates: [
{
rate: 1,
valid_from: '2023-12-25',
tier_calculation_method: 'WHOLE_BALANCE',
tier_selection_method: 'EFFECTIVE_BALANCE',
tiers: [{min_balance: 1, rate: 1, max_balance: 1}],
valid_to: '2023-12-25'
}
],
description: 'The rate is designed for high interest saving account.'
})
};
fetch('https://api-sandbox.synctera.com/v0/accounts/products', 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-sandbox.synctera.com/v0/accounts/products",
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([
'rates' => [
[
'rate' => 1,
'valid_from' => '2023-12-25',
'tier_calculation_method' => 'WHOLE_BALANCE',
'tier_selection_method' => 'EFFECTIVE_BALANCE',
'tiers' => [
[
'min_balance' => 1,
'rate' => 1,
'max_balance' => 1
]
],
'valid_to' => '2023-12-25'
]
],
'description' => 'The rate is designed for high interest saving account.'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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-sandbox.synctera.com/v0/accounts/products"
payload := strings.NewReader("{\n \"rates\": [\n {\n \"rate\": 1,\n \"valid_from\": \"2023-12-25\",\n \"tier_calculation_method\": \"WHOLE_BALANCE\",\n \"tier_selection_method\": \"EFFECTIVE_BALANCE\",\n \"tiers\": [\n {\n \"min_balance\": 1,\n \"rate\": 1,\n \"max_balance\": 1\n }\n ],\n \"valid_to\": \"2023-12-25\"\n }\n ],\n \"description\": \"The rate is designed for high interest saving account.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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-sandbox.synctera.com/v0/accounts/products")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"rates\": [\n {\n \"rate\": 1,\n \"valid_from\": \"2023-12-25\",\n \"tier_calculation_method\": \"WHOLE_BALANCE\",\n \"tier_selection_method\": \"EFFECTIVE_BALANCE\",\n \"tiers\": [\n {\n \"min_balance\": 1,\n \"rate\": 1,\n \"max_balance\": 1\n }\n ],\n \"valid_to\": \"2023-12-25\"\n }\n ],\n \"description\": \"The rate is designed for high interest saving account.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.synctera.com/v0/accounts/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rates\": [\n {\n \"rate\": 1,\n \"valid_from\": \"2023-12-25\",\n \"tier_calculation_method\": \"WHOLE_BALANCE\",\n \"tier_selection_method\": \"EFFECTIVE_BALANCE\",\n \"tiers\": [\n {\n \"min_balance\": 1,\n \"rate\": 1,\n \"max_balance\": 1\n }\n ],\n \"valid_to\": \"2023-12-25\"\n }\n ],\n \"description\": \"The rate is designed for high interest saving account.\"\n}"
response = http.request(request)
puts response.read_body{
"accrual_payout_schedule": "MONTHLY",
"calculation_method": "COMPOUNDED_DAILY",
"product_type": "FEE",
"rates": [
{
"accrual_period": "DAILY",
"rate": 1,
"valid_from": "2023-12-25",
"rate_type": "FLAT",
"tier_calculation_method": "WHOLE_BALANCE",
"tier_selection_method": "EFFECTIVE_BALANCE",
"tiers": [
{
"min_balance": 1,
"rate": 1,
"max_balance": 1
}
],
"valid_to": "2023-12-25"
}
],
"description": "The rate is designed for high interest saving account.",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Create an account product
Create an account product. Rates cannot be nil or empty.
The FEE account product has been deprecated. Instead, use the /v1/fee_templates and /v1/fees endpoints.
curl --request POST \
--url https://api-sandbox.synctera.com/v0/accounts/products \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rates": [
{
"rate": 1,
"valid_from": "2023-12-25",
"tier_calculation_method": "WHOLE_BALANCE",
"tier_selection_method": "EFFECTIVE_BALANCE",
"tiers": [
{
"min_balance": 1,
"rate": 1,
"max_balance": 1
}
],
"valid_to": "2023-12-25"
}
],
"description": "The rate is designed for high interest saving account."
}
'import requests
url = "https://api-sandbox.synctera.com/v0/accounts/products"
payload = {
"rates": [
{
"rate": 1,
"valid_from": "2023-12-25",
"tier_calculation_method": "WHOLE_BALANCE",
"tier_selection_method": "EFFECTIVE_BALANCE",
"tiers": [
{
"min_balance": 1,
"rate": 1,
"max_balance": 1
}
],
"valid_to": "2023-12-25"
}
],
"description": "The rate is designed for high interest saving account."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
rates: [
{
rate: 1,
valid_from: '2023-12-25',
tier_calculation_method: 'WHOLE_BALANCE',
tier_selection_method: 'EFFECTIVE_BALANCE',
tiers: [{min_balance: 1, rate: 1, max_balance: 1}],
valid_to: '2023-12-25'
}
],
description: 'The rate is designed for high interest saving account.'
})
};
fetch('https://api-sandbox.synctera.com/v0/accounts/products', 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-sandbox.synctera.com/v0/accounts/products",
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([
'rates' => [
[
'rate' => 1,
'valid_from' => '2023-12-25',
'tier_calculation_method' => 'WHOLE_BALANCE',
'tier_selection_method' => 'EFFECTIVE_BALANCE',
'tiers' => [
[
'min_balance' => 1,
'rate' => 1,
'max_balance' => 1
]
],
'valid_to' => '2023-12-25'
]
],
'description' => 'The rate is designed for high interest saving account.'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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-sandbox.synctera.com/v0/accounts/products"
payload := strings.NewReader("{\n \"rates\": [\n {\n \"rate\": 1,\n \"valid_from\": \"2023-12-25\",\n \"tier_calculation_method\": \"WHOLE_BALANCE\",\n \"tier_selection_method\": \"EFFECTIVE_BALANCE\",\n \"tiers\": [\n {\n \"min_balance\": 1,\n \"rate\": 1,\n \"max_balance\": 1\n }\n ],\n \"valid_to\": \"2023-12-25\"\n }\n ],\n \"description\": \"The rate is designed for high interest saving account.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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-sandbox.synctera.com/v0/accounts/products")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"rates\": [\n {\n \"rate\": 1,\n \"valid_from\": \"2023-12-25\",\n \"tier_calculation_method\": \"WHOLE_BALANCE\",\n \"tier_selection_method\": \"EFFECTIVE_BALANCE\",\n \"tiers\": [\n {\n \"min_balance\": 1,\n \"rate\": 1,\n \"max_balance\": 1\n }\n ],\n \"valid_to\": \"2023-12-25\"\n }\n ],\n \"description\": \"The rate is designed for high interest saving account.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.synctera.com/v0/accounts/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rates\": [\n {\n \"rate\": 1,\n \"valid_from\": \"2023-12-25\",\n \"tier_calculation_method\": \"WHOLE_BALANCE\",\n \"tier_selection_method\": \"EFFECTIVE_BALANCE\",\n \"tiers\": [\n {\n \"min_balance\": 1,\n \"rate\": 1,\n \"max_balance\": 1\n }\n ],\n \"valid_to\": \"2023-12-25\"\n }\n ],\n \"description\": \"The rate is designed for high interest saving account.\"\n}"
response = http.request(request)
puts response.read_body{
"accrual_payout_schedule": "MONTHLY",
"calculation_method": "COMPOUNDED_DAILY",
"product_type": "FEE",
"rates": [
{
"accrual_period": "DAILY",
"rate": 1,
"valid_from": "2023-12-25",
"rate_type": "FLAT",
"tier_calculation_method": "WHOLE_BALANCE",
"tier_selection_method": "EFFECTIVE_BALANCE",
"tiers": [
{
"min_balance": 1,
"rate": 1,
"max_balance": 1
}
],
"valid_to": "2023-12-25"
}
],
"description": "The rate is designed for high interest saving account.",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
An idempotency key is an arbitrary unique value generated by client to detect subsequent retries of the same request. It is recommended that a UUID or a similar random identifier be used as an idempotency key. A different key must be used for each request, unless it is a retry.
"7d943c51-e4ff-4e57-9558-08cab6b963c7"
Body
Account product to create
- Option 1
- Option 2
MONTHLY, NONE COMPOUNDED_DAILY, COMPOUNDED_MONTHLY FEE, INTEREST A list of interest rate. Date intervals between valid_from and valid_to expect to have no overlap.
Show child attributes
Show child attributes
User provided description for the current interest.
"The rate is designed for high interest saving account."
Response
Account product created
- Option 1
- Option 2
MONTHLY, NONE COMPOUNDED_DAILY, COMPOUNDED_MONTHLY FEE, INTEREST A list of interest rate. Date intervals between valid_from and valid_to expect to have no overlap.
Show child attributes
Show child attributes
User provided description for the current interest.
"The rate is designed for high interest saving account."
Interest ID
Was this page helpful?

