Cargar factura
Contenidos
→Cargar factura en detalle de venta →Adjuntar archivo XML ↳Posibles errores en la carga de facturas →Obtener ids de las facturas ↳Posibles errores obteniendo ids de facturas →Obtener factura ↳Posibles errores por obtener de facturas →Eliminar factura ↳Posibles errores por eliminar facturas →Solicitar datos de facturación ↳Posibles errores por solicitar datos de facturación →Errores generales
Cargar factura en detalle de venta
Para poder realizar la carga de una factura debes realizar un POST como form.data con key: tipo file y value fiscal_document que referencia al fiscal_document (archivo del documento que adjuntas), pack_id (ID del pack) y access_token (token público). Llamada: Ejemplo: Respuesta: Actualmente, cuando necesites adjuntar la factura en XML asociado, debes realizar el siguiente POST y especificar alguno de los siguientes formatos: Llamada: Ejemplo: Respuesta: El usuario no está autorizado a subir una factura: El archivo no puede ser null o no se encuentra: Tipo de archivo no permitido: Archivo excede el tamaño máximo: Adjuntar más de un archivo: Adjuntar más de un archivo en un pack del mismo tipo: Adjuntar un archivo en un pack que ya tiene la cantidad máxima de archivos cargados previamente: Adjuntar un archivo de un tipo en un pack que ya tiene un archivo de ese tipo cargado previamente: Adjuntar archivo con nombre vacío: Adjuntar archivo para pack con envío fulfillment o cross-docking: Para poder obtener el id de las facturas, debes realizar una llamada GET. La respuesta dependerá del rol del usuario que haga la consulta y podrá ser: Ejemplo: Respuesta: El usuario no está autorizado a obtener los ids de facturas asociada al pack: Si el pack no tiene ninguna factura cargada: Si el usuario no tiene ninguna factura cargada por él dentro del pack: Para poder obtener facturas, debes realizar una llamada GET con el filename, es decir, el ID del file. La respuesta será exitosa cuando devuelva el archivo que solicitas. Llamada: Ejemplo: El usuario no está autorizado a obtener la factura asociada al pack: No existe el fiscal_document que se quiere obtener: La factura no pudo ser encontrada en el servidor, intente nuevamente en unos segundos: Para eliminar la factura, debes realizar una llamada DELETE especificando el pack_id es decir el ID del pack. De esta manera, eliminarás todos los archivos que hayas cargado en el pack. Llamada: Ejemplo: Si el vendedor tiene 1 solo archivo adjuntado al PACK_ID, esta es la respuesta: Si tiene mas de un archivo adjuntado, es decir PDF y XML, la respuesta es la siguiente: Eliminar una factura de un pack que no existe o que ya fue borrada: Usuario no está autorizado a eliminar la factura asociada al pack: El recurso /packs/$PACK_ID/fiscal_documents/billing/request_buyer_info tiene el objetivo de que puedas solicitar únicamente los datos de facturación al comprador. Mediante una llamada POST puedes colocar, dentro del campo text, el mensaje con un máximo de hasta 500 caracteres y deberás respetar las reglas y limitaciones de mensajería posventa, como evitar utilizar links de redes sociales, lenguaje ofensivo, links acortados y html en el cuerpo del mensaje para evitar futuras moderaciones. Llamada: Ejemplo: Respuesta con Status Code 201: Recibirás la respuesta de la solicitud por mensajería cuando el comprador responda. El body se encuentra vacío: No se pudo recuperar el body del request: El usuario no está autorizado a pedir los datos fiscales: Si el usuario no puede usar la mensajería: Si el texto supera la cantidad máxima de caracteres: Si el texto está vacío: Si el texto no es válido: El id de la orden no pertenece a un pack: Pack_id vacío o no numérico: Pack_id negativo o 0: Error por Access token En caso de que realices la consulta sin el access token correspondiente, obtendrás el siguiente error: 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:
Para conocer el pack_id, deberás obtener el campo “pack_id” en la respuesta de /orders/
En caso que el pack id contenga un valor null, debes tomar por defecto el order id, manteniendo el recurso /packs en la llamada a la API.
curl -X POST https://api.mercadolibre.com/packs/$PACK_ID/fiscal_documents
-H 'Content-Type: multipart/form-data' \
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-F 'fiscal_document=@/home/user/.../Factura_adjunta.pdf'
curl -X POST https://api.mercadolibre.com/packs/2000000089077943/fiscal_documents
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-H 'content-type: multipart/form-data;'
-F 'fiscal_document=@/home/user/.../Factura_adjunta.pdf'
{
"ids" : ["415460047_a96d8dea-38cd-4402-938e-80a1c134fc5d"]
}
Adjuntar archivo XML
curl -X POST https://api.mercadolibre.com/packs/$PACK_ID/fiscal_documents
-H 'content-type: multipart/form-data;'
-H 'Authorization: Bearer $ACCESS_TOKEN'
-F 'fiscal_document=@/home/user/.../Factura_adjunta.pdf'
-F 'fiscal_document=@/home/user/.../Factura_adjunta.xml'
curl -X POST 'https://api.mercadolibre.com/packs/2000000089077943/fiscal_documents'
-H 'Authorization: Bearer $ACCESS_TOKEN'
-H 'content-type: multipart/form-data;'
-F 'fiscal_document=@/home/user/.../Factura_adjunta.pdf'
-F 'fiscal_document=@/home/user/.../Factura_adjunta.xml'
{
"ids" : ["415460047_a96d8dea-38cd-4402-938e-80a1c134fc5d",
"415460047_4c942945-ae16-46f2-98fa-a772322c7e70" ]
}
Posibles errores en la carga de factura
{
"message": "Access Denied, you are not authorized.",
"error": "forbidden",
"status": 403,
"cause": []
}
{
"message": "File cannot be empty",
"error": "bad_request",
"status": 400,
"cause": []
}
{
"message":"File type: $FILE_TYPE is not allowed",
"error":"bad_request",
"status":400,
"cause":[
]
}
{
"message":"File Not allowed, exceeds maximum size",
"error":"bad_request",
"status":400,
"cause":[]
}
{
"message":"Files Not allowed, you can upload only two files, one of each type",
"error":"bad_request",
"status":400,
"cause":[
]
}
{
"message":"Files Not allowed, you can upload only one file of type: $FILE_TYPE",
"error":"conflict",
"status":409,
"cause":[
]
}
{
"message":"File Not allowed, the max amount of files already exist for the pack: $PACK_ID and seller: $SELLER_ID",
"error":"conflict",
"status":409,
"cause":[
]
}
{
"message":"File Not allowed, a file already exists for the pack: $PACK_ID and seller: $SELLER_ID of the type: $FILE_TYPE",
"error":"conflict",
"status":409,
"cause":[
]
}
{
"message":"Filename cannot be empty",
"error":"bad_request",
"status":400,
"cause":[]
}
{
"message": "Access denied, you must use the biller of MercadoLibre",
"error": "forbidden",
"status": 403,
"cause": []
}
Obtener ids de las facturas
Rol vendedor: los ids de las facturas que cargó en el pack.
Rol comprador: todos los ids de las facturas que pertenecen al pack.
Llamada:curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/packs/$PACK_ID/fiscal_documents
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN'https://api.mercadolibre.com/packs/2000000089077943/fiscal_documents
{
"pack_id": 2000000089077943,
"fiscal_documents":[
{
"id":"fc76f79d-1599-43ed-8675-569482e2ec21",
"date":"2020-04-27T23:10:21Z",
"file_type":"application/pdf"
"filename":"factura.pdf"
}
]
}
Errores obteniendo los ids de la factura
{
"message": "Access Denied, you are not authorized.",
"error": "forbidden",
"status": 403,
"cause": []
}
{
"message": "The pack_fiscal_document with pack_id: %d does not exist",
"error": "not_found",
"status": 404,
"cause": []
}
{
"message": "The pack_fiscal_document with pack_id: %d does not have any fiscal_document attached for the user_id: %d",
"error": "not_found",
"status": 404,
"cause": []
}
Obtener factura
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/packs/$PACK_ID/fiscal_documents/$FISCAL_DOCUMENT_ID
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/packs/2000000089077943/fiscal_documents/415460047_a96d8dea-38cd-4402-938e-80a1c134fc5d
Posibles errores por obtener facturas
{
"message": "Access Denied for user with id : ${ID} to the fiscal_document with id: ${ID}.",
"error": "forbidden",
"status": 403,
"cause": []
}
{
"message": "The fiscal_document with id: ${ID} does not exist",
"error": "bad_request",
"status": 400,
"cause": []
}
{
"message": "The fiscal_document with id: ${ID} could not be retrieved from storage",
"error": "not_found",
"status": 404,
"cause": []
}
Eliminar factura
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/packs/$PACK_ID/fiscal_documents
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/packs/2000000089077943/fiscal_documents
{
"message" : "The fiscal_document with "id" : 415460047_a96d8dea-38cd-4402-938e-80a1c134fc5d was deleted"
}
{
"message" : "The fiscal_documents with the following ids: 415460047_a96d8dea-38cd-4402-938e-80a1c134fc5d, 415460047_4c942945-ae16-46f2-98fa-a772322c7e70 were deleted
}
Posibles errores por eliminar facturas
{
"message":"Cannot delete. The pack: 2000000089077943 doesn't have a fiscal_document attached",
"error":"not_found",
"status":404,
"cause":[]
}
{
"message": "Access Denied, you are not authorized.",
"error": "forbidden",
"status": 403,
"cause": []
}
Solicitar datos de facturación
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' -d '{
"text": "Texto para el comprador"
}' 'https://api.mercadolibre.com/packs/$PACK_ID/fiscal_documents/billing/request_buyer_info'
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' -d '{
"text": "¡Hola Comprador!
Por favor, responda el siguiente mensaje con los datos de facturación:
- Nombre completo:
- Número de identificación (DNI, RFC, etc.):
- Dirección completa:
¡Muchas gracias por tu compra!"
}' 'https://api.mercadolibre.com/packs/2000000089077943/fiscal_documents/billing/request_buyer_info'
{
"message":"The message with id: $MESSAGE_ID was created"
}
Posibles errores por solicitar datos de facturación
{
"message": "The body of the request cannot be empty",
"error": "internal_server_error",
"status": 500,
"cause": []
}
{
"message": "Error retrieving the body from the request",
"error": "internal_server_error",
"status": 500,
"cause": []
}
{
"message": "Access Denied, you are not authorized.",
"error": "forbidden",
"status": 403,
"cause": []
}
{
"message": "You cannot ask for the billing_info because you are not allowed to use the messaging service",
"error": "forbidden",
"status": 403,
"cause": []
}
{
"message": "The text content is too long, max characters allowed are: 500",
"error": "bad_request",
"status": 400,
"cause": []
}
{
"message": "The text content cannot be empty",
"error": "bad_request",
"status": 400,
"cause": []
}
{
"message": "You cannot ask for the billing_info because the text is not valid. Check Messaging Post Sale documentation for more information",
"error": "not_acceptable",
"status": 406,
"cause": []
}
Errores generales
{
"message":"The order belong to a pack/purchase",
"error":"bad_request",
"status":400,
"cause":[]
}
{
"message":"pack.id must be numeric and not empty",
"error":"bad_request",
"status":400,
"cause":[]
}
{
"message":"pack.id is invalid",
"error":"bad_request",
"status":400,
"cause":[]
}
{
"message": "access_token was not sent",
"error": "access_token_not_granted",
"status": 403,
"cause": []
}
{
"message": "Access Denied, this API is not available on your site: MLB",
"error": "forbidden",
"status": 403,
"cause": []
}