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);
## Important
Remember 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 |