Skip to main content

Invoice upload via Seller-API

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.

Did this answer your question?