SetInvoicePDF. For an order that has reached at least the ready_to_ship status, allows the upload of the tax document in PDF format.
ABOUT THE SIGNATURE
To sign the request, the string to sign is the concatenated result of:
The following headers from the request, sorted by name:
- Action
- Format
- Service
- Timestamp
- UserID
- Version
- Excluding the Signature parameter.
The names and values must be URL-encoded according to the RFC 3986 standard, concatenated with the '=' character. Each set of parameters (name=value) must be separated with the '&' character.
Then, using the API key, the signature should be calculated using the SHA256 algorithm.
You can take the following PHP example as a reference:
<?php
// Set the timezone if it's not configured correctly in php.ini
date_default_timezone_set("UTC");
// Default headers
$headers = [
'accept' => 'application/json',
'content-type' => 'application/json'
];
// Request data
$userID = '[email protected]';
$apiVersion = '1.0';
$action = 'FeedList';
$format = 'JSON';
$service = 'Invoice';
// Get the current timestamp in ISO 8601 format
$timestamp = date('c');
// Parameters for the signature
$parametersForSignature = [
'UserID' => $userID,
'Version' => $apiVersion,
'Action' => $action,
'Format' => $format,
'Timestamp' => $timestamp,
'Service' => $service
];
// Sort the parameters by name
ksort($parametersForSignature);
// URL-encode the parameters
$encodedParameters = [];
foreach ($parametersForSignature as $name => $value) {
$encodedParameters[] = rawurlencode($name) . '=' . rawurlencode($value);
}
// Concatenate the URL-encoded parameters into a string
$concatenatedParameters = implode('&', $encodedParameters);
// API key associated with the UserID
$apiKey = 'b1bdb357ced10fe4e9a69840cdd4f0e9c03d77fe';
// Calculate the signature and add it to the headers
$signature = hash_hmac('sha256', $concatenatedParameters, $apiKey, false);
$headers['Signature'] = rawurlencode($signature);
// Merge the headers for the request
$requestHeaders = array_merge($headers, $parametersForSignature);
print_r($requestHeaders);
ImportantRemember that this upload is not allowed for those orders where falabella.com issues the invoice on behalf of the seller, meaning when the ShipmenType is Own Warehouse.
Errors
Error Code | Message |
---|---|
E004 | Invoice with invoice number %s already exists |
E004 | Max limit reached. Total number of invoice documents should be less than or equal to total items in an order |
E004 | Invalid seller order item status for document %s |
E004 | Order contains FBF items. PDF upload only supports FBS orders. |
E004 | Invoice date must be less than or equal to current date |
E004 | OrderItem(s) not found %s |
E007 | Login failed. Signature mismatching |
E1000 | Internal Application Error |