Cargar factura

Importante:
Esta funcionalidad estará disponible a partir del 9 de abril de 2020 para todos los sitios, excepto Mercado Livre Brasil.

Con esta nueva funcionalidad, los vendedores de Mercado Libre pueden compartir las facturas de sus compradores de manera ordenada dentro del proceso de compra-venta. De esta manera, facilitamos el acceso a los documentos evitando que sean adjuntos en la mensajería posventa y mejorando la experiencia de compra. Sigue nuestra guía, aprenderás a cargar, obtener y eliminar facturas por pack.

Contenidos

→Cargar factura en detalle de venta
    ↳Posibles errores en la carga de facturas
→Obtener factura
    ↳Posibles errores por obtener facturas
→Eliminar factura
    ↳Posibles errores por eliminar facturas
→Error por access token
→Error por acceso desde site no autorizado


Cargar factura en detalle de venta

Para poder realizar la carga de una factura debes realizar un POST como form.data con key: value fiscal_documents que referencia al fiscal_document (archivo del documento que adjuntas), pack_id (ID del pack) y access_token (token público).

Importante:
El archivo debe tener un tamaño máximo de 1 MB, estar en formato PDF y podrá ser únicamente un fiscal_document por pack.

Llamada:

curl -X POST https://api.mercadolibre.com/packs/$PACK_ID/fiscal_documents?access_token=$ACCESS_TOKEN 
  -H 'content-type: multipart/form-data;' 
  -F 'fiscal_document=@/home/user/.../Factura_adjunta.pdf'

Ejemplo:

curl -X POST 'https://api.mercadolibre.com/packs/2000000089077943/fiscal_documents?access_token=$ACCESS_TOKEN'
  -H 'content-type: multipart/form-data;'
  -F 'fiscal_document=@/home/user/.../Factura_adjunta.pdf'

Respuesta:

{
	"ids" : ["415460047_a96d8dea-38cd-4402-938e-80a1c134fc5d"]
}
Nota:
La respuesta devolverá el ID del fiscal_document cargado, que deberás guardar para poder recuperarlo.
Si adjuntas un archivo erróneo, puedes eliminar el fiscal_document existente y luego volver a subirlo correctamente.

Posibles errores en la carga de factura

El usuario no está autorizado a subir una factura:

{
    "message": "Access Denied, you are not authorized.",
    "error": "forbidden",
    "status": 403,
    "cause": []
}

El archivo no puede ser null o no se encuentra:

{
    "message": "File cannot be empty",
    "error": "bad_request",
    "status": 400,
    "cause": []
}

Tipo de archivo no permitido:

{
   "message": "File type is not allowed",
   "error": "bad_request",
   "status": 400,
   "cause": []
}

Archivo excede el tamaño máximo:

{
   "message":"File Not allowed, exceeds maximum size",
   "error":"bad_request",
   "status":400,
   "cause":[]
}

Adjuntar más de un archivo:

{
   "message":"Files Not allowed, you can upload only one file",
   "error":"bad_request",
   "status":400,
   "cause":[]
}

Adjuntar un archivo en un pack que ya tiene cargado uno previamente:

{
   "message":"File Not allowed, a file already exists for the pack: $PACK_ID and seller: $SELLER_ID",
   "error":"conflict",
   "status":409,
   "cause":[]
}

Adjuntar archivo con nombre vacío:

{
   "message":"Filename cannot be empty",
   "error":"bad_request",
   "status":400,
   "cause":[]
}

Pack_id vacío o no numérico:

{
   "message":"pack.id must be numeric and not empty",
   "error":"bad_request",
   "status":400,
   "cause":[]
}

Pack_id negativo o 0:

{
   "message":"pack.id is invalid",
   "error":"bad_request",
   "status":400,
   "cause":[]
}

Obtener facturas

Para poder obtener facturas, debes realizar una llamada GET con el filename, es decir, es el ID del file. La respuesta será exitosa cuando devuelva el archivo que solicitas.

Llamada:

curl -X GET https://api.mercadolibre.com/packs/$PACK_ID/fiscal_documents/$FISCAL_DOCUMENT_ID?access_token=$ACCESS_TOKEN

Ejemplo:

curl -X GET https://api.mercadolibre.com/packs/2000000089077943/fiscal_documents/415460047_a96d8dea-38cd-4402-938e-80a1c134fc5d?access_token=$ACCESS_TOKEN

Posibles errores por obtener facturas

El usuario no está autorizado a obtener la factura asociada al pack:

{
    "message": "Access Denied for user with id : ${ID} to the fiscal_document with id: ${ID}.",
    "error": "forbidden",
    "status": 403,
    "cause": []
}

No existe el fiscal_document que se quiere obtener:

{
    "message": "The fiscal_document with id: ${ID} does not exist",
    "error": "bad_request",
    "status": 400,
    "cause": []
}

La factura no pudo ser encontrada en el servidor, intente nuevamente en unos segundos:

{
    "message": "The fiscal_document with id: ${ID} could not be retrieved from storage",
    "error": "not_found",
    "status": 404,
    "cause": []
}

Eliminar factura

Para eliminar la factura debes realizar una llamada DELETE especificando el pack_id es decir el ID del pack. De esta manera, eliminarás la factura perteneciente al pack.

Llamada:

curl -X DELETE https://api.mercadolibre.com/packs/$PACK_ID/fiscal_documents?access_token=$ACCESS_TOKEN

Ejemplo:

curl -X DELETE https://api.mercadolibre.com/packs/2000000089077943/fiscal_documents?access_token=$ACCESS_TOKEN

Respuesta:

{
	"message" : "The fiscal_document with "id" : 415460047_a96d8dea-38cd-4402-938e-80a1c134fc5d was deleted"
}
Nota:
En la respuesta obtendrás el ID del fiscal_document borrado.

Posibles errores por eliminar facturas

Eliminar una factura de un pack que no existe o que ya fue borrada:

{
   "message":"Cannot delete. The pack: 2000000089077943 doesn't have a fiscal_document attached",
   "error":"not_found",
   "status":404,
   "cause":[]
}

Usuario no está autorizado a eliminar la factura asociada al pack:

{
    "message": "Access Denied, you are not authorized.",
    "error": "forbidden",
    "status": 403,
    "cause": []
}

Error por access token

En caso de que realices la consulta sin el access token correspondiente, obtendrás el siguiente error:

{
    "message": "access_token was not sent",
    "error": "access_token_not_granted",
    "status": 403,
    "cause": []
}

Error por acceso desde site no autorizado:

En caso de que quieran utilizar la API desde algún site en el cual no está disponible, obtendrás el siguiente error:

{
    "message": "Access Denied, this API is not available on your site: MLB",
    "error": "forbidden",
    "status": 403,
    "cause": []
}