Skip to main content
GET
/
api
/
v1
/
invoices
/
{number}
/
xml
curl -X GET https://api.yourapp.com/api/v1/invoices/FACT-12345/xml \
  -H "Authorization: Bearer <local_jwt>" \
  -H "X-Factus-Token: <factus_access_token>"
{
  "message": "XML obtenido exitosamente",
  "data": {
    "file_name": "FACT-12345.xml",
    "file_content": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEludm9pY2UgeG1sbnM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkludm9pY2UtMiIgeG1sbnM6Y2FjPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpDb21tb25BZ2dyZWdhdGVDb21wb25lbnRzLTIiIHhtbG5zOmNiYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQmFzaWNDb21wb25lbnRzLTIiPg==",
    "extension": "xml"
  }
}

Headers

Authorization
string
required
Bearer token for authentication: Bearer <local_jwt>
X-Factus-Token
string
required
Factus access token obtained from authentication

Path Parameters

number
string
required
The invoice number to download as XML

Response

message
string
Success message
data
object
XML download response
curl -X GET https://api.yourapp.com/api/v1/invoices/FACT-12345/xml \
  -H "Authorization: Bearer <local_jwt>" \
  -H "X-Factus-Token: <factus_access_token>"
{
  "message": "XML obtenido exitosamente",
  "data": {
    "file_name": "FACT-12345.xml",
    "file_content": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEludm9pY2UgeG1sbnM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkludm9pY2UtMiIgeG1sbnM6Y2FjPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpDb21tb25BZ2dyZWdhdGVDb21wb25lbnRzLTIiIHhtbG5zOmNiYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQmFzaWNDb21wb25lbnRzLTIiPg==",
    "extension": "xml"
  }
}

Usage Notes

  • The file_content field contains the XML file encoded in Base64 format
  • The XML follows the UBL 2.1 standard for electronic invoicing in Colombia
  • To use the file, decode the Base64 string and save it as a .xml file
  • Example decoding in Python:
    import base64
    
    xml_content = base64.b64decode(response["data"]["file_content"])
    with open("invoice.xml", "wb") as f:
        f.write(xml_content)
    

Build docs developers (and LLMs) love