openapi: 3.2.0 info: title: Logistics Cost Management HTTP Invoices API description: Thank you for using our HTTP API documentation. version: '2.0' servers: - url: https://rz3.aeb.de/demo1billing/rest security: - SWAGGER_AUTH_KEY: [] - BASIC_AUTH: [] tags: - name: Invoices description: API for handling external invoices paths: /ExternalInvoice/acknowledgeChangedExternalInvoices: post: tags: - Invoices summary: acknowledgeChangedExternalInvoices description: Acknowledge that changed external invoices were processed and should no longer be returned by getChangedExternalInvoices. operationId: acknowledgeChangedExternalInvoices requestBody: content: application/json: schema: $ref: '#/components/schemas/BAcknowledgeChangedExternalInvoicesRequestDTO' responses: default: description: default response content: application/json: schema: $ref: '#/components/schemas/BAcknowledgeChangedExternalInvoicesResponseDTO' security: - BASIC_AUTH: [] /ExternalInvoice/createExternalInvoices: post: tags: - Invoices summary: createExternalInvoices description: Creates one external invoice for every BExternalInvoiceDTO included in the BCreateExternalInvoicesRequestDTO. operationId: createExternalInvoices requestBody: content: application/json: schema: $ref: '#/components/schemas/BCreateExternalInvoicesRequestDTO' responses: default: description: default response content: application/json: schema: $ref: '#/components/schemas/BCreateExternalInvoicesResponseDTO' security: - BASIC_AUTH: [] /ExternalInvoice/getChangedExternalInvoices: post: tags: - Invoices summary: getChangedExternalInvoices description:
Returns all changed external invoices.
This method should be used together with acknowledgeChangedExternalInvoices.
See also BGetChangedExternalInvoicesResponseDTO#syncId operationId: getChangedExternalInvoices requestBody: content: application/json: schema: $ref: '#/components/schemas/BGetChangedExternalInvoicesRequestDTO' responses: default: description: default response content: application/json: schema: $ref: '#/components/schemas/BGetChangedExternalInvoicesResponseDTO' security: - BASIC_AUTH: [] components: schemas: BCreateExternalInvoicesResponseDTO: type: object properties: hasErrors: type: boolean description:True, if there are any error messages.
An error usually means that the request could not be performed.
Error details are provided in the messages[] array.
example: false hasOnlyRetryableErrors: type: boolean description:True, if there are any error messages.
Error details are provided in the messages[] array.
example: true hasWarnings: type: boolean description:True, if there are any error messages.
Error details are provided in the messages[] array.
example: true messages: type: array description:Error or warning messages at the request level.
There may be additional messages[] arrays at lower data levels as specified in the documentation.
items: $ref: '#/components/schemas/ResponseMessageDTO' clientIdentCode: type: string description: Client ident code, this field includes the same data like the field in the request.length=10
billingSzenarioIdentCode: type: string description: Billing scenario ident code, this field includes the same data like the field in the request.length=50
clientSystemId: type: string description: Id or identification name of the client system, this field includes the same data like the field in the request.length=50
invoicesResults: type: array description: For every invoice in the request there will be one BExternalInvoiceResultDTO in this array, in the same order as in the request. items: $ref: '#/components/schemas/BExternalInvoiceResultDTO' description: Response DTO which contains errors / infos / warnings about data import of external invoices BGetChangedExternalInvoicesRequestDTO: type: object properties: clientSystemId: type: string description: 'Id of the sending client system.
e.g. Installation ID of the sending host or ERP system.
Maximum length: 20
' example: TEST_ID clientIdentCode: type: string description: 'Client identification code.
Maximum length: 10
' example: APITEST userName: type: string description:User who initiated the request from the client system.
If the user is found either in the system's user management or in a connected LDAP directory, the request runs under this user's roles.
If the user is not found, the request is only granted the basic 'I_EVERYONE' role. The user name may be used for logging purposes in this case.
Actual authentication is handled separately via the request's headers, so no password is required in the request's data.
example: API_TEST resultLanguageIsoCodes: type: array description:2-letter ISO codes of the languages in which texts will be returned.
English ('en') and German ('de') are typically supported by default. Other languages may be supported.
Translations will be looked up in the order of the provided language codes. If a translation is not available in one language, the next language is used instead.
example: - en - de items: type: string description:2-letter ISO codes of the languages in which texts will be returned.
English ('en') and German ('de') are typically supported by default. Other languages may be supported.
Translations will be looked up in the order of the provided language codes. If a translation is not available in one language, the next language is used instead.
example: '["en","de"]' description: Request parameter for IExternalInvoiceBF#getChangedExternalInvoices. BAttachmentBytesInfoDTO: type: object properties: bytes: type: string description: A byte stream which is added as new document (attachment) in the documents list of the invoice.True, if there are any error messages.
An error usually means that the request could not be performed.
Error details are provided in the messages[] array.
example: false hasOnlyRetryableErrors: type: boolean description:True, if there are any error messages.
Error details are provided in the messages[] array.
example: true hasWarnings: type: boolean description:True, if there are any error messages.
Error details are provided in the messages[] array.
example: true messages: type: array description:Error or warning messages at the request level.
There may be additional messages[] arrays at lower data levels as specified in the documentation.
items: $ref: '#/components/schemas/ResponseMessageDTO' description: Response for IExternalInvoiceBF#acknowledgeGetChangedExternalInvoices BCreateExternalInvoicesRequestDTO: type: object properties: clientSystemId: type: string description: 'Id of the sending client system.
e.g. Installation ID of the sending host or ERP system.
Maximum length: 20
' example: TEST_ID clientIdentCode: type: string description: 'Client identification code.
Maximum length: 10
' example: APITEST userName: type: string description:User who initiated the request from the client system.
If the user is found either in the system's user management or in a connected LDAP directory, the request runs under this user's roles.
If the user is not found, the request is only granted the basic 'I_EVERYONE' role. The user name may be used for logging purposes in this case.
Actual authentication is handled separately via the request's headers, so no password is required in the request's data.
example: API_TEST resultLanguageIsoCodes: type: array description:2-letter ISO codes of the languages in which texts will be returned.
English ('en') and German ('de') are typically supported by default. Other languages may be supported.
Translations will be looked up in the order of the provided language codes. If a translation is not available in one language, the next language is used instead.
example: - en - de items: type: string description:2-letter ISO codes of the languages in which texts will be returned.
English ('en') and German ('de') are typically supported by default. Other languages may be supported.
Translations will be looked up in the order of the provided language codes. If a translation is not available in one language, the next language is used instead.
example: '["en","de"]' billingScenarioIdentCode: type: string description: Ident code of the billing scenario.length=50
clientSystemUser: $ref: '#/components/schemas/BContactDTO' parms: $ref: '#/components/schemas/BCreateExternalInvoicesParmsDTO' invoices: type: array description: The invoices, included in this request. items: $ref: '#/components/schemas/BExternalInvoiceDTO' description: 'A DTO which contains all data for creating at minimum one external invoice including:String representation of the date/time stamp in the format yyyy-MM-dd HH:mm:ss
Length: 19
' timezone: type: string description: 'Time zone of the time stamp.
Examples of valid time zones: "GMT+01:00" or "GMT-02:00".
Maximum length: 50
' description: Date and zone for Logistics Cost Management. BQuantityDTO: type: object properties: value: multipleOf: 0.001 maximum: 999999999999.999 type: number description: The value of the quantity. unit: maxLength: 10 type: string description: " \t\t\tIdentifier of the quantity unit. Use quantity units known from your AEB application or alternatively domain specific or legacy quantity codes, but not the UNECE code.\n \t\t\tFor UNECE unit codes use the 'uneceUnit' field, if supported.\n\n \t\t\tWeight unit codes:\n \t\t\t* kg - Kilogram\n \t* gr - Gram\n \t* t - Metric ton\n \t* lb - Pound\n \t* oz - Ounce\n\n \tLength unit codes:\n \t* m - Meter\n \t* mm - Milimeter\n \t* cm - Centimeter\n \t* dm - Decimeter\n \t* km - Kilometer\n \t* ft - Foot\n \t* in - Inch\n \t* mi - Mile\n \t* nm - Nanometer\n \t* µm - Micrometer\n\n \tVolume unit codes:\n \t* ccm - Cubic centimeter\n \t* cdm - Cubic decimeter\n \t* m3 - Cubic meter\n \t* ml - Milliliter\n \t* cl - Centiliter\n \t* hl - Hectoliter\n \t* l - Liter\n \t* cuin - Cubic inch\n \t* cuft - Cubic foot\n\n \tQuantity unit codes:\n \t* St - Piece\n \t* Paar - Pair\n\n \tDensity unit codes:\n \t* g/ccm - grams per cubic centimeter\n \t* kg/m3 - kilogram per cubic meter\n\n \tTime unit codes:\n \t* h - Hour\n \t* stu - Hour\n \t* std - Hour\n \t* oph - Operational hour\n \t* s - Second\n \t* min - Minute\n \t* 15m - 15 mins\n \t* d - Day\n \t* tag - Day\n \t* wch - Week\n \t* mon - Month\n \t* jhr - Year\n \t* mis - Millisecond\n \t* ms - Microsecond\n \t* ns - Nanosecond\n \t* ps - Picosecond\n\n \tArea unit codes:\n \t\t\t* qm - Square meter\n \t* qmm - Square millimeter\n \t* qcm - Square centimeter\n \t* qdm - Square decimeter\n" example: kg uneceUnit: maxLength: 3 type: string description: " \t\t\tIdentifier of the quantity unit based on 'Recommendation No. 20 - Units of Measure used in International Trade'.Human readable id which identifies a client organization
length=20
clientUser: $ref: '#/components/schemas/BContactDTO' originCode: type: string description:Origin of invoice (e.g. CSV, Webservice)
length=20
invoiceNumber: type: string description: The number for this invoice.length=50
additionalReferenceNumber1: type: string description: Additional reference number 1.length=50
invoiceDate: $ref: '#/components/schemas/BDateAndZoneDTO' dueDate: $ref: '#/components/schemas/BDateAndZoneDTO' providerCompanyNumber: type: string description: Company number of the provider.length=20
providerContact: $ref: '#/components/schemas/BContactDTO' payerCompanyNumber: type: string description: Company number of the payer.length=20
payerContact: $ref: '#/components/schemas/BContactDTO' currencyIsoCode: type: string description: The three letter ISO code, defined in ISO 1666-2 of the currency of all amounts of money in this invoice.length=3
netPriceValue: type: number description: The net price value of the invoice.length=15, scale=2
grossPriceValue: type: number description: The gross price value of the invoice.length=15, scale=2
vatPriceValue: type: number description: The vat price value of the invoice.length=15, scale=2
attribute: type: string description: Optional ident code, used to determine the settings for this invoice import.length=50
documentText: type: string description: Additional large text of the invoice.length=1000
attachmentFileInfo: $ref: '#/components/schemas/BAttachmentFileInfoDTO' attachmentBytesInfo: $ref: '#/components/schemas/BAttachmentBytesInfoDTO' invoiceUri: type: string description: Resource locator to execute a shell with a (pdf) viewer on the invoice.length=250
invoiceItems: type: array description: The items of this invoice items: $ref: '#/components/schemas/BExternalInvoiceItemDTO' description: An external invoice that contains all prices and invoice items.Id of the sending client system.
e.g. Installation ID of the sending host or ERP system.
Maximum length: 20
' example: TEST_ID clientIdentCode: type: string description: 'Client identification code.
Maximum length: 10
' example: APITEST userName: type: string description:User who initiated the request from the client system.
If the user is found either in the system's user management or in a connected LDAP directory, the request runs under this user's roles.
If the user is not found, the request is only granted the basic 'I_EVERYONE' role. The user name may be used for logging purposes in this case.
Actual authentication is handled separately via the request's headers, so no password is required in the request's data.
example: API_TEST resultLanguageIsoCodes: type: array description:2-letter ISO codes of the languages in which texts will be returned.
English ('en') and German ('de') are typically supported by default. Other languages may be supported.
Translations will be looked up in the order of the provided language codes. If a translation is not available in one language, the next language is used instead.
example: - en - de items: type: string description:2-letter ISO codes of the languages in which texts will be returned.
English ('en') and German ('de') are typically supported by default. Other languages may be supported.
Translations will be looked up in the order of the provided language codes. If a translation is not available in one language, the next language is used instead.
example: '["en","de"]' syncId: maxLength: 20 type: string description:Synchronization ID for acknowledging.
Use the value received in BGetChangedExternalInvoicesResponseDTO#syncId from the previous call to IExternalInvoiceBF#getChangedExternalInvoices.
description: Request parameter for IExternalInvoiceBF#acknowledgeGetChangedExternalInvoices. BExternalInvoiceItemDTO: type: object properties: referenceNumber: type: string description: Main reference number for the invoice itemlength=50
referenceNumberProvider: type: string description: Service provider reference number for the invoice itemlength=50
referenceDate: $ref: '#/components/schemas/BDateAndZoneDTO' netPriceValue: type: number description: The net price value of the item.length=15, scale=2
vatRatePercent: type: number description: The VAT rate in percent of the item.length=15, scale=2
vatPrice: type: number description: The VAT amount of the item.length=15, scale=2
inputPrice: $ref: '#/components/schemas/BAmountOfMoneyDTO' inputCurrencyRate: type: number description: The rate of of the input currency.length=15, scale=8
chargeableWeight: $ref: '#/components/schemas/BQuantityDTO' chargeCode: type: string description: The charge code of the item similar to price typelength=50
documentText: type: string description: Additional large text of the item.length=1000
additionalField1: type: string description: Additional field 1 of the item.length=50
additionalField2: type: string description: Additional field 2 of the item.length=50
additionalField3: type: string description: Additional field 3 of the item.length=50
description: type: string description: Description of the itemlength=250
description: DTO for external invoice items, used to import external invoices BAmountOfMoneyDTO: type: object properties: value: type: number description: The value of the amount of money.length=15, scale=2
currencyIso: type: string description: The three letter ISO code of the currency of the amount of money.length=3
description: An amount of money with a value and an currency ISO code. BExternalInvoiceSyncDTO: type: object properties: isDeleted: type: boolean description:Indicates whether the invoice was deleted.
If true, only invoiceNumber and provider will be filled. invoiceNumber: maxLength: 50 type: string description: Number of the invoice. origin: maxLength: 6 type: string description: 'Origin type of the invoice.
Possible values:Status code of the invoice.
Possible values:True, if there are any error messages.
An error usually means that the request could not be performed.
Error details are provided in the messages[] array.
example: false hasOnlyRetryableErrors: type: boolean description:True, if there are any error messages.
Error details are provided in the messages[] array.
example: true hasWarnings: type: boolean description:True, if there are any error messages.
Error details are provided in the messages[] array.
example: true messages: type: array description:Error or warning messages at the request level.
There may be additional messages[] arrays at lower data levels as specified in the documentation.
items: $ref: '#/components/schemas/ResponseMessageDTO' invoices: type: array description: Changed invoices. items: $ref: '#/components/schemas/BExternalInvoiceSyncDTO' syncId: maxLength: 20 type: string description: Synchronization ID for acknowledging.Use this syncId in subsequent calls to ExternalInvoiceBF#acknowledgeChangedExternalInvoices to acknowledge the processing of the changed invoices.
This syncId may be null if no invoices were found to synchronize. In this case no call to IExternalInvoiceBF#acknowledgeChangedExternalInvoices is necessary. isComplete: type: boolean description:
True, if the synchronization is complete and currently no further changed invoices are available.
False if not.
In this case, after acknowledging with IExternalInvoiceBF#acknowledgeChangedExternalInvoices, an immediate second call to IExternalInvoiceBF#getChangedExternalInvoices would be sensible.
Status code of the settlement.
Possible values:length=20
name: type: string description: Name of the company (first address line)length=40
name2: type: string description: Address name line 2length=40
name3: type: string description: Address name line 3length=40
name4: type: string description: Address name line 4length=40
street: type: string description: Street (line 1) of the address.length=40
street2: type: string description: Street (line 2) of the address.length=40
postcode: type: string description: Postcode of the street address.length=10
city: type: string description: City of the address.length=40
district: type: string description: District (city line 2) of the address.length=40
countryISOCode: type: string description: Country of addresslength=2
county: type: string description: County of the addresslength=40
poBox: type: string description: PO-Box.length=10
postcodePOBox: type: string description: Postcode of the poBox address.length=10
cityPOBox: type: string description: City of the po-box address.length=40
emailAddress: type: string description: Email address of the address.length=256
phone: type: string description: Phone number of receptionlength=20
fax: type: string description: Fax number of receptionlength=20
description: A complete address of a company for Logistics Cost Management. BExternalInvoiceResultDTO: type: object properties: hasErrors: type: boolean description: True, if there are any error messages. If an error has occured the messages contain more details about the errors. hasWarnings: type: boolean description: True, if there are any warning messages. messages: type: array description: Messages for the whole request, e.g. for errors or warnings.length=50
description: Result DTO for external invoice TextInLanguageDTO: type: object properties: languageISOCode: type: string description:2-letter ISO code of the language.
length=2
example: en text: type: string description: The translated text. example: Some free-form text description: A translated text in one of the specified languages. BContactDTO: type: object properties: name: type: string description: 'Name of contact. > `length=80`' phone: type: string description: 'Phone number. > `length=20`' fax: type: string description: 'Fax number. > `length=20`' email: type: string description: 'Email address. > `length=256`' description: Contains data for contacting a person for Logistics Cost Management. ResponseMessageDTO: type: object properties: messageType: type: string description: 'Message type
If not stated otherwise, the possible types are:
Maximum length: 50
' example: WARNING messageIdentCode: type: string description: 'Optional identification code for further classification of the message type.
Maximum length: 50
' example: '5627' messageTexts: type: array description:Detailed message texts in the requested languages.
items: $ref: '#/components/schemas/TextInLanguageDTO' indentationLevel: type: integer description:The indentation level of the message.
'0' indicates a top level message.
format: int32 example: 0 description: Result messages like errors or warnings. securitySchemes: SWAGGER_AUTH_KEY: type: apiKey name: X-XNSG_WEB_TOKEN in: header BASIC_AUTH: type: http scheme: basic x-proxy-enabled: false