Fix an import declaration
curl --request PATCH \
--url https://sandbox-api.easecustoms.com/v1/declarations/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"consignee": {},
"DeclarationItems": [
{}
]
}
'import requests
url = "https://sandbox-api.easecustoms.com/v1/declarations/{id}"
payload = {
"consignee": {},
"DeclarationItems": [{}]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({consignee: {}, DeclarationItems: [{}]})
};
fetch('https://sandbox-api.easecustoms.com/v1/declarations/{id}', 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://sandbox-api.easecustoms.com/v1/declarations/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'consignee' => [
],
'DeclarationItems' => [
[
]
]
]),
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://sandbox-api.easecustoms.com/v1/declarations/{id}"
payload := strings.NewReader("{\n \"consignee\": {},\n \"DeclarationItems\": [\n {}\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://sandbox-api.easecustoms.com/v1/declarations/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"consignee\": {},\n \"DeclarationItems\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.easecustoms.com/v1/declarations/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"consignee\": {},\n \"DeclarationItems\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"declarationId": 42,
"status": "processing"
}
{
"statusCode": 400,
"message": "Declaration status does not allow patching",
"error": "Bad Request"
}
Import Declarations
Fix an import declaration
Update fields on an import declaration that has validation errors.
PATCH
/
v1
/
declarations
/
{id}
Fix an import declaration
curl --request PATCH \
--url https://sandbox-api.easecustoms.com/v1/declarations/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"consignee": {},
"DeclarationItems": [
{}
]
}
'import requests
url = "https://sandbox-api.easecustoms.com/v1/declarations/{id}"
payload = {
"consignee": {},
"DeclarationItems": [{}]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({consignee: {}, DeclarationItems: [{}]})
};
fetch('https://sandbox-api.easecustoms.com/v1/declarations/{id}', 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://sandbox-api.easecustoms.com/v1/declarations/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'consignee' => [
],
'DeclarationItems' => [
[
]
]
]),
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://sandbox-api.easecustoms.com/v1/declarations/{id}"
payload := strings.NewReader("{\n \"consignee\": {},\n \"DeclarationItems\": [\n {}\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://sandbox-api.easecustoms.com/v1/declarations/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"consignee\": {},\n \"DeclarationItems\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.easecustoms.com/v1/declarations/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"consignee\": {},\n \"DeclarationItems\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"declarationId": 42,
"status": "processing"
}
{
"statusCode": 400,
"message": "Declaration status does not allow patching",
"error": "Bad Request"
}
Update fields on a declaration that has validation errors (
status: invalid). Only declarations in processing, invalid, or ready status can be patched.
All patch fields are optional — only send the fields you want to change. Declaration items are matched by itemId (from the GET status response) or by commodityCode (first match).
After patching, the declaration is re-queued for validation; status returns to processing.
Path Parameters
number
required
The unique declaration ID.
Request Payload
object
Updated consignee details.
array
Updated declaration items. Match items by
itemId to modify their details.JSON Payload
{
"consignee": {
"name": "EZC B.V. (Updated Name)"
},
"DeclarationItems": [
{
"itemId": 7,
"netPrice": 1900,
"netWeight": 225
}
]
}
{
"declarationId": 42,
"status": "processing"
}
{
"statusCode": 400,
"message": "Declaration status does not allow patching",
"error": "Bad Request"
}
⌘I