SetInvoicePDF. Para una orden que haya alcanzado al menos el estado ready_to_ship, permite la carga del documento tributario en un formato vía PDF.
SOBRE LA FIRMA
Para firmar la solicitud, la cadena para firmar es el resultado concatenado de:
Los siguientes headers de la solicitud, ordenados por nombre:
- Action
- Format
- Service
- Timestamp
- UserID
- Version
- Y excluyendo el parámetro Signature.
Los nombres y valores deben estar codificados en la URL de acuerdo con el estándar RFC 3986, concatenados con el carácter '='. Cada conjunto de parámetros (nombre = valor) debe separarse con el carácter '&'.
Luego, con ayuda del API key, se debe calcular la firma usando el algoritmo SHA256.
Puedes tomar el siguiente ejemplo PHP cómo referencia
<?php
// Establecer la zona horaria si no está configurada correctamente en php.ini
date_default_timezone_set("UTC");
// Cabeceras predeterminadas
$headers = [
'accept' => 'application/json',
'content-type' => 'application/json'
];
// Datos de la solicitud
$userID = '[email protected]';
$apiVersion = '1.0';
$action = 'FeedList';
$format = 'JSON';
$service = 'Invoice';
// Obtener la marca de tiempo actual en formato ISO 8601
$timestamp = date('c');
// Parámetros para la firma
$parametersForSignature = [
'UserID' => $userID,
'Version' => $apiVersion,
'Action' => $action,
'Format' => $format,
'Timestamp' => $timestamp,
'Service' => $service
];
// Ordenar los parámetros por nombre
ksort($parametersForSignature);
// URL-encode los parámetros
$encodedParameters = [];
foreach ($parametersForSignature as $name => $value) {
$encodedParameters[] = rawurlencode($name) . '=' . rawurlencode($value);
}
// Concatenar los parámetros URL-codificados en una cadena
$concatenatedParameters = implode('&', $encodedParameters);
// Clave de la API asociada con el UserID
$apiKey = 'b1bdb357ced10fe4e9a69840cdd4f0e9c03d77fe';
// Calcular la firma y agregarla a las cabeceras
$signature = hash_hmac('sha256', $concatenatedParameters, $apiKey, false);
$headers['Signature'] = rawurlencode($signature);
// Fusionar las cabeceras para la solicitud
$requestHeaders = array_merge($headers, $parametersForSignature);
print_r($requestHeaders);
## ImportanteRecuerda que esta carga no está permitida para aquellas órdenes donde falabella.com emita la factura en nombre del seller, es decir, cuando el ShipmenType es Own Warehouse,
Errores
| Código de error | Mensaje |
|---|---|
| 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 |
