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.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

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
Body Params
orderItemIds
array of strings
required

El identificador de los Item ids de la orden que deben ser incluidos en el documento.

orderItemIds*
string
required

El número de documento. Debe ser igual que los campos NroDTE y Folio en el cuerpo del XML.

date
required

Fecha del documento.

string
enum
required

El nombre del tipo de documento. Nota: BOLETA no es valido para Colombia (FACO)

Allowed:
string
enum
required

Código de país. FACL = Chile, FACO = Colombia, FAPE=Perú.

Allowed:
string
required
Defaults to pdf

Invoice Document Format

string
required

Document PDF como string codificado en base64.

Headers
string
required

El ID del usuario que realiza la llamada. La lista de usuarios autorizados se mantiene en la interfaz web de Seller Center en Configuración/Gestión de usuarios.

string
required

La versión de la API contra la que se va a ejecutar esta llamada, en formato mayor-punto-menor. Debe ser actualmente 1.0, aunque la versión real de la API sea 2.6.20. Si se omite, se devuelve un mensaje de error 'E001: Parameter Version is mandatory'.

date
required

La hora actual en formato ISO8601 relativo a UTC (por ejemplo, Timestamp=2015-04-01T10:00:00+02:00 para Berlín), para que las llamadas no puedan ser reproducidas por un tercero que las escuche (es decir, las llamadas demasiado lejanas en el pasado o en el futuro producen un mensaje de error). Obligatorio. Si no se suministra, aparece el mensaje de error "E001: Parameter Timestamp is mandatory". Si la marca de tiempo es demasiado antigua o está en el futuro, aparece un mensaje de error "E003: Timestamp has expired".

string
required

La firma criptográfica que autentifica la solicitud. La persona que llama debe crear este valor calculando el hash SHA256 de la solicitud, utilizando la clave API del usuario especificado en el parámetro UserID. Obligatorio. Si se omite, se devuelve un mensaje de error 'E001: Parameter Signature is mandatory'. Si la firma es incorrecta, se devuelve un mensaje de error 'E007: Login failed. Signature mismatch'.

string
required
Defaults to SetInvoicePDF

Nombre de la función que se va a llamar. Obligatorio y debe ser 'SetInvoicePDF' en este caso. Si se omite, se devuelve un error 'E001: Parameter Action is mandatory' (El parámetro Action es obligatorio). Si se proporciona una cadena de función desconocida, se devuelve un mensaje de error 'E008: Invalid Action' (Acción no válida).

string
required
Defaults to JSON
string
required
Defaults to Invoice
string
enum
Defaults to application/json

Generated from available request content types

Allowed:
Responses

Language
LoadingLoading…
Response
Choose an example:
application/json