AEB Carrier Select API
Carrier selection and routing. Creates routing tasks for a shipment and returns the carrier, service and route determined from the customer's routing rules, rates and constraints.
Carrier selection and routing. Creates routing tasks for a shipment and returns the carrier, service and route determined from the customer's routing rules, rates and constraints.
{
"openapi" : "3.0.1",
"info" : {
"title" : "Carrier Select HTTP API",
"description" : "Thank you for using our HTTP API documentation.",
"version" : "1.0"
},
"servers" : [ {
"url" : "https://rz3.aeb.de/demo1routing/rest"
} ],
"security" : [ {
"SWAGGER_AUTH_KEY" : [ ]
}, {
"BASIC_AUTH" : [ ]
} ],
"tags" : [ {
"name" : "FoundationAFBean",
"description" : "Business facade for the XNSGFoundation UI API"
}, {
"name" : "Logon",
"description" : "Authentication handler for the XNSGFoundation"
}, {
"name" : "DataFeedBFBean",
"description" : "DataFeedBFBean"
}, {
"name" : "ExternalTelemetryBFBean",
"description" : "API for sending telemetry data from a third party system."
}, {
"name" : "Companies",
"description" : "Rest API for companies"
}, {
"name" : "WorkstationServiceAgent",
"description" : "Connection handler for the Workstation Service Agent"
}, {
"name" : "Carrier",
"description" : "Rest API for carriers"
}, {
"name" : "Routing",
"description" : "API for the handling of routing tasks"
} ],
"paths" : {
"/FoundationAFBean/releaseApplicationFacade" : {
"post" : {
"tags" : [ "FoundationAFBean" ],
"description" : "Release a UI API which is no longer needed.<br> This call will save resources in the server, because the server must not wait for the timeout of the UI API session but can release it earlier.<br> The method should only be called if it is definitively known, that no access to the UI API by the user is possible any more, e.g. because the surrounding client GUI window was closed.<br> The RFC name of this function is \\\"/AEB/XNSG_IF_RELAF\\\".",
"operationId" : "releaseApplicationFacade",
"parameters" : [ {
"name" : "sessionid",
"in" : "query",
"description" : "sessionid The sessionid returned by any UI API method, e.g. workplace @throws RemoteException",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "No result.",
"content" : {
"application/json" : { }
}
}
}
}
},
"/FoundationAFBean/workplace" : {
"post" : {
"tags" : [ "FoundationAFBean" ],
"description" : "Creates an UI API to be able to display the workplace.<br> The difference of this method compared to the the method \\\"IFoundationBF.getWorkplaceURL()\\\" is the fact, that no logon mask will be dipsplayed before entering the workplace<br> The RFC name of this function is \\\"/AEB/XNSG_IF_WPL\\\".",
"operationId" : "workplace",
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ApplicationFacadeParmsDTO"
}
}
}
},
"responses" : {
"200" : {
"description" : "The operation result.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ApplicationFacadeDTO"
}
}
}
}
}
}
},
"/logon/authToken" : {
"get" : {
"tags" : [ "Logon" ],
"description" : "Logon from the \"Authorization\" header (e.g. type \"Basic\"). The generated authentication token can be used in subsequent calls in the \"Authorization\" header, type \"Bearer\".",
"operationId" : "authToken",
"responses" : {
"200" : {
"description" : "Returns the authentication token.",
"content" : {
"text/plain" : {
"schema" : {
"type" : "string"
}
}
}
},
"401" : {
"description" : "Returns the cause why authentication has failed.",
"content" : {
"text/plain" : {
"schema" : {
"type" : "string"
}
}
}
}
}
}
},
"/logon/user" : {
"post" : {
"tags" : [ "Logon" ],
"description" : "Logon with classical procedure: user, client and password.",
"operationId" : "logonUser",
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/LogonArgument"
}
}
}
},
"responses" : {
"200" : {
"description" : "Returns information on logon process, including roles that have been granted to the user and a login token, or an error message when auth data is not correct.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/LogonResponse"
}
}
}
}
}
}
},
"/DataFeedBFBean/acknowledgePublishedDataFeedParts" : {
"post" : {
"tags" : [ "DataFeedBFBean" ],
"description" : "Acknowledge the processed published data feed parts retrieved with getPublishedDataFeedParts containing the synchronization ID up to which all parts are acknowledged.",
"operationId" : "acknowledgePublishedDataFeedParts",
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/AcknowledgePublishedDataFeedPartsRequestDTO"
}
}
}
},
"responses" : {
"200" : {
"description" : "The operation result.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/AcknowledgePublishedDataFeedPartsResponseDTO"
}
}
}
}
}
}
},
"/DataFeedBFBean/dataFeedParts/{client}/{id}" : {
"get" : {
"tags" : [ "DataFeedBFBean" ],
"description" : "Retrieve the data feed part content.",
"operationId" : "getDataFeedPartContentForRest",
"parameters" : [ {
"name" : "client",
"in" : "path",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "id",
"in" : "path",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "The content of the data feed part.",
"content" : {
"application/octet-stream" : { }
}
}
}
}
},
"/DataFeedBFBean/getPublishedDataFeedParts" : {
"post" : {
"tags" : [ "DataFeedBFBean" ],
"description" : "Poll data about the next 10 published data feed parts. This data contains an id, which can be used to download the content of a part. To download the content, use the endpoint /DataFeedBFBean/dataFeedParts/{client}/{id} ",
"operationId" : "getPublishedDataFeedParts",
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/GetPublishedDataFeedPartsRequestDTO"
}
}
}
},
"responses" : {
"200" : {
"description" : "The operation result.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/GetPublishedDataFeedPartsResponseDTO"
}
}
}
}
}
}
},
"/ExternalTelemetryBFBean/getStatus" : {
"post" : {
"tags" : [ "ExternalTelemetryBFBean" ],
"description" : "Returns the current status of the telemetry system.<br> The external system id must be sent with the request.",
"operationId" : "getTelemetryStatus",
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ExternalTMIdentificationRequestDTO"
}
}
}
},
"responses" : {
"200" : {
"description" : "The operation result.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ExternalTMStatusResponseDTO"
}
}
}
}
}
}
},
"/ExternalTelemetryBFBean/status" : {
"get" : {
"tags" : [ "ExternalTelemetryBFBean" ],
"description" : "Returns the current status of the telemetry system.<br> The external system id must be sent with the request.",
"operationId" : "getTelemetryStatusByParams",
"parameters" : [ {
"name" : "externalSystemId",
"in" : "query",
"description" : "externalSystemId, the id of the calling system, mandatory",
"schema" : {
"type" : "string"
}
}, {
"name" : "reportClientIdentCode",
"in" : "query",
"description" : "reportClientIdentCode, the identCode of the client to call the status for",
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "The operation result.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ExternalTMStatusResponseDTO"
}
}
}
}
}
}
},
"/ExternalTelemetryBFBean/telemetryReport" : {
"post" : {
"tags" : [ "ExternalTelemetryBFBean" ],
"description" : "Submits telemetry data for a new telemetry report.<br> The external system id must be sent with the request, a client IdentCode only if client dependent.",
"operationId" : "sendTelemetryReport",
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ExternalTMReportRequestDTO"
}
}
}
},
"responses" : {
"200" : {
"description" : "The operation result.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ExternalTMResponseDTO"
}
}
}
}
}
}
},
"/companies/{id}" : {
"get" : {
"tags" : [ "Companies" ],
"description" : "Returns the company with the requested ID (company number). In some cases the ID (company number) is <b>not unique</b>. In this case an error is returned.",
"operationId" : "getCompany",
"parameters" : [ {
"name" : "id",
"in" : "path",
"description" : "The requested ID (company number).",
"required" : true,
"schema" : {
"type" : "string"
},
"example" : 12345
} ],
"responses" : {
"200" : {
"description" : "Successful call",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Company"
},
"examples" : {
"Successful call" : {
"description" : "Successful call",
"value" : {
"companyNumber" : "12345",
"name" : "AEB SE",
"name2" : "Name 2",
"name3" : "Name 3",
"name4" : "Name 4",
"street" : "Sigmaringerstr. 109",
"street2" : "Street 2",
"postcode" : "70567",
"city" : "Stuttgart",
"district" : "Möhringen",
"countryIsoCode" : "DE",
"county" : "BW",
"poBox" : "12345",
"postcodePoBox" : "70567",
"cityPoBox" : "Stuttgart",
"emailAddress" : "max.mustermann@aeb.com",
"phoneNumber" : "0711 12345",
"faxNumber" : "0711 12345",
"vatNumber" : "DE123456789",
"isEnabled" : true,
"homepage" : "www.aeb.com",
"remark" : "Logistics company",
"roles" : [ {
"identCode" : "DLSHIPPT",
"description" : "Versandstelle"
} ]
}
}
}
}
}
},
"400" : {
"description" : "Either the requested company number is not unique or something went wrong during the validation.",
"content" : {
"application/problem+json" : {
"examples" : {
"Company number is not unique" : {
"description" : "Company number is not unique",
"value" : {
"type" : "company/company-number-not-unique",
"status" : 400,
"title" : "Company not unique",
"detail" : "Es gibt mehrere Firmen mit der gleichen Firmennummer",
"timestamp" : "2024-04-24T13:34:01.051128600Z",
"errors" : [ ],
"companyNumber" : "12345"
}
}
}
}
}
},
"404" : {
"description" : "Requested company not found",
"content" : {
"application/json" : {
"examples" : {
"Requested company not found" : {
"description" : "Requested company not found",
"value" : {
"errorMessage" : "HTTP 404 Not Found"
}
}
}
}
}
}
}
},
"put" : {
"tags" : [ "Companies" ],
"description" : "Create or update a company with the specified ID (company number). If the company with the given ID does not exist, a new company is created. If the company exist, the existing company is fully updated. Not filled fields in the request are treated thereby as empty data fields and lead to empty fields in an already existing company. It is therefore recommended to use the GET/companies to check whether a company with a specific ID exists or not BEFORE you use PUT/companies/{id}.",
"operationId" : "createOrUpdateCompany",
"parameters" : [ {
"name" : "id",
"in" : "path",
"description" : "The requested ID (company number).",
"required" : true,
"schema" : {
"type" : "string"
},
"example" : 12345
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Company"
}
}
}
},
"responses" : {
"200" : {
"description" : "Successful call",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Company"
},
"examples" : {
"Successful call" : {
"description" : "Successful call",
"value" : {
"companyNumber" : "12345",
"name" : "AEB SE",
"name2" : "Name 2",
"name3" : "Name 3",
"name4" : "Name 4",
"street" : "Sigmaringerstr. 109",
"street2" : "Street 2",
"postcode" : "70567",
"city" : "Stuttgart",
"district" : "Möhringen",
"countryIsoCode" : "DE",
"county" : "BW",
"poBox" : "12345",
"postcodePoBox" : "70567",
"cityPoBox" : "Stuttgart",
"emailAddress" : "max.mustermann@aeb.com",
"phoneNumber" : "0711 12345",
"faxNumber" : "0711 12345",
"vatNumber" : "DE123456789",
"isEnabled" : true,
"homepage" : "www.aeb.com",
"remark" : "Logistics company",
"roles" : [ {
"identCode" : "DLSHIPPT",
"description" : "Versandstelle"
} ]
}
}
}
}
}
},
"400" : {
"description" : "Either the requested company number is not unique or something went wrong during the validation.",
"content" : {
"application/problem+json" : {
"examples" : {
"Company number is not unique" : {
"description" : "Company number is not unique",
"value" : {
"type" : "company/company-number-not-unique",
"status" : 400,
"title" : "Company not unique",
"detail" : "Es gibt mehrere Firmen mit der gleichen Firmennummer",
"timestamp" : "2024-04-24T13:34:01.051128600Z",
"errors" : [ ],
"companyNumber" : "12345"
}
},
"Validation error" : {
"description" : "Validation error",
"value" : {
"type" : "about:blank",
"status" : 400,
"title" : "Invalid data",
"timestamp" : "2024-04-24T13:35:11.511687Z",
"errors" : [ {
"code" : "INVALID_VALUE",
"message" : "darf nicht leer sein",
"field" : "name",
"value" : ""
}, {
"code" : "INVALID_VALUE",
"message" : "Größe muss zwischen 1 und 40 sein",
"field" : "name",
"value" : ""
} ]
}
}
}
}
}
},
"404" : {
"description" : "Requested company not found",
"content" : {
"application/json" : {
"examples" : {
"Requested company not found" : {
"description" : "Requested company not found",
"value" : {
"errorMessage" : "HTTP 404 Not Found"
}
}
}
}
}
},
"409" : {
"description" : "Locking error",
"content" : {
"application/problem+json" : {
"examples" : {
"Requested company cannot be locked" : {
"description" : "Requested company cannot be locked",
"value" : {
"type" : "about:blank",
"status" : 409,
"title" : "Locked",
"detail" : "Locking für Firma - [AEB SE] fehlgeschlagen.",
"timestamp" : "2024-04-24T13:43:17.602220800Z",
"errors" : [ ]
}
}
}
}
}
}
}
},
"delete" : {
"tags" : [ "Companies" ],
"description" : "Delete the company with the specified ID (company number). The ID is in some AEB services <b>not unique</b>, in this case a conflict (409) is returned.",
"operationId" : "deleteCompany",
"parameters" : [ {
"name" : "id",
"in" : "path",
"description" : "The requested ID (company number).",
"required" : true,
"schema" : {
"type" : "string"
},
"example" : 12345
} ],
"responses" : {
"200" : {
"description" : "Successful call",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Company"
},
"examples" : {
"Successful call" : {
"description" : "Successful call",
"value" : {
"companyNumber" : "12345",
"name" : "AEB SE",
"name2" : "Name 2",
"name3" : "Name 3",
"name4" : "Name 4",
"street" : "Sigmaringerstr. 109",
"street2" : "Street 2",
"postcode" : "70567",
"city" : "Stuttgart",
"district" : "Möhringen",
"countryIsoCode" : "DE",
"county" : "BW",
"poBox" : "12345",
"postcodePoBox" : "70567",
"cityPoBox" : "Stuttgart",
"emailAddress" : "max.mustermann@aeb.com",
"phoneNumber" : "0711 12345",
"faxNumber" : "0711 12345",
"vatNumber" : "DE123456789",
"isEnabled" : true,
"homepage" : "www.aeb.com",
"remark" : "Logistics company",
"roles" : [ {
"identCode" : "DLSHIPPT",
"description" : "Versandstelle"
} ]
}
}
}
}
}
},
"400" : {
"description" : "Either the requested company number is not unique or something went wrong during the validation.",
"content" : {
"application/problem+json" : {
"examples" : {
"Company number is not unique" : {
"description" : "Company number is not unique",
"value" : {
"type" : "company/company-number-not-unique",
"status" : 400,
"title" : "Company not unique",
"detail" : "Es gibt mehrere Firmen mit der gleichen Firmennummer",
"timestamp" : "2024-04-24T13:34:01.051128600Z",
"errors" : [ ],
"companyNumber" : "12345"
}
}
}
}
}
},
"404" : {
"description" : "Requested company not found",
"content" : {
"application/json" : {
"examples" : {
"Requested company not found" : {
"description" : "Requested company not found",
"value" : {
"errorMessage" : "HTTP 404 Not Found"
}
}
}
}
}
},
"409" : {
"description" : "Locking error",
"content" : {
"application/problem+json" : {
"examples" : {
"Requested company cannot be locked" : {
"description" : "Requested company cannot be locked",
"value" : {
"type" : "about:blank",
"status" : 409,
"title" : "Locked",
"detail" : "Locking für Firma - [AEB SE] fehlgeschlagen.",
"timestamp" : "2024-04-24T13:43:17.602220800Z",
"errors" : [ ]
}
}
}
}
}
}
}
}
},
"/companies" : {
"get" : {
"tags" : [ "Companies" ],
"description" : "Returns all companies matching the given filter criteria. In case no company matches the given filter criteria an empty companies collection is returned. All filter fields are case insensitive. If the filter field supports place holders ('*' or '%'), you get all companies back beginning with the value of the filter. Means a place holder at the end of the filter value is added automatically.",
"operationId" : "searchCompanies",
"parameters" : [ {
"name" : "is_enabled",
"in" : "query",
"description" : "Use this filter field with value 'true' if you want to get enabled companies only.",
"schema" : {
"type" : "boolean"
},
"example" : false
}, {
"name" : "roles",
"in" : "query",
"description" : "Filters companies by company roles. Use the API method GET/company-roles to retrieve all company roles. When searching for more than one role, all companies including one of the given roles are returned.<br>This filter field is case insensitive.<br>Place holders are not supported.",
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
}, {
"name" : "company_number_like",
"in" : "query",
"description" : "Filters companies by company number.<br>In the example, all companies whose company number begins with '123' are returned.<br>This filter field is case insensitive.<br>Place holders are supported.<br>The company number is in some AEB services <b>not unique</b>, so the result may return more than one company with the same company number.",
"schema" : {
"type" : "string"
},
"example" : 123
}, {
"name" : "name_like",
"in" : "query",
"description" : "Filters companies by name.<br>In the example, all companies whose name begins with 'AEB' are returned.<br>This filter field is case insensitive.<br>Place holders are supported.",
"schema" : {
"type" : "string"
},
"example" : "AEB"
}, {
"name" : "city_like",
"in" : "query",
"description" : "Filters companies by city.<br>In the example, all companies whose city includes 'ttgart' are returned.<br>This filter field is case insensitive.<br>Place holders are supported.",
"schema" : {
"type" : "string"
},
"example" : "*ttgart*"
}, {
"name" : "postcode_like",
"in" : "query",
"description" : "Filters companies by postcode.<br>In the example, all companies whose postcode starts with '70' are returned.<br>This filter field is case insensitive (relevant for alphanumeric postcodes, like in GB).<br>Place holders are supported.",
"schema" : {
"type" : "string"
},
"example" : "70*"
}, {
"name" : "country_iso_code",
"in" : "query",
"description" : "Filters companies by the 2 digit country ISO code according to ISO 3166. Examples for valid codes: 'US' for USA, 'DE' for Germany, 'IT' for Italy, etc.<br>In the example, all German companies are returned.<br>This filter field is case insensitive.<br>Place holders are not supported.",
"schema" : {
"maxLength" : 2,
"minLength" : 2,
"type" : "string"
},
"example" : "DE"
}, {
"name" : "offset",
"in" : "query",
"description" : "The starting point from which to return elements of the ordered list.<br><i>Minimum : 0</i>",
"schema" : {
"minimum" : 0,
"type" : "integer",
"format" : "int32",
"default" : 0
},
"example" : 0
}, {
"name" : "limit",
"in" : "query",
"description" : "The maximum number of elements to be returned from the ordered list.<br><i>Minimum : 1</i><br><i>Maximum : 1000</i>",
"schema" : {
"maximum" : 1000,
"minimum" : 1,
"type" : "integer",
"format" : "int32",
"default" : 1000
},
"example" : 200
} ],
"responses" : {
"200" : {
"description" : "Successful call",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CompanyPage"
},
"examples" : {
"List with two companies" : {
"description" : "List with two companies",
"value" : {
"totalElements" : 42,
"content" : [ {
"companyNumber" : "1111",
"name" : "AEB GmbH",
"name2" : "Advanced Global Trade Solutions",
"street" : "Julius-Hölder-Straße 39",
"postcode" : "70597",
"city" : "Stuttgart",
"countryIsoCode" : "DE",
"emailAddress" : "info@aeb.de",
"phoneNumber" : "+49/711/7 28 42-300",
"faxNumber" : "+49/711/7 28 42-333",
"vatNumber" : "12345",
"isEnabled" : true,
"homepage" : "http://www.aeb.de",
"roles" : [ {
"identCode" : "DLSHIPPT",
"description" : "Versandstelle"
} ]
}, {
"companyNumber" : "2222",
"name" : "AEB SE",
"name2" : "Name 2",
"name3" : "Name 3",
"name4" : "Name 4",
"street" : "Sigmaringerstr. 109",
"street2" : "Street 2",
"postcode" : "70567",
"city" : "Stuttgart",
"district" : "Möhringen",
"countryIsoCode" : "DE",
"county" : "BW",
"poBox" : "12345",
"postcodePoBox" : "70567",
"cityPoBox" : "Stuttgart",
"emailAddress" : "max.mustermann@aeb.com",
"phoneNumber" : "0711 12345",
"faxNumber" : "0711 12345",
"vatNumber" : "DE123456789",
"isEnabled" : true,
"homepage" : "www.aeb.com",
"remark" : "Logistics company",
"roles" : [ ]
} ]
}
},
"Empty list" : {
"description" : "Empty list",
"value" : {
"totalElements" : 42,
"content" : [ ]
}
}
}
}
}
},
"400" : {
"description" : "Either the requested company role is unknown or something went wrong during the validation.",
"content" : {
"application/problem+json" : {
"examples" : {
"Unknown company role" : {
"description" : "Filtered company role does not exist",
"value" : {
"type" : "about:blank",
"status" : 400,
# --- truncated at 32 KB (274 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aeb/refs/heads/main/openapi/aeb-carrier-select-openapi.json