Invoice Specification
An Invoice document is used to provide all billing information related to an order that has been fulfilled. It will contain all line item pricing, payment terms and miscellaneous charges.
🗒️Note:
If you will not be integrating the invoice document, but it is required, Logicbroker offers an Auto-Invoice option to create invoices automatically off of the shipment document. The ShipmentNumber will be used as the Invoice number and all pricing information will automatically persist from the original order. To learn more contact us.
When receiving an invoice against your order, it will affect the status of that order. If all quantities on the order are invoiced the status of the order will automatically update to Complete (1000). It is important that the PartnerPO and all SupplierSKU data on the invoice matches the order otherwise the invoice will be non-compliant and will not transmit.
The structure shown below in Field Descriptions follows Logicbroker's standard schema across all document formats; this includes JSON, EDI, XML, CSV, and Portal. The EDI segments are listed next to each field to indicate what field maps to the standard 810 EDI from the Logicbroker schema.
✨Tip:
If you are integrating via API and need the full model schema see our API Console.
Details and Sample Files
Click the link above to download the samples. All fields listed below reflect the model schema for the Logicbroker standard JSON. For example the snippet below would match the field name ShipToAddress.CompanyName in the Field Descriptions below.
"ShipToAddress": {
"CompanyName": "Warehouse 123"
}
If there is a field that is missing in the structure you can add custom fields as an extended attribute on the header level or item level; see example below. Note when a custom field is added, you will need to notify Logicbroker to ensure it is mapped to your partners.
"ExtendedAttributes": [
{
"Name": "EXAMPLE",
"Value": "Portal"
},
{
"Name": "EXAMPLE2",
"Value": "New Value"
}
]
The value in the field descriptions documentation will show as ExtendedAttribute.EXAMPLE and for line items InvoiceLine.ExtendedAttribute.EXAMPLE.
🚚For Suppliers:
To learn more about how to integrate sending invoices using the JSON format see this link.
👥For Retailers:
To learn more about how to integrate receiving invoices from your partners using the JSON format see this link.
Click the link above to download the samples and XSD. All fields listed below reflect the model schema for the Logicbroker standard XML. For example the snippet below would match the field name ShipToAddress.CompanyName in the Field Descriptions below.
<ShipToAddress>
<CompanyName>Merchant Co</CompanyName>
</ShipToAddress>
If there is a field that is missing in the structure you can add custom fields as an extended attribute on the header level or item level; see example below. Note when a custom field is added, you will need to notify Logicbroker to ensure it is mapped to your partners.
<ExtendedAttributes>
<ExtendedAttribute>
<Name>Example</Name>
<Value>Portal</Value>
</ExtendedAttribute>
<ExtendedAttribute>
<Name>Example2</Name>
<Value>NewValue</Value>
</ExtendedAttribute>
</ExtendedAttributes>
The value in the field descriptions documentation will show as ExtendedAttribute.EXAMPLE and for line items InvoiceLine.ExtendedAttribute.EXAMPLE.
🚚For Suppliers:
To learn more about how to integrate sending invoices using the XML format see this link.
👥For Retailers:
To learn more about how to integrate receiving invoices from your partners using the XML format see this link.
Click the link above to download the standard 810 specification and samples. All fields listed below reflect the model schema for the Logicbroker standard XML. For example the snippet below would match the EDI field name N102 (ST) - ShipToAddress.CompanyName in the Field Descriptions below. The value in the parenthesis (ST) will represent the qualifier in the previous element; in this case its N101.
N1*ST*Merchant Co~
For EDI fields in a loop, such as line items the will be identified by being separated with a ":" for example IT1:PID05 (08) would be represented below. "IT1:" indicates the element is under the IT1 loop. PID05 identifies the element value and again "(08)" within the parenthesis represents the related qualifier of "08" present in PID02.
IT1*1*14*EA*9*PE*VN*1234567*IN*V-123123*UP*0123456789012
PID*F*08***Pants~
IT1*2*3*EA*4*PE*VN*1234568*IN*V-123124*UP*0123456789013
PID*F*08***Tee Shirt~
🚚For Suppliers:
To learn more about how to integrate sending invoices using the EDI format see this link.
👥For Retailers:
To learn more about how to integrate receiving invoices from your partners using the EDI format see this link.
Click the link above to download the CSV samples. Note by default if you are retrieving shipments from Logicbroker's SFTP/FTP a simplified version will be provided, the sample will be annotated with EXPORT.
To receive the format as listed below in the Field Descriptions, please contact support@logicbroker.com. All fields listed below reflect the model schema for the Logicbroker standard API format. For example the snippet below would match the field name ShipToAddress.CompanyName in the Field Descriptions below.
Id,ShipToAddress.CompanyName
221804,Merchant Co
If there is a field that is missing in the structure you can add custom fields as an extended attribute on the header level or item level; see example below. Note when a custom field is added, you will need to notify Logicbroker to ensure it is mapped to your partners.
Id,ExtendedAttribute[Name=EXAMPLE].Value
221804,Portal
The value in the field descriptions documentation will show as ExtendedAttribute.EXAMPLE and for line items InvoiceLine.ExtendedAttributes.EXAMPLE
✨Tip:
When submitting or receiving a CSV invoice, each row will be split out for each line item. If you are submitting an invoice to Logicbroker for creation, the line items will get consolidated into one invoice if they share the same InvoiceNumber and PartnerPO.
🚚For Suppliers:
To learn more about how to integrate sending invoices using the CSV format see this link.
👥For Retailers:
To learn more about how to integrate receiving invoices from your partners using the CSV format see this link.
🗒️Note:
Logicbroker has the ability to create custom specifications for any format and file type. Please contact us and attach any samples of your custom format and we can quickly and easily implement it.
Handling fees and payment terms
If your agreement with the retailer allows a handling fee, add it to the invoice as a header-level charge. Some retailers call it a shipping or handling charge. The amount must match your retailer agreement. If you do not charge a handling fee, leave the field empty or enter 0.
- Portal. Enter the fee in the Shipping/Freight field in the Invoice Totals section when you create the invoice. The portal adds it to the Invoice Total on the screen. Shipping/Freight and Dropship Fee are separate fields. Use Shipping/Freight for a handling fee unless your retailer's document standards say otherwise.
- API, XML and CSV. Send the fee in HandlingAmount and include it in InvoiceTotal.
- EDI 810. Send the fee in a header-level SAC segment. Put C (charge) in SAC01 and the charge code in SAC02. Put the amount in SAC05 with no decimal point, for example 500 for $5.00. Logicbroker's standard code is G821. Some retailers require a different code, such as D500 (Handling). Use the code in your retailer's 810 specification. Include the fee in the invoice total in TDS01.
If you charge the same flat handling fee on every invoice, contact support@logicbroker.com to ask whether Logicbroker can add it to your invoices automatically.
Payment terms, such as net days and discount terms, come from your agreement with the retailer. If you do not send some payment term fields, Logicbroker takes them from the original order. The PaymentTerm fields below show which ones. In the portal, Logicbroker fills in Payment Terms in the General Information section, and you cannot edit it. If the terms do not match your agreement, confirm the correct terms with your retailer. Then update your default terms in Settings > Document Settings > Payment terms, or contact support@logicbroker.com.
My handling fee is missing from the invoice
Who this applies to: suppliers who send invoices in the portal, by EDI 810, or through the API, XML or CSV. Whether you may charge a handling fee depends on your agreement with each retailer.
What it means: Logicbroker adds a handling fee only when the invoice carries it in the handling field for your format. A fee entered in another field, or not sent at all, does not reach the retailer as a handling fee.
What to check:
- Open the invoice and look at the Invoice Totals section. Check whether the fee is in Shipping/Freight, in Dropship Fee, or in neither.
- If you integrate, check that your system sends the fee in HandlingAmount (API, XML or CSV) or in a header-level SAC charge (EDI 810), and that the invoice total includes it.
- For EDI, check that the SAC02 charge code matches the code in your retailer's 810 specification.
The fix:
- Portal invoice you have not submitted yet. Enter the fee in Shipping/Freight. The portal adds it to Invoice Total on the screen. For the full steps, see Create an Invoice.
- Integrated invoices. Update your mapping so that future invoices send the fee as described in Handling fees and payment terms.
- Invoice you already submitted. A submitted invoice opens read-only in the portal, so you cannot add the fee to it. Contact your retailer and Support about how to correct it.
- Same fee on every invoice. Contact Support to ask whether Logicbroker can add it to your invoices automatically.
How to check it worked: open the new invoice in the portal. Shipping/Freight shows the fee, and Invoice Total includes it.
When to contact Support: if the fee is in the right field and the retailer still reports it missing. Include your company name, the retailer, the PO number, the invoice number, the fee amount and how you sent the invoice.
Which fee field should I use?
Who this applies to: suppliers creating invoices in the portal or sending them through an integration.
What it means: the invoice has two separate fee fields. Shipping/Freight (HandlingAmount) holds a shipping or handling charge. Dropship Fee (DropshipAmount) holds a dropship fee. The portal adds both to Invoice Total.
What to do:
- Check your retailer's document standards or your agreement for the name of the fee.
- If the retailer calls it a handling, shipping or freight charge, use Shipping/Freight or HandlingAmount.
- Use Dropship Fee only if your retailer's document standards ask for a dropship fee.
- If the standards do not say which field to use, contact Support before you send the invoice.
My payment terms are wrong
Who this applies to: suppliers on any connection type. Payment terms are agreed between you and each retailer.
What it means: when your invoice does not carry payment terms, Logicbroker takes them from the original order. In the portal, Payment Terms in the General Information section is filled in for you, and you cannot edit it.
What to check:
- Compare the terms on the invoice with the terms on the original order.
- Compare both with your written agreement with the retailer, for example net days, discount percent and discount days.
- If you integrate, check whether your system sends the PaymentTerm fields listed below, and what values it sends.
The fix:
- Your integration sends the wrong values. Correct your mapping for the PaymentTerm fields.
- The terms come from the order or your account setup. Confirm the correct terms with your retailer in writing. Then go to Settings > Document Settings > Payment terms and update your default terms or the terms for that retailer. You need permission to manage settings. These terms apply only to invoices that don't carry their own terms.
How to check it worked: the next invoice you create shows the agreed terms in Payment Terms.
When to contact Support: include your company name, the retailer, a PO number and invoice number that show the wrong terms, and the terms the retailer confirmed.
My invoice failed
If your invoice shows Failed, for example with "Cannot Invoice Unshipped Items", see the invoice errors in the Failed Document Summary. That article explains each error and how to retry or correct the invoice.
Field Descriptions
| EDI Field | Logicbroker Field | Description | Requirement |
|---|---|---|---|
|
N/A |
Identifier.SourceKey |
Identifier from the source system. When you create an invoice, Logicbroker sets this to the InvoiceNumber. |
Read Only |
|
N/A |
Identifier.LogicbrokerKey |
ID to identify the document in the logicbroker system. |
Read Only |
|
N/A |
Identifier.LinkKey |
Used to link the document to the original source document. For example, It is best to supply the Order's linkkey when posting a shipment. This will make sure the order shipped quanitites are updated on the original order and all statuses are updated appropriateley. |
Optional |
|
N/A |
SenderCompanyId |
Logicbroker Internal Company ID to specify what company is sending the document. |
Required |
|
N/A |
ReceiverCompanyId |
Logicbroker Internal Company ID to specify what company is to receive the document. |
Required |
|
BIG01 |
InvoiceDate |
Date of the invoice. |
Required |
|
BIG02 |
InvoiceNumber |
Number to identify the unique invoice document. |
Required |
|
N/A |
DocumentDate |
Read Only |
|
|
BIG03 |
OrderDate |
Date on the Purchase Order |
Optional - will be pulled from original order if not provided |
|
BIG04 |
PartnerPO |
This will be the purchase order number, this will be the main Key to link all your documents. This should match the order. |
Required |
|
CUR02 (SE) |
Currency |
Currency code to identify all values on the invoice. If no value is provided "USD" will be assumed. |
Optional |
|
SAC05 (C*G821) |
HandlingAmount |
Shipping and handling total to be charged on the invoice, this is part of the invoice total. In the portal this is the Shipping/Freight field. Some retailers require a SAC charge code other than G821, such as D500. Use the code in your retailer's EDI specification. See Handling fees and payment terms. |
Optional |
|
N/A |
DropshipAmount |
Dropship fee charged on the invoice. In the portal this is the Dropship Fee field. It is separate from HandlingAmount. If your retailer asks for a handling fee, use HandlingAmount. |
Optional |
|
TDS01 |
InvoiceTotal |
Invoice total includes, full amount to be paid including line totals, shipping, taxes and discounts. In the portal, Logicbroker calculates the Invoice Total from these values. Through the API, EDI, XML or CSV, send the full total, including any HandlingAmount. |
Required |
|
REF02 (CO) |
OrderNumber |
Contains the end customer's order number, this will be used on the packing slip. |
Optional |
|
REF02 (IA) |
VendorNumber |
This is the internal vendor number provided to the supplier from the merchant. If available it is always recommended to send. |
Optional |
|
N9:MSG01 (L1*Notes) |
Note |
This will include any important internal messages or notes on the invoice. |
Optional |
|
SAC05 (A*C310) |
Discounts.DiscountAmount |
Will include the total discount, and will be used to calculate the invoice total. |
Optional |
|
ITD03 |
Discounts.DiscountPercent |
Discount percent will be used as part of the payment terms. It will be used with the discount due date and discount days due. |
Optional - will be pulled from original order if not provided |
|
SAC05 (C*H850) |
Taxes.TaxAmount |
This will be the tax amount used to calculate the invoice total amount. |
Optional |
|
ITD04 |
PaymentTerm.DiscountDueDate |
Discount due date when discount will be applied. |
Optional - will be pulled from original order if not provided |
|
ITD05 |
PaymentTerm.DiscountInNumberOfDays |
Discount days due when discount will be applied. |
Optional - will be pulled from original order if not provided |
|
N/A |
PaymentTerm.EffectiveDate |
Date when the Payment terms begin. |
Optional |
|
ITD06 |
PaymentTerm.DueDate |
Date in which the invoice is due, before additional charges are accrued. |
Optional - will be pulled from original order if not provided |
|
ITD07 |
PaymentTerm.PayInNumberOfDays |
Number of days in which the invoice is due, before additional charges are accrued. |
Optional - will be pulled from original order if not provided |
|
ITD08 |
PaymentTerm.AvailableDiscount |
The total amount of discount available if the terms are met. |
Optional |
|
ITD12 |
PaymentTerm.TermsDescription |
Description of the payment terms. This will be a free form description. |
Optional |
|
N102 (RI) |
RemitToAddress.CompanyName |
Remit to address is only required if you do not have a business rule setup to default your remit to address. |
Required |
|
N201 (RI) |
RemitToAddress.FirstName |
Optional |
|
|
N202 (RI) |
RemitToAddress.LastName |
Optional |
|
|
N301 (RI) |
RemitToAddress.Address1 |
Required |
|
|
N302 (RI) |
RemitToAddress.Address2 |
Optional |
|
|
N401 (RI) |
RemitToAddress.City |
Required |
|
|
N402 (RI) |
RemitToAddress.State |
Required |
|
|
N404 (RI) |
RemitToAddress.Country |
Required |
|
|
N403 (RI) |
RemitToAddress.Zip |
Required |
|
|
N104 (RI*92) |
RemitToAddress.AddressCode |
Optional |
|
|
N1:PER04 (TE) |
RemitToAddress.Phone |
Optional |
|
|
N1:PER06 (EM) |
RemitToAddress.Email |
Optional |
|
|
N102 (SF) |
ShipFromAddress.CompanyName |
Ship from address. The other ShipFromAddress fields (FirstName, LastName, Address1, Address2, City, State, Zip, Country, Phone and Email) use the same N2, N3, N4 and PER elements as RemitToAddress above. They go in the N1 loop with qualifier SF. |
Optional |
|
N102 (ST) |
ShipToAddress.CompanyName |
Ship to address. The other ShipToAddress fields (FirstName, LastName, Address1, Address2, City, State, Zip, Country, Phone and Email) use the same N2, N3, N4 and PER elements as RemitToAddress above. They go in the N1 loop with qualifier ST. |
Optional |
|
N102 (BT) |
BillToAddress.CompanyName |
Bill to address. The other BillToAddress fields (FirstName, LastName, Address1, Address2, City, State, Zip, Country, Phone and Email) use the same N2, N3, N4 and PER elements as RemitToAddress above. They go in the N1 loop with qualifier BT. |
Optional |
|
SAC05 (A*ZZZZ) |
ExtendedAttribute.Allowance - ZZZ |
Used to indicate an additional detailed allowance. The Code as shown in the example ZZZ will correspond to what type of allowance. See specific partner details for the applicable codes. These will be deducted automatically in the invoice total calculation. |
Optional |
|
SAC05 (C*ZZZZ) |
ExtendedAttribute.Charge - ZZZ |
Used to indicate an additional detailed charge. The Code as shown in the example ZZZ will correspond to what type of charge. See specific partner details for the applicable codes. These will be added automatically in the invoice total calculation. |
Optional |
|
IT1 loop |
InvoiceLines |
The line items being invoiced. Send at least one line. Logicbroker rejects a portal or API invoice if every line has a quantity of 0 or any line has a negative quantity. |
Required |
|
IT101 |
InvoiceLine.LineNumber |
Line Number from the Order. If not provided this will be taken from the order automatically. |
Required |
|
IT104 |
InvoiceLine.Price |
Unit cost that the merchant is being billed for that line. |
Required |
|
IT105 |
InvoiceLine.PriceCode |
Used to indicate the price level for the product. See specific partner details for applicable codes. |
Optional |
|
IT102 |
InvoiceLine.Quantity |
Contains the quantity of items to be invoiced. |
Required |
|
IT103 |
InvoiceLine.QuantityUOM |
Unit of Measure for the quantity invoiced. See partner's details for specifics. |
Required |
|
IT1:PID05 (08) |
InvoiceLine.Description |
Standard short description or name of the product. |
Optional |
|
IT109 (IN) |
InvoiceLine.ItemIdentifier.PartnerSKU |
The Item identifier that is internal to the purchaser/merchant. |
Conditional - if received on an order this value should be returned |
|
IT107 (VN) |
InvoiceLine.ItemIdentifier.SupplierSKU |
The Item Identifier that is used by the supplier or the person fulfilling the product. This will always contain a value. |
Required |
|
IT111 (UP) |
InvoiceLine.ItemIdentifier.UPC |
Typically the U.P.C Consumer Package code will be provided; however additional standardized codes can be provided here as well. See specific partner instructions for details. |
Conditional - if received on an order this value should be returned |
|
IT1:TXI02 |
InvoiceLine.Taxes.TaxAmount |
Item Level Tax amount |
Optional |
We're updating this article. Some steps and screenshots may not match the portal yet. If anything is unclear, contact support@logicbroker.com.