Cargar Documento Tributario

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

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