Skip to main content

Customaite Integration API (1.6.0)

Download OpenAPI specification:Download

Intro

Welcome to the Customaite API documentation! Customaite is an application which allows customs declarants to easily prepare customs declarations, with the help of AI.

We provide APIs so that customers and their service providers can

  • create dossiers on our platform
  • receive published dossiers (see: webhooks)
  • upload master data (parties, goods locations, product data ...)

If you have any questions, we're happy to provide support via your customer success manager.

General notes

Backwards-compatibility

We may provide backwards-compatible updates to the APIs. This means we may add fields to contracts (such as Declaration) or enums. For this reason, the contract will specify enum type fields as string and add the (current) possible values in the description. If you use code generators for the APIs, we recommend to disable raising errors if there are unknown properties provided.

In Java, using Jackson, this can be achieved with settings such as

@JsonIgnoreProperties(ignoreUnknown = true)

Versioning

The version number of the Customaite API will be increased as follows:

  • Major (1.x.x): Breaking changes such as API removals or new versions of APIs
  • Minor (x.1.x): New APIs added or new fields added to existing APIs
  • Patch (x.x.1): Documentation updates of APIs

In the case of a Major version increase, migration guidelines and timelines will be communicated in advance.

Creating an import, export or transit dossier

The Instruction endpoint allows you to create an Import, Transit or Export Dossier in Customaite.

Create dossier

Create a dossier with the provided documents and meta-data. Initial processing is started. It is possible to subscribe to the events when processing is complete via the status update webhooks.

When identifying knownParties, the call will return an error if the party is not known in our system by the externalReference used. If Customaite is configured to use organizational groups to separate data sets, then the label must be provided to correctly identify the known party, otherwise it should be omitted.

Request Body schema: application/json
required
externalReference
string
title
required
string\S
Array of objects (Document)
Array of objects (Email)
activityType
string (ActivityType1)
Enum: "IMPORT" "EXPORT" "TRANSIT" "TRANSIT_NCTS5"
operationalGroupId
string
Array of objects (KnownParty)
declarationType
string (DeclarationType)
Enum: "C" "CO" "EX" "IM" "T" "T1" "T2" "T2F" "T2L" "T2LF" "T2LSM" "T2SM" "TD" "TIR" "X" "EU"
additionalDeclarationType
string (AdditionalDeclarationType)
Enum: "A" "B" "C" "D" "E" "F" "R" "U" "V" "X" "Y" "Z"
procedure
string (Procedure)
Enum: "00" "01" "07" "10" "11" "21" "22" "23" "31" "40" "42" "43" "44" "45" "46" "48" "51" "53" "54" "61" "63" "71" "76" "77" "78" "95" "96" "B1" "B2" "B3" "B4" "C1" "H1" "H2" "H3" "H4" "H5" "H6" "H7" "I1"
previousProcedure
string (Procedure)
Enum: "00" "01" "07" "10" "11" "21" "22" "23" "31" "40" "42" "43" "44" "45" "46" "48" "51" "53" "54" "61" "63" "71" "76" "77" "78" "95" "96" "B1" "B2" "B3" "B4" "C1" "H1" "H2" "H3" "H4" "H5" "H6" "H7" "I1"
Array of objects (PreviousDocument)
customerReference
string
deliveryTerm
string (DeliveryTerm)
Enum: "EXW" "FCA" "CPT" "CIP" "DAP" "DAT" "DPU" "DDP" "FAS" "FOB" "CFR" "CIF" "DDU"
placeOfDeliveryTerm
string
countryOfDeliveryTerm
string (Country)
Enum: "AD" "AE" "AF" "AG" "AI" "AL" "AM" "AN" "AO" "AQ" "AR" "AS" "AT" "AU" "AW" "AX" "AZ" "BA" "BB" "BD" "BE" "BF" "BG" "BH" "BI" "BJ" "BL" "BM" "BN" "BO" "BQ" "BR" "BS" "BT" "BV" "BW" "BY" "BZ" "CA" "CC" "CD" "CF" "CG" "CH" "CI" "CK" "CL" "CM" "CN" "CO" "CR" "CS" "CU" "CV" "CW" "CX" "CY" "CZ" "DD" "DE" "DJ" "DK" "DM" "DO" "DZ" "EC" "EE" "EG" "EH" "ER" "ES" "ET" "EU" "FI" "FJ" "FK" "FM" "FO" "FR" "GA" "GB" "GD" "GE" "GF" "GG" "GH" "GI" "GL" "GM" "GN" "GP" "GQ" "GR" "GS" "GT" "GU" "GW" "GY" "HK" "HM" "HN" "HR" "HT" "HU" "IC" "ID" "IE" "IL" "IM" "IN" "IO" "IQ" "IR" "IS" "IT" "JE" "JM" "JO" "JP" "KE" "KG" "KH" "KI" "KM" "KN" "KP" "KR" "KW" "KY" "KZ" "LA" "LB" "LC" "LI" "LK" "LR" "LS" "LT" "LU" "LV" "LY" "MA" "MC" "MD" "ME" "MF" "MG" "MH" "MK" "ML" "MM" "MN" "MO" "MP" "MQ" "MR" "MS" "MT" "MU" "MV" "MW" "MX" "MY" "MZ" "NA" "NC" "NE" "NF" "NG" "NI" "NL" "NO" "NP" "NR" "NU" "NZ" "OM" "PA" "PE" "PF" "PG" "PH" "PK" "PL" "PM" "PN" "PR" "PS" "PT" "PW" "PY" "QA" "QM" "QN" "QO" "QP" "QQ" "QR" "QS" "QT" "QU" "QV" "QW" "QX" "RE" "RO" "RS" "RU" "RW" "SA" "SB" "SC" "SD" "SE" "SG" "SH" "SI" "SJ" "SK" "SL" "SM" "SN" "SO" "SR" "SS" "ST" "SU" "SV" "SX" "SY" "SZ" "TC" "TD" "TF" "TG" "TH" "TJ" "TK" "TL" "TM" "TN" "TO" "TR" "TT" "TV" "TW" "TZ" "UA" "UG" "UM" "US" "UY" "UZ" "VA" "VC" "VE" "VG" "VI" "VN" "VU" "WF" "WS" "XA" "XB" "XC" "XD" "XE" "XF" "XG" "XH" "XI" "XJ" "XK" "XL" "XM" "XN" "XO" "XP" "XQ" "XR" "XS" "XT" "XU" "XV" "XW" "XY" "YE" "YT" "YU" "ZA" "ZM" "ZW" "ZZ"

ISO 3166 alpha-2 country code

countryOfDispatch
string (Country)
Enum: "AD" "AE" "AF" "AG" "AI" "AL" "AM" "AN" "AO" "AQ" "AR" "AS" "AT" "AU" "AW" "AX" "AZ" "BA" "BB" "BD" "BE" "BF" "BG" "BH" "BI" "BJ" "BL" "BM" "BN" "BO" "BQ" "BR" "BS" "BT" "BV" "BW" "BY" "BZ" "CA" "CC" "CD" "CF" "CG" "CH" "CI" "CK" "CL" "CM" "CN" "CO" "CR" "CS" "CU" "CV" "CW" "CX" "CY" "CZ" "DD" "DE" "DJ" "DK" "DM" "DO" "DZ" "EC" "EE" "EG" "EH" "ER" "ES" "ET" "EU" "FI" "FJ" "FK" "FM" "FO" "FR" "GA" "GB" "GD" "GE" "GF" "GG" "GH" "GI" "GL" "GM" "GN" "GP" "GQ" "GR" "GS" "GT" "GU" "GW" "GY" "HK" "HM" "HN" "HR" "HT" "HU" "IC" "ID" "IE" "IL" "IM" "IN" "IO" "IQ" "IR" "IS" "IT" "JE" "JM" "JO" "JP" "KE" "KG" "KH" "KI" "KM" "KN" "KP" "KR" "KW" "KY" "KZ" "LA" "LB" "LC" "LI" "LK" "LR" "LS" "LT" "LU" "LV" "LY" "MA" "MC" "MD" "ME" "MF" "MG" "MH" "MK" "ML" "MM" "MN" "MO" "MP" "MQ" "MR" "MS" "MT" "MU" "MV" "MW" "MX" "MY" "MZ" "NA" "NC" "NE" "NF" "NG" "NI" "NL" "NO" "NP" "NR" "NU" "NZ" "OM" "PA" "PE" "PF" "PG" "PH" "PK" "PL" "PM" "PN" "PR" "PS" "PT" "PW" "PY" "QA" "QM" "QN" "QO" "QP" "QQ" "QR" "QS" "QT" "QU" "QV" "QW" "QX" "RE" "RO" "RS" "RU" "RW" "SA" "SB" "SC" "SD" "SE" "SG" "SH" "SI" "SJ" "SK" "SL" "SM" "SN" "SO" "SR" "SS" "ST" "SU" "SV" "SX" "SY" "SZ" "TC" "TD" "TF" "TG" "TH" "TJ" "TK" "TL" "TM" "TN" "TO" "TR" "TT" "TV" "TW" "TZ" "UA" "UG" "UM" "US" "UY" "UZ" "VA" "VC" "VE" "VG" "VI" "VN" "VU" "WF" "WS" "XA" "XB" "XC" "XD" "XE" "XF" "XG" "XH" "XI" "XJ" "XK" "XL" "XM" "XN" "XO" "XP" "XQ" "XR" "XS" "XT" "XU" "XV" "XW" "XY" "YE" "YT" "YU" "ZA" "ZM" "ZW" "ZZ"

ISO 3166 alpha-2 country code

countryOfDestination
string (Country)
Enum: "AD" "AE" "AF" "AG" "AI" "AL" "AM" "AN" "AO" "AQ" "AR" "AS" "AT" "AU" "AW" "AX" "AZ" "BA" "BB" "BD" "BE" "BF" "BG" "BH" "BI" "BJ" "BL" "BM" "BN" "BO" "BQ" "BR" "BS" "BT" "BV" "BW" "BY" "BZ" "CA" "CC" "CD" "CF" "CG" "CH" "CI" "CK" "CL" "CM" "CN" "CO" "CR" "CS" "CU" "CV" "CW" "CX" "CY" "CZ" "DD" "DE" "DJ" "DK" "DM" "DO" "DZ" "EC" "EE" "EG" "EH" "ER" "ES" "ET" "EU" "FI" "FJ" "FK" "FM" "FO" "FR" "GA" "GB" "GD" "GE" "GF" "GG" "GH" "GI" "GL" "GM" "GN" "GP" "GQ" "GR" "GS" "GT" "GU" "GW" "GY" "HK" "HM" "HN" "HR" "HT" "HU" "IC" "ID" "IE" "IL" "IM" "IN" "IO" "IQ" "IR" "IS" "IT" "JE" "JM" "JO" "JP" "KE" "KG" "KH" "KI" "KM" "KN" "KP" "KR" "KW" "KY" "KZ" "LA" "LB" "LC" "LI" "LK" "LR" "LS" "LT" "LU" "LV" "LY" "MA" "MC" "MD" "ME" "MF" "MG" "MH" "MK" "ML" "MM" "MN" "MO" "MP" "MQ" "MR" "MS" "MT" "MU" "MV" "MW" "MX" "MY" "MZ" "NA" "NC" "NE" "NF" "NG" "NI" "NL" "NO" "NP" "NR" "NU" "NZ" "OM" "PA" "PE" "PF" "PG" "PH" "PK" "PL" "PM" "PN" "PR" "PS" "PT" "PW" "PY" "QA" "QM" "QN" "QO" "QP" "QQ" "QR" "QS" "QT" "QU" "QV" "QW" "QX" "RE" "RO" "RS" "RU" "RW" "SA" "SB" "SC" "SD" "SE" "SG" "SH" "SI" "SJ" "SK" "SL" "SM" "SN" "SO" "SR" "SS" "ST" "SU" "SV" "SX" "SY" "SZ" "TC" "TD" "TF" "TG" "TH" "TJ" "TK" "TL" "TM" "TN" "TO" "TR" "TT" "TV" "TW" "TZ" "UA" "UG" "UM" "US" "UY" "UZ" "VA" "VC" "VE" "VG" "VI" "VN" "VU" "WF" "WS" "XA" "XB" "XC" "XD" "XE" "XF" "XG" "XH" "XI" "XJ" "XK" "XL" "XM" "XN" "XO" "XP" "XQ" "XR" "XS" "XT" "XU" "XV" "XW" "XY" "YE" "YT" "YU" "ZA" "ZM" "ZW" "ZZ"

ISO 3166 alpha-2 country code

locationOfGoods
string
locationOfGoodsDescription
string
placeOfLoading
string
customsOfficeOfExit
string
customsOfficeOfDeparture
string
customsOfficeOfArrival
string
customsOfficeOfValidation
string
customsOfficesOfTransfer
Array of strings
object (MeansOfTransport)
object (MeansOfTransport)
guaranteeType
string (GuaranteeType)
Enum: "1" "2" "3" "4" "5" "7" "8" "9"
natureOfTransactionA
string (NatureOfTransactionA)
Enum: "1" "2" "3" "4" "5" "6" "7" "8" "9"
natureOfTransactionB
string (NatureOfTransactionB)
Enum: "1" "2" "3" "4" "9"
nctsProcedure
string (NctsProcedure)
Enum: "NORMAL_PROCEDURE" "SIMPLIFIED_PROCEDURE" "NORMAL_PROCEDURE_WITH_ADOPTED_LOCATION"
object (Shipment)
organizationalGroupId
string

The id that corresponds to the group within an organization that will process this assignment/dossier.

object

Responses

Request samples

Content type
application/json
{
  • "externalReference": "string",
  • "title": "string",
  • "documents": [
    ],
  • "emails": [
    ],
  • "activityType": "IMPORT",
  • "operationalGroupId": "string",
  • "knownParties": [
    ],
  • "declarationType": "C",
  • "additionalDeclarationType": "A",
  • "procedure": "00",
  • "previousProcedure": "00",
  • "previousDocuments": [
    ],
  • "customerReference": "string",
  • "deliveryTerm": "EXW",
  • "placeOfDeliveryTerm": "string",
  • "countryOfDeliveryTerm": "AD",
  • "countryOfDispatch": "AD",
  • "countryOfDestination": "AD",
  • "locationOfGoods": "string",
  • "locationOfGoodsDescription": "string",
  • "placeOfLoading": "string",
  • "customsOfficeOfExit": "string",
  • "customsOfficeOfDeparture": "string",
  • "customsOfficeOfArrival": "string",
  • "customsOfficeOfValidation": "string",
  • "customsOfficesOfTransfer": [
    ],
  • "borderMeansOfTransport": {
    },
  • "inlandMeansOfTransport": {
    },
  • "guaranteeType": "1",
  • "natureOfTransactionA": "1",
  • "natureOfTransactionB": "1",
  • "nctsProcedure": "NORMAL_PROCEDURE",
  • "shipment": {
    },
  • "organizationalGroupId": "string",
  • "customAttributes": {
    }
}

Response samples

Content type
application/json
{
  • "dossierId": "c349d45c-4426-401a-9282-819fbb641b81",
  • "proposalId": "9c0e116a-cd43-4035-9c2d-b9b55ce4f74b"
}

Managing files

All endpoints for interacting with files and documents stored in Customaite.

Add file

Upload a file to Customaite so it's reference can be used in other endpoints.

query Parameters
extension
string
Request Body schema: application/octet-stream
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "fileReference": "string"
}

Download file

Download a file

path Parameters
fileReference
required
string

Responses

Documents

All endpoints for interacting with documents stored in Customaite.

Get all documents from this dossier.

Get the document details corresponding to all documents of this dossier.

path Parameters
dossierId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get all document download URLs from this dossier. Deprecated

Get list of URLs corresponding to all documents of this dossier. This API has been replaced by the V2 API which includes document type.

path Parameters
dossierId
required
string

Responses

Response samples

Content type
application/json
[
  • "string"
]

Manage webhooks

Customaite can push data to your servers, via the webhook interface. Customaite supports two kinds of webhooks:

  • Publish webhooks: which will push declarations (Import, Export, Transit, CHED) to you once they are published within Customaite
  • Status webhooks: which will send an event to your server when a dossier status has been changed

You can register webhooks for either type, and use these endpoints to list the currently registered webhooks. It is possible to register multiple webhooks for the same type: in this case, all registered webhooks will be called.

For a webhook, we recommend either basic http authentication is configured or an api key is defined. In case of the latter, you must specify which header name Customaite should use.

Retry policy

In case of failures, we will attempt to retry for a short while. At most 20 times, and no longer than maxRetrySeconds in case this optional field is configured. We retry on 5xx server exception codes, and for a limited set of 4xx client error codes such as 408 (Request Timeout), 409 (Conflict) and 429 (Too Many Requests).

Find publish webhooks

Get a list of all publish webhooks that are registered.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Register a publish webhook

Register a webhook that gets triggered when a user publishes a Dossier in Customaite. The registered endpoint will receive a message of the Schema 'Declaration'.

Request Body schema: application/json
required
requestPath
required
string
requestMethod
required
stringPOST|PUT
authenticationMethod
required
string
basicAuthUser
string
basicAuthPassword
string
apiKey
string
apiKeyHeader
string
maxRetrySeconds
integer <int64>

Optional argument: the maximum number of seconds to retry the webhook call. Note that Customaite will try up to 20 times to send a webhook call.

updatePublishedStatus
boolean

Enables the automatic update of the published status of the proposal to PUBLISHED without waiting on a call to /declaration-proposals/{proposalId}/statuses to update the status of the proposal. If the API returns a 2XX status code, the proposal status will be updated to PUBLISHED. If this boolean is not set, it will default to false, meaning the proposal status will not be updated automatically.

activityTypes
Array of strings (ActivityType) unique
Items Enum: "IMPORT" "EXPORT" "TRANSIT" "TRANSIT_NCTS5" "CHED"

Specify the set of activity types of a proposal for which the webhook should trigger and send a request. When this field is not specified, the webhook will be triggered for all activity types (including activity types added and enabled in the future). Activity types may include: IMPORT, EXPORT, TRANSIT, TRANSIT_NCTS5, CHED

Responses

Request samples

Content type
application/json
{
  • "requestPath": "string",
  • "requestMethod": "string",
  • "authenticationMethod": "string",
  • "basicAuthUser": "string",
  • "basicAuthPassword": "string",
  • "apiKey": "string",
  • "apiKeyHeader": "string",
  • "maxRetrySeconds": 0,
  • "updatePublishedStatus": true,
  • "activityTypes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "ACTIVE",
  • "requestPath": "string",
  • "requestMethod": "string",
  • "authenticationMethod": "string",
  • "maxRetrySeconds": 0,
  • "activityTypes": [
    ]
}

Find publish webhook activation history for a proposal

Get the activation history of the publish webhook, when it was sent, what the receiver response was and what data was sent.

path Parameters
proposalId
required
string <uuid> (UUID) [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-...

Responses

Response samples

Content type
application/json
{
  • "events": [
    ],
  • "publishedProposal": {
    }
}

Find publish webhook

Find a specific publish webhook

path Parameters
publishWebhookId
required
string <uuid> (UUID) [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-...

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "ACTIVE",
  • "requestPath": "string",
  • "requestMethod": "string",
  • "authenticationMethod": "string",
  • "maxRetrySeconds": 0,
  • "activityTypes": [
    ]
}

Create status webhook

Create a webhook that gets triggered every time there is a status update for a declaration-proposal in Customaite. Currently the only supported status is 'PROPOSAL_PROCESSED'. The registered endpoint will receive a message of the Schema 'ProposalStatusUpdatedSummary'.

Request Body schema: application/json
required
requestPath
required
string
requestMethod
required
stringPOST|PUT
authenticationMethod
required
string
basicAuthUser
string
basicAuthPassword
string
apiKey
string
apiKeyHeader
string
maxRetrySeconds
integer <int64>
statuses
required
Array of strings (ProposalStatus) non-empty
Items Enum: "PROPOSAL_PROCESSED" "PROPOSAL_PUBLISHED" "PROPOSAL_ARCHIVED"
activityTypes
Array of strings (ActivityType) unique
Items Enum: "IMPORT" "EXPORT" "TRANSIT" "TRANSIT_NCTS5" "CHED"

The activity types for which this webhook should be triggered. Optional, defaults to all activity types

Responses

Request samples

Content type
application/json
{
  • "requestPath": "string",
  • "requestMethod": "string",
  • "authenticationMethod": "string",
  • "basicAuthUser": "string",
  • "basicAuthPassword": "string",
  • "apiKey": "string",
  • "apiKeyHeader": "string",
  • "maxRetrySeconds": 0,
  • "statuses": [
    ],
  • "activityTypes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "ACTIVE",
  • "requestPath": "string",
  • "requestMethod": "string",
  • "authenticationMethod": "string",
  • "statuses": [
    ],
  • "maxRetrySeconds": 0,
  • "activityTypes": [
    ]
}

Parties

Endpoints to manage Parties in Customaite.

Delete all parties

Delete all parties or all parties for a given label. please provide EITHER delete-all or label parameter.If the latter is provided, only all parties for a given label are deleted. WARNING: If delete-all = true, all parties are deleted.

query Parameters
delete-all
string
label
string

Responses

Upsert parties

Create or update parties in Customaite. Parties can optionally be defined with a label, to ensure organizational groups only reference party data with a certain label.

Request Body schema: application/json
required
Array
externalReference
required
string\S
name
required
string\S
object (Address1)
vatNumber
string
eoriNumber
string
roles
required
Array of strings non-empty
label
string

A label is an optional field, which when specified can be used to group parties together under one label. An organizational group can be configured to only reference party data from a specific label or matching one from a list of labels.

discardExtractedHsCode
boolean

discardExtractedHsCode is an optional field that can be set to true to ignore extracted HS-codes for this customer if the product code is not found in the master data. If it is not set, the default value is false.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

All parties as CSV

Get an extract of all parties, can be limited to all parties with a label when provided.

query Parameters
label
string

Responses

Find party

Get the party details of a party based on external reference and label. If a party was created with a label, it must be specified when retrieving it.

path Parameters
externalReference
required
string
query Parameters
label
string

Responses

Response samples

Content type
application/json
{
  • "externalReference": "string",
  • "name": "string",
  • "address": {
    },
  • "vatNumber": "string",
  • "eoriNumber": "string",
  • "roles": [
    ],
  • "label": "string",
  • "discardExtractedHsCode": true
}

Delete party

Delete party based on external reference and label. If a party was created with a label, it must be specified when deleting it.If no label is provided, parties without label will be deleted.

path Parameters
externalReference
required
string
query Parameters
label
string

Responses

Declaration Proposals

All endpoints for updating or getting information of the declarations(s) linked to a dossier in Customaite.

Get article lines of a proposal Deprecated

Deprecated in favor of: '/detailed-lines'. An article is the combination of all information found for a certain good in all the documents of a single Dossier (invoices, packing lists, ..)

path Parameters
proposalId
required
string <uuid> (UUID) [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-...

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get detailed lines of a proposal

A detailed line is the combination of all information found for a certain good in all the documents of a single Dossier (invoices, packing lists, ..)

path Parameters
proposalId
required
string <uuid> (UUID) [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-...

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update external reference on a proposal

How does it work?

With this API you can update an external reference on an existing proposal.

path Parameters
externalReference
required
string
proposalId
required
string <uuid> (UUID) [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-...

Responses

Get header fields of a proposal

Header fields are the proposal-level information that applies to the entire declaration, as opposed to individual goods lines

path Parameters
proposalId
required
string <uuid> (UUID) [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-...

Responses

Response samples

Content type
application/json
{
  • "declarationProposalId": "8b0023b8-5077-49c0-b98b-2aeb0243cd3d",
  • "organizationalGroupId": "string",
  • "dossierId": "c349d45c-4426-401a-9282-819fbb641b81",
  • "mrn": "string",
  • "externalReference": "string",
  • "activityType": "IMPORT",
  • "declarationType": "C",
  • "additionalDeclarationType": "A",
  • "declarant": {
    },
  • "customer": {
    },
  • "consignor": {
    },
  • "consignee": {
    },
  • "commercialReference": "string",
  • "customerReference": "string",
  • "customerContactEmail": "string",
  • "customerContactName": "string",
  • "countryOfDispatch": "string",
  • "countryOfExport": "string",
  • "countryOfDestination": "string",
  • "regionOfDestination": "string",
  • "borderMeansOfTransport": {
    },
  • "inlandMeansOfTransport": {
    },
  • "locationOfGoods": "string",
  • "locationOfGoodsTerminalCode": "string",
  • "locationOfGoodsDescription": "string",
  • "placeOfLoading": "string",
  • "locationOfGoodsType": "A",
  • "containerIndicator": true,
  • "customsOfficeOfExit": "string",
  • "customsOfficeOfEntry": "string",
  • "customsOfficeOfDeparture": "string",
  • "customsOfficeOfArrival": "string",
  • "customsOfficeOfControl": "string",
  • "customsOfficeOfValidation": "string",
  • "customsOfficeOfDestination": "string",
  • "customsOfficeOfExport": "string",
  • "customsOfficeOfPresentation": "string",
  • "supervisingCustomsOffice": "string",
  • "customsOfficesOfTransfer": [
    ],
  • "deliveryTerm": "EXW",
  • "placeOfDeliveryTerm": "string",
  • "countryOfDeliveryTerm": "string",
  • "unlocodeOfDeliveryTerm": "string",
  • "guaranteeType": "1",
  • "releasedTimestamp": "2022-03-10T12:15:50-04:00",
  • "nctsProcedure": "0",
  • "procedure": "00",
  • "previousProcedure": "00",
  • "natureOfTransactionA": "1",
  • "natureOfTransactionB": "1",
  • "customAttributes": {
    }
}

Get invoice lines of a proposal

An invoice line is the line as found on the invoice. This means it might miss weights that are found on the packing lists.

path Parameters
proposalId
required
string <uuid> (UUID) [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-...

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update the status of a proposal

Update the status of this proposal, currently only 2 statuses are accepted: 'accepted' and 'releasedByCustoms'. The accepted status is used to signal that the published proposal is successfully received by your customs system. The released status is used to signal that the Customs authorities approved the declaration.

path Parameters
proposalId
required
string <uuid> (UUID) [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-...
Request Body schema: application/json
required
status
required
string\S
Enum: "accepted" "releasedByCustoms"
additionalInfo
string
eventTimestamp
string <date-time> (OffsetDateTime)

Responses

Request samples

Content type
application/json
{
  • "status": "accepted",
  • "additionalInfo": "string",
  • "eventTimestamp": "2022-03-10T12:15:50-04:00"
}

Get Proposal Summary

path Parameters
proposalId
required
string <uuid> (UUID) [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-...

Responses

Response samples

Content type
application/json
{
  • "proposalDossierNumber": "string"
}

Goods Locations

Endpoints to manage goods locations in Customaite.

Get all good locations

Get an extract of all goods locations, can be limited to those with a label when provided.

query Parameters
label
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete all location codes

Delete all location codes or all location codes for a given label. please provide EITHER delete-all or label parameter.If the latter is provided, only all goods locations for a given label are deleted. WARNING: If delete-all = true, all goods locations are deleted.

query Parameters
delete-all
string
label
string

Responses

Upload goods locations

Create goods locations in Customaite. Goods locations can optionally be defined with a label, to ensure organizational groups only reference goods locations data with a certain label.

Request Body schema: application/json
required
Array
activityType
string
locationCode
string <= 35 characters
place
string
postalCode
string
terminalCode
string
locationCodeType
string
label
string

A label is an optional field, which when specified can be used to group parties together under one label. An organizational group can be configured to only reference party data from a specific label or matching one from a list of labels.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Delete location code

Delete location codes in Customaite based on code and label.If a goods location was created with a label, the label must be specified when deleting. If no label is provided, only location codes without a label will be deleted.

path Parameters
locationCode
required
string
query Parameters
label
string

Responses

Managing Product Codes

All endpoints for managing your product code data in Customaite. Product codes can be associated with a customer, and when product codes are recognized fields such as description, gross weight or Hs codes can be set based on the uploaded master data.

Add product data Deprecated

Deprecated in favor of POST /products/v2

Add product codes to Customaite. This will create a product group for each unique customer name provided and link the product codes to that group. If the customer is not found in the party data the product codes will be omitted.

Request Body schema: application/json
required
Array
code
required
string\S
hsCode
string
description
string
customerName
required
string\S
grossWeight
string
grossWeightUnit
string
netWeight
string
netWeightUnit
string
importHsCode
string
exportHsCode
string
defaultCountryOfOrigin
string
defaultPackagingCode
string

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Delete ALL product data

Deletes all product data inside Customaite. Tread lightly..

Responses

Delete 1 or more products

Deletes a given set of products. If products were created with CustomerName, then the groupName field should be filled with the customerName.

Request Body schema: application/json
required
Array
code
required
string\S
groupName
required
string\S

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Get the product codes for a group.

Get all (limited to 100 000) product codes for a certain group. In case you're not specifying groups, the groupName = customerName

query Parameters
groupName
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add product data

Provide the name of the group, and/or the parties related to this group.

  • If this group already exists, the parties are added to the group (existing parties who are not provided are not removed)
  • If this group does not exist yet, it is created with the provided parties.
  • All parties must be the external reference that's been provided to the party api.
  • ⚠️ The group name must exactly match the customer name (exact match, including case and spacing).
    • This is required for correct handling of product codes and proper application of import/export HS codes.
    • Although party references are currently accepted, the system relies solely on the group name for processing.

Products

  • The product data to link to this group. Products that already exist and have the same code as provided products are updated (product identifier is code case-insensitive.)
Request Body schema: application/json
required
object (ProductGroup)
Array of objects (Product)

Responses

Request samples

Content type
application/json
{
  • "group": {
    },
  • "products": [
    ]
}

Historical Data

All endpoints for updating or getting information of the declarations(s) linked to a dossier in Customaite.

Add historical data

Add historical data to customaite. This can be any declaration that was approved by the customs authority. This data is used to train Customaite to find historical correlations for future declarations. If it was a declaration that was published by Customaite it is advised to fill in the dossier and or declarationProposalId.

Request Body schema: application/json
required
Array
declarationProposalId
string <uuid> (UUID) [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-...
organizationalGroupId
string
dossierId
string <uuid> (UUID) [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-...
mrn
string
externalReference
string
activityType
required
string\S
Enum: "IMPORT" "EXPORT" "TRANSIT"
declarationType
string
Enum: "C" "CO" "EX" "IM" "T" "T1" "T2" "T2F" "T2L" "T2LF" "T2LSM" "T2SM" "TD" "TIR" "X" "EU"
additionalDeclarationType
string
Enum: "A" "B" "C" "D" "E" "F" "R" "U" "V" "X" "Y" "Z"
object (DeclarationParty)
required
object (DeclarationParty)
required
object (DeclarationParty)
required
object (DeclarationParty)
commercialReference
string
customerReference
string
customerContactEmail
string
customerContactName
string
countryOfDispatch
string

ISO 3166 alpha-2 (2 letter code)

countryOfExport
string

ISO 3166 alpha-2 (2 letter code)

countryOfDestination
string

ISO 3166 alpha-2 (2 letter code)

regionOfDestination
string
object (MeansOfTransport1)
object (MeansOfTransport1)
locationOfGoods
string
locationOfGoodsTerminalCode
string
locationOfGoodsDescription
string
placeOfLoading
string
locationOfGoodsType
string
Enum: "A" "B" "C" "D"
containerIndicator
boolean
customsOfficeOfExit
string
customsOfficeOfEntry
string
customsOfficeOfDeparture
string
customsOfficeOfArrival
string
customsOfficeOfControl
string
customsOfficeOfValidation
string
customsOfficeOfDestination
string
customsOfficeOfExport
string
customsOfficeOfPresentation
string
supervisingCustomsOffice
string
customsOfficesOfTransfer
Array of strings
object (Charges)
Array of objects (ItemLine)
deliveryTerm
string
Enum: "EXW" "FCA" "CPT" "CIP" "DAP" "DAT" "DPU" "DDP" "FAS" "FOB" "CFR" "CIF" "DDU" "XXX"
placeOfDeliveryTerm
string
countryOfDeliveryTerm
string

ISO 3166 alpha-2 (2 letter code)

unlocodeOfDeliveryTerm
string
guaranteeType
string
Enum: "1" "2" "3" "4" "5" "7" "8" "9"
releasedTimestamp
required
string <date-time> (OffsetDateTime)
nctsProcedure
string
Enum: "0" "1" "2" "normal_procedure" "simplified_procedure" "normal_procedure_with_adopted_location"
procedure
string
Enum: "00" "01" "07" "10" "11" "21" "22" "23" "31" "40" "42" "43" "44" "45" "46" "48" "51" "53" "54" "61" "63" "71" "76" "77" "78" "95" "96" "B1" "B2" "B3" "B4" "C1" "H1" "H2" "H3" "H4" "H5" "H6" "H7" "I1"
previousProcedure
string
Enum: "00" "01" "07" "10" "11" "21" "22" "23" "31" "40" "42" "43" "44" "45" "46" "48" "51" "53" "54" "61" "63" "71" "76" "77" "78" "95" "96" "B1" "B2" "B3" "B4" "C1" "H1" "H2" "H3" "H4" "H5" "H6" "H7" "I1"
attachedDocuments
Array of strings
Deprecated

Deprecated field, always provided as an empty list. Please use fileReferences to use in combination with get-file to download the files.

natureOfTransactionA
string
Enum: "1" "2" "3" "4" "5" "6" "7" "8" "9"
natureOfTransactionB
string
Enum: "1" "2" "3" "4" "9"
natureOfTransaction
string
Deprecated
fileReferences
Array of strings
documents
Array of strings
Deprecated
Array of objects (GeneratedDocumentDto)

Documents as potentially modified by end-users in the application. They are not included by default.

object

Responses

Request samples

Content type
application/json
[
  • {
    }
]

CHED

Customaite supports Common Health Entry Document (CHED) dossiers via the CHED APIs.

Create dossier

Create a dossier with the provided documents and meta-data. Initial processing is started. It is possible to subscribe to the events when processing is complete via the status update webhooks.

When identifying knownParties, the call will return an error if the party is not known in our system by the externalReference used. If Customaite is configured to use organizational groups to separate data sets, then the label must be provided to correctly identify the known party, otherwise it should be omitted.

Request Body schema: application/json
required
organizationalGroupId
string

The id that corresponds to the group within an organization that will process this assignment/dossier.

externalReference
string
title
required
string\S
chedType
string (ChedType)
Enum: "A" "D" "P" "PP"
Array of objects (Document)
Array of objects (KnownParty)

Responses

Request samples

Content type
application/json
{
  • "organizationalGroupId": "string",
  • "externalReference": "string",
  • "title": "string",
  • "chedType": "A",
  • "documents": [
    ],
  • "knownParties": [
    ]
}

Response samples

Content type
application/json
{
  • "dossierId": "c349d45c-4426-401a-9282-819fbb641b81",
  • "proposalId": "9c0e116a-cd43-4035-9c2d-b9b55ce4f74b"
}

Get CHED dossier

path Parameters
proposalId
required
string <uuid> (UUID) [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-...

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "dossierId": "c349d45c-4426-401a-9282-819fbb641b81",
  • "externalReference": "string",
  • "chedType": "A",
  • "consignor": {
    },
  • "consignee": {
    },
  • "countryOfOrigin": "string",
  • "localReference": "string",
  • "customsDocumentReference": "string",
  • "controlAuthority": {
    },
  • "accompanyingDocuments": [
    ],
  • "priorNotification": {
    },
  • "placeOfDestination": {
    },
  • "dateOfDeparture": "2022-03-10",
  • "timeOfDeparture": "string",
  • "containers": [
    ],
  • "meansOfTransport": [
    ],
  • "countryOfDispatch": "string",
  • "transportCondition": "AMBIENT",
  • "certifiedAsOrFor": "PRODUCTS_FOR_HUMAN_CONSUMPTION",
  • "conformityOfTheGoods": true,
  • "purpose": {
    },
  • "totalNetWeight": {
    },
  • "totalGrossWeight": {
    },
  • "totalGrossVolume": {
    },
  • "totalColli": 0,
  • "lines": [
    ],
  • "fileReferences": [
    ],
  • "documents": [
    ],
  • "documentDetails": [
    ]
}

OpenAPI Documentation

Get openapi specification

Get the latest version of the openAPI specification of this API

Responses