Create template group
curl --request POST \
--url https://devapi.eazecustoms.com/staging/v1/declaration-templates/groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"code": "<string>",
"isDefault": true,
"companyId": 123,
"DeclarationTemplates": [
{}
]
}
'import requests
url = "https://devapi.eazecustoms.com/staging/v1/declaration-templates/groups"
payload = {
"name": "<string>",
"code": "<string>",
"isDefault": True,
"companyId": 123,
"DeclarationTemplates": [{}]
}
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({
name: '<string>',
code: '<string>',
isDefault: true,
companyId: 123,
DeclarationTemplates: [{}]
})
};
fetch('https://devapi.eazecustoms.com/staging/v1/declaration-templates/groups', 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://devapi.eazecustoms.com/staging/v1/declaration-templates/groups",
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([
'name' => '<string>',
'code' => '<string>',
'isDefault' => true,
'companyId' => 123,
'DeclarationTemplates' => [
[
]
]
]),
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://devapi.eazecustoms.com/staging/v1/declaration-templates/groups"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"code\": \"<string>\",\n \"isDefault\": true,\n \"companyId\": 123,\n \"DeclarationTemplates\": [\n {}\n ]\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://devapi.eazecustoms.com/staging/v1/declaration-templates/groups")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"code\": \"<string>\",\n \"isDefault\": true,\n \"companyId\": 123,\n \"DeclarationTemplates\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://devapi.eazecustoms.com/staging/v1/declaration-templates/groups")
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 \"name\": \"<string>\",\n \"code\": \"<string>\",\n \"isDefault\": true,\n \"companyId\": 123,\n \"DeclarationTemplates\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": 1,
"name": "Default Import Group",
"code": "IMP-DEFAULT",
"isDefault": true,
"companyId": 1,
"createdAt": "2026-06-22T10:00:00.000Z"
}
Declaration Templates
Create template group
Create a new template group that bundles multiple templates.
POST
/
v1
/
declaration-templates
/
groups
Create template group
curl --request POST \
--url https://devapi.eazecustoms.com/staging/v1/declaration-templates/groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"code": "<string>",
"isDefault": true,
"companyId": 123,
"DeclarationTemplates": [
{}
]
}
'import requests
url = "https://devapi.eazecustoms.com/staging/v1/declaration-templates/groups"
payload = {
"name": "<string>",
"code": "<string>",
"isDefault": True,
"companyId": 123,
"DeclarationTemplates": [{}]
}
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({
name: '<string>',
code: '<string>',
isDefault: true,
companyId: 123,
DeclarationTemplates: [{}]
})
};
fetch('https://devapi.eazecustoms.com/staging/v1/declaration-templates/groups', 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://devapi.eazecustoms.com/staging/v1/declaration-templates/groups",
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([
'name' => '<string>',
'code' => '<string>',
'isDefault' => true,
'companyId' => 123,
'DeclarationTemplates' => [
[
]
]
]),
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://devapi.eazecustoms.com/staging/v1/declaration-templates/groups"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"code\": \"<string>\",\n \"isDefault\": true,\n \"companyId\": 123,\n \"DeclarationTemplates\": [\n {}\n ]\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://devapi.eazecustoms.com/staging/v1/declaration-templates/groups")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"code\": \"<string>\",\n \"isDefault\": true,\n \"companyId\": 123,\n \"DeclarationTemplates\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://devapi.eazecustoms.com/staging/v1/declaration-templates/groups")
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 \"name\": \"<string>\",\n \"code\": \"<string>\",\n \"isDefault\": true,\n \"companyId\": 123,\n \"DeclarationTemplates\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": 1,
"name": "Default Import Group",
"code": "IMP-DEFAULT",
"isDefault": true,
"companyId": 1,
"createdAt": "2026-06-22T10:00:00.000Z"
}
Create a new template group that bundles multiple templates together. You can optionally include declaration templates inline when creating the group.
Request payload
string
required
Name of the template group.
string
required
Unique short code identifying this template group.
boolean
default:"false"
Whether this group is applied by default to new shipments.
integer
required
The ID of the company this group belongs to.
array
List of declaration templates to bundle inside this group. Each template can include all customs field defaults.
JSON Payload
{
"name": "Default Import Group",
"code": "IMP-DEFAULT",
"isDefault": true,
"companyId": 1,
"DeclarationTemplates": [
{
"procedureType": "H1",
"declarationType": "declarationEUGoods",
"additionalDeclarationType": "STANDARD",
"representation": "NoRepresentation",
"declarationOffice": "NL000432",
"customsOfficeOfExport": "NL000515",
"customsOfficeOfExit": "NL000516",
"supervisingOffice": "NL000527",
"customsWarehouseType": "R",
"customsWarehouseID": "NL12345678",
"goodsLocationType": "A",
"goodsLocationAddressType": "X",
"countryOfDispatch": "CN",
"countryOfDestination": "NL",
"countryOfBorder": "DE",
"arrivalTransportName": "Ever Given",
"arrivalTransportNameType": "11",
"arrivalTransportType": "1",
"borderTransportType": "1",
"natureOfTransaction": "1",
"methodOfPayment": "A",
"currentProcedureCode": "40",
"previousProcedureCode": "00",
"additionalProcedureCodes": "C07,F45",
"additionalCodeTARIC": "1234,5678",
"additionalCodeNational": "9001",
"preferenceCode": "100",
"customsValuationMethod": "1",
"incoterm": "DAP",
"incotermLocation": "Amsterdam Airport",
"PreviousDocuments": [
{
"documentCategory": 0,
"typeCode": "N853",
"description": "Previous Doc Example"
}
],
"SupportingDocuments": [
{
"documentCategory": 1,
"typeCode": "N380",
"description": "Commercial Invoice"
}
]
}
]
}
{
"id": 1,
"name": "Default Import Group",
"code": "IMP-DEFAULT",
"isDefault": true,
"companyId": 1,
"createdAt": "2026-06-22T10:00:00.000Z"
}
⌘I