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);

🚧

Importante

Recuerda 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 errorMensaje
E004Invoice with invoice number %s already exists
E004Max limit reached. Total number of invoice documents should be less than or equal to total items in an order
E004Invalid seller order item status for document %s
E004Order contains FBF items. PDF upload only supports FBS orders.
E004Invoice date must be less than or equal to current date
E004OrderItem(s) not found %s
E007Login failed. Signature mismatching
E1000Internal Application Error
Language