Invoice upload
During this process, invoices can be uploaded to Channel Pilot Pro.
This feature can exclusively be used for the marketplaces listed below.
After the upload is successful, Channel Pilot Pro forwards the uploaded invoice to the respective marketplace.
Sample implementation of the invoice upload (PHP):
<?php
echo '<hr>TEST: placeInvoice';
ini_set("soap.wsdl_cache_enabled", 0);
require_once '../../lib/4_2/ChannelPilotSellerAPI_v4_2.php';
$merchantId = 'XXXXXXXXXX'; //Replace with your data
$shopToken = 'XX1234567890XX1234567890XX'; //Replace with your data
$api = new ChannelPilotSellerAPI_v4_2($merchantId, $shopToken);
$invoiceContent = file_get_contents('/path/to/your/local/invoice/file.pdf'); //Replace with your data
$invoiceNumber = '123456'; //Replace with your data
$fileName = 'invoice-123456.pdf'; //Replace with your data
$totalAmount = 123.3; //Replace with your data
$totalVatAmount = 19.69; //Replace with your data
$overwrite = false; //Replace with your data
$invoiceType = 'REGULAR_INVOICE'; //Replace with your data
$result = $api->placeInvoice('ORDER_ID_EXTERNAL', 'ebay.de', $invoiceContent, $invoiceNumber, $fileName, $totalAmount, $totalVatAmount, $overwrite, $invoiceType);
echo '<pre>' . print_r($result, true) . '</pre>';
?>
Sample code for converting a file content to byte array (JAVA):
Path pdfFile = Paths.get("C:\\Users\\test\\Documents\\invoice.pdf");
byte[] pdfFileBytes = Files.readAllBytes(pdfFile);
Sample response of successful "placeInvoice" call:
"header": {
"resultCode": 200,
"resultMessage": ""
}
Sample response of faulty "placeInvoice" call:
"header": {
"resultCode": 706,
"resultMessage": "It is not possible, to upload invoices for the channel 'test-123'"
}
Error cases:
Error code | Error message | Reason |
406 | The file type provided is not supported by the channel. The valid file type for invoices is PDF (sample: \"invoice.pdf\") | The provided data type is not supported for the invoice upload. Currently, Channel Pilot Pro can only handle .pdf files for the invoice upload. |
705 | Could not find channel for given unique identifier | Given channel is not available in Channel Pilot Pro. (2nd parameter in function call is wrong) |
706 | It is not possible, to upload invoices for the channel | Given channel is not yet activated for invoice upload. |
704 | Could not find order for given orderIdExternal 'ORDER-ID' | There is no order in Channel Pilot Pro available for the given order ID.
Please double-check 1st parameter of the Seller-API-Call. |
707 | There is already an invoice available for order 'ORDER-ID'. Overwriting was disabled by seller api call. | There is already an invoice available at Channel Pilot Pro for the given order ID.
If you want to overwrite an already uploaded invoice, please enable the overwrite flag in the Seller-API-Call (8th parameter) |
708 | Provided order invoice was already saved for order | An identical invoice is already available in Channel Pilot Pro for the given order. |
SOAP-UI description and samples for this function can be found here.
Available channel unique identifiers for 2nd parameter of the Seller-API-Call:
Amazon
amazon (ARE) | amazon.are |
amazon (AUS) | amazon.aus |
amazon (BEL) | amazon.bel |
amazon (CAN) | amazon.can |
amazon (DEU) | amazon.deu |
amazon (EGY) | amazon.egy |
amazon (ESP) | amazon.esp |
amazon (FRA) | amazon.fra |
amazon (GBR) | amazon.gbr |
amazon (IND) | amazon.ind |
Amazon (IRL) | amazon.irl |
amazon (ITA) | amazon.ita |
amazon (JPN) | amazon.jpn |
amazon (MEX) | amazon.mex |
amazon (NLD) | amazon.nld |
amazon (POL) | amazon.pol |
amazon (SAU) | amazon.sau |
amazon (SWE) | amazon.swe |
amazon (TUR) | amazon.tur |
amazon (USA) | amazon.usa |
Others
About You Germany | aboutyou_de |
Kaufland (ITA) | kaufland_ita |
kaufland.at (AUT) | kaufland_aut |
kaufland.cz Nabídka (CZE) | kaufland_cze |
Kaufland (FRA) | kaufland_fra |
kaufland.pl (POL) | kaufland_pol |
Kaufland (Real (DEU)) | real_deu |
kaufland.sk Ponuka (SVK) | kaufland_svk |
OBI Germany | obi_deu |
mirakl
alltricks (FRA) | alltricks_fra |
AUTODOC (AUT) | autodoc_aut |
AUTODOC (DEU) | autodoc_deu |
AUTODOC (FRA) | autodoc_fra |
Bauhaus (DEU) | bauhaus_deu |
Bulevip (ESP) | bulevip_esp |
Carrefour (ESP) | carrefour_esp |
Carrefour (FRA) | carrefour_fra |
conrad (DEU) | conrad_deu |
Darty (FRA) | darty_fra |
Decathlon (CZE) | decathlon_cze |
Decathlon (DEU) | decathlon_deu |
Decathlon (ESP) | decathlon_esp |
Decathlon (FRA) | decathlon_fra |
Decathlon (GBR) | decathlon_gbr |
Decathlon (HUN) | decathlon_hun |
Decathlon (ITA) | decathlon_ita |
Decathlon (NLD) | decathlon_nld |
Decathlon (PRT) | decathlon_prt |
Decathlon (ROU) | decathlon_rou |
Decathlon PREPROD (BEL) | decathlonpreprod_bel |
Decathlon (BEL) | decathlon_bel |
Douglas (DEU) | douglas_deu |
El Corte Ingles (ESP) | elcorteingles_esp |
fnac (FRA) | fnac_fra |
Home24 (DEU) | home24_deu |
Hornbach (DEU) | hornbach_deu |
LaRedoute Mirakl (FRA) | laredoute_fr |
laredoute PREPROD (FRA) | laredoutepreprod_fra |
Leroy Merlin (ESP) | leroymerlin_esp |
Leroy Merlin (FRA) | leroymerlin_fra |
Leroy Merlin (ITA) | leroymerlin_ita |
Leroy Merlin (PRT) | leroymerlin_prt |
Media World (ITA) | mediaworld_ita |
MediaMarkt PREPROD (DEU) | mediamarktpreprod_deu |
MediaMarkt/Saturn (AUT) | mediamarktsaturn_aut |
MediaMarkt/Saturn (BEL) | mediamarktsaturn_bel |
MediaMarkt/Saturn (DEU) | mediamarktsaturn_deu |
MediaMarkt/Saturn (DEU) | mediamarktsaturn_deu |
MediaMarkt/Saturn (ESP) | mediamarktsaturn_esp |
MediaMarkt/Saturn (NLD) | mediamarktsaturn_nld |
MiVo (DEU) | mivo_deu |
PC-Componentes (ESP) | pccomponentes_esp |
Shop Apotheke (AUT) | shopapotheke_aut |
Shop Apotheke (AUT) | shopapotheke_aut |
Shop Apotheke (DEU) | shopapotheke_deu |
Shop Apotheke (DEU) | shopapotheke_deu |
Teract (FRA) | teract_fra |
Tradeinn (ESP) | tradeinn_esp |
Voelkner (DEU) | voelkner_deu |
Voelkner (DEU) | voelkner_deu |
Worten (ESP) | worten_esp |
Worten (PRT) | worten_prt |
XXXLutz | xxxlutzde_deu |
Zooplus (FRA) | zooplus_fra |
Invoice Upload Fields
overwrite (boolean)
This field controls whether an existing invoice should be replaced. The recommended default is false, as this prevents accidental overwriting of already uploaded documents. It should only be set to true in cases where a corrected or updated invoice is explicitly intended to replace a previous version.
totalVatAmount (total VAT)
Providing the total VAT amount is mandatory. If this value is not directly available in your system, it must be calculated in advance (e.g., gross amount minus net amount). It is essential that the submitted value exactly matches the VAT amount shown on the invoice PDF, as discrepancies may lead to rejection by Amazon.
invoiceType (string)
For standard use cases, REGULAR_INVOICE is the correct value and should be used for both B2C and typical Amazon Business transactions.
The alternative value, COMMERCIAL_INVOICE, is only required for export or customs-related shipments to third countries (e.g., Switzerland) where a commercial invoice is needed for customs clearance.
