Copyright Teleinte SAS 2021
Para mayor información en operaciones@teleinte.com

EndPoint


Nota: La regeneración del PDF consume una transacción de la bolsa

Método: POST

EndPoint:

Pruebas
https://servicios-pruebas.afacturar.com/api/otros/regenerar_pdf

Producción
https://servicios.afacturar.com/api/otros/regenerar_pdf

Seguridad SSL: Afacturar cuenta en sus endpoint con certificados de seguridad (DigiCert SHA2 Extended Validation Server CA), su aplicación debe ser capaz de negociar y validar dicho certificado.

Parámetros de entrada


HEADERS


Accept: application/json

Authorization: Bearer Token asignado a cada cliente


BODY


documento_obligado: Número de identificación del cliente

data: JSON


Estructura de JSON de entrada


Regenerar PDF


informacion_documento Objeto Requerido

Información de del documento a regenerar el pdf

Especificación:

tipo_documento Parametrizado Requerido

Tipo de documento al cual se va a regenerar el pdf.

Especificación:

FACTURA

NOTA_CREDITO

NOTA_DEBITO

prefijo String Requerido

Prefijo de la resolución registrado para la numeración, aplica para documento tipo FACTURA

Especificación: Maximo 4 caracteres

numero String Requerido

Número de documento: Número de factura. Consecutivo de factura autorizados por la DIAN. Si es nota credito o debito se debe enviar el prefijo + numero

Especificación: No se permiten caracteres adicionales como espacios o guiones.

generalidades Objeto Requerido

Generalidades

Especificación:

rg_tipo Parametrizado Requerido

Si se envia rg_base_64, identificar si el tipo de archivo es HTML / PDF o PDF_PROPIO. Este último se usa cuando el pdf lo genera el obligado.

Especificación: Si hay información en rg_base_64 debe ir HTML o PDF

rg_base_64 String Requerido

Pdf del documento elecronico en base 64. Tener en cuenta que el pdf que envien NO debe tener el CUFE/CUDE, el QR y la fecha de validación, ya que el sistema lo vuelve a colocar

Especificación: Mínimo 5 caracteres

rg_px_qr Objeto No_requerido

Información para ubicar el QR dentro del documento envido en base 64

Especificación: Si se envia el rg_base_64

x Numerico Requerido

Posicionamiento en x dentro de la representación grafica

Especificación: Coordenada en pixeles en x desde la posición (0,0)

y Numerico Requerido

Posicionamiento en y dentro de la representación grafica

Especificación: Coordenada en pixeles en y desde la posición (0,0)

size Numerico Requerido

Tamaño del qr

Especificación: El tamaño Mínimo es 10 el máximo 12

mostrar_en Parametrizado Requerido

Identificador de si el QR en el PDF se pinta en la primera pagina o en todas

Especificación: PRIMERA_PAGINA,TODAS

rg_px_cufe Objeto No_requerido

Información de configuración de CUFE en la representación grafica

Especificación: Si se envia el rg_base_64

x Numerico Requerido

Posicionamiento en x(abscisas) en el plano cartesiano en el cuarto cuadrante, es decir las columnas empezando de 0.

Especificación: Coordenada en pixeles en x desde la posición (0,0)

y Numerico Requerido

Posicionamiento en y(ordenadas) en el plano cartesiano en el cuarto cuadrante, es decir las filas empezando de 0.

Especificación: Coordenada en pixeles en y desde la posición (0,0)

size Numerico Requerido

Tamaño de la letra

Especificación: El tamaño Mínimo es 10 el máximo 12

mostrar_en Parametrizado Requerido

Identificador de si el CUFE/CUDE en el PDF se pinta en la primera pagina o en todas

Especificación: PRIMERA_PAGINA,TODAS

color String No_requerido

Color en hexadecimal

Especificación: 6 caracteres, sin el caracter #. El valor por defecto es negro (000000). Ejemplo FFFF00, FF0000, 0000FF

integrador Objeto Requerido

Información de quien envia la información

Especificación:

nombre Parametrizado Requerido

Nombre de quien realiza la integración

Especificación: S o N

tipo Parametrizado Requerido

Codigo del medio usado para realizar la integración

Especificación:

MOVIL

WEB

DLL

EXCEL

ERP-XXXXXXXXX

webhook String No_requerido

URL para notificar cuando ha ocurrido un evento. Esta se utiliza cuando los codigos de error del retorno del API son 28,20.

Especificación: URL con portocolo de seguridad - HTTPS

Estructura json

							{
    "informacion_documento": {
        "tipo_documento": "",
        "prefijo": "",
        "numero": ""
    },
    "generalidades": {
        "rg_tipo": "",
        "rg_base_64": "",
        "rg_px_qr": {
            "x": "",
            "y": "",
            "size": ""
        },
        "rg_px_cufe": {
            "x": "",
            "y": "",
            "size": ""
        },
        "integrador": {
            "nombre": "",
            "tipo": ""
        },
        "usuario": {
            "nombres": "",
            "identificacion": "",
            "correo_electronico": "",
            "cargo": "",
            "area": ""
        }
    }
}							

Estructura JSON de respuesta


Salida Exitosa



{
    "codigo_error": 0,
    "descripcion_error": "OK",
    "tiempo_ejecucion": 4.0554020404815674,
    "transaccion": "ODMwMDIwNDcw19212698956900eb2d965543",
    "resultado": {
        "url_representacion_grafica": "https://afacturar.archivamos.com/rerere/|1222332322343434345454/2020/10/24/ad01234567890.pdf"
    },
    "entorno": "Este documento se envia al entorno: DOCUMENTO_NO_VALIDO"
}							  
							 

Salida con errores de semantica



{
    "codigo_error": 400,
    "descripcion_error": "Afacturar dice: error en la estructura del json de data",
    "tiempo_ejecucion": 0.054193973541259766,
    "resultado": [
        {
            "propiedad": "informacion_documento.tipo_documento",
            "descripcion": "Does not have a value in the enumeration [\"FACTURA\",\"NOTA_CREDITO\",\"NOTA_DEBITO\"]"
        }
    ],
    "entorno": "Este documento se envia al entorno: DOCUMENTO_NO_VALIDO"
}
						
					  

Salida con errores de datos



{
    "codigo_error": 400,
    "descripcion_error": "Afacturar dice: el parametro de entrada data",
    "tiempo_ejecucion": 0.033145904541015625,
    "resultado": [
        {
            "propiedad": "Número de documento o id_transaccion",
            "descripcion": "El número SETTT990005466 informado no esta registrado en Afacturar.com"
        }
    ],
    "entorno": "Este documento se envia al entorno: DOCUMENTO_NO_VALIDO"
}									
						
						

Salida con errores HTTP



{
	"codigo_error": 500,
	"descripcion_error": "Unauthenticated."
}
						

Codigo de respuesta


Cuando usted hace un llamado a la API, puede recibir los siguientes mensajes de error en la respuesta. Puede que haya algo mal con su solicitud o puede que algo esté mal de nuestra parte. Los errores responden con un código de error y JSON que contiene un mensaje, una descripción y un código API más preciso.

Códigos de ERROR


Tabla de Errores
Código Estado Descripción Acción sugerida
28 Timeout La operación duro más de 60 seg
15 Error retornado por la DIAN La información enviada no cumple con el estandar del XML o los valores no estan bien calculados
400 Solicitud incorrecta Hay un problema con su solicitud Compruebe que su solicitud sigue la documentación de la API y utiliza la sintaxis correcta.
401 No autorizado No tiene la autorización necesaria para realizar la solicitud. Asegúrese de estar utilizando una clave API válida con los permisos necesarios para su solicitud.
403 Prohibido El servidor entendió la solicitud, pero se negó a cumplirla. Vea si su plan en Afacturar.com incluye el recurso que está solicitando y su clave API tiene las autorizaciones necesarias.
404 No encontrado El servidor no pudo encontrar el recurso solicitado. Cambie su URL de solicitud para que coincida con un punto final API válido.
405 Método no permitido El recurso no tiene el método especificado. (por ejemplo, PUT en las transmisiones) Cambie el método para seguir la documentación del recurso.
409 Conflicto Un conflicto surgió de su solicitud. (por ejemplo, el OFE no esta asociado al código de autorización) Modificar la carga útil para eliminar el conflicto..
415 Tipo de medio no admitido La solicitud no está en un formato compatible. Verifique que su encabezado Content-Type sea compatible y que su solicitud cumpla con la documentación.
422 Entidad no procesable La solicitud fue sintácticamente correcta pero falló debido a errores semánticos. Asegúrese de que su solicitud incluya todos los campos obligatorios y que sus datos sean válidos.
429 Exceder el límite de envío Se excede el numero de transacciones permitido (120 por minuto). Verifique que se encuentra dentro de los límites acordados con Afacturar.
500 Error de servidor interno Algo salió mal de nuestro lado. Pruebe la solicitud nuevamente más tarde. Si el error no se resuelve, póngase en contacto con el soporte técnico soporte@afacturar.com.
503 Servicio no disponible Estamos experimentando niveles de tráfico más altos de lo normal. Prueba la solicitud nuevamente, ya estamos enterado del problema para aumentar la capacidad.

Ejemplos


Ejemplo 1.

{
    "informacion_documento": {
        "tipo_documento": "FACTURA",
        "prefijo": "SETTT",
        "numero": "990005466"
    },
    "generalidades": {
        "rg_tipo": "PDF",
        "rg_base_64": "JVBERi0xLjcNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFuZyhlcy1DTykgL1N0cnVjdFRyZWVSb290IDE0NyAwIFIvTWFya0luZm88PC9NYXJrZWQgdHJ1ZT4+L01ldGFkYXRhIDc4MCAwIFIvVmlld2VyUHJlZmVyZW5jZXMgNzgxIDAgUj4+DQplbmRvYmoNCjIgMCBvYmoNCjw8L1R5cGUvUGFnZXMvQ291bnQgMS9LaWRzWyAzIDAgUl0gPj4NCmVuZG9iag0KMyAwIG9iag0KPDwvVHlwZS9QYWdlL1BhcmVudCAyIDAgUi9SZXNvdXJjZXM8PC9Gb250PDwvRjEgNSAwIFIvRjIgMTQwIDAgUj4+L0V4dEdTdGF0ZTw8L0dTNyA3IDAgUi9HUzggOCAwIFI+Pi9YT2JqZWN0PDwvSW1hZ2U5IDkgMCBSL0ltYWdlMTEgMTEgMCBSL0ltYWdlMTMgMTMgMCBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxFIvSURbPENFMEQzQUZCQUEzRThCNDQ5MkI5RjRGNEE3NzQ3NzdBPjxDRTBEM0FGQkFBM0U4QjQ0OTJCOUY0RjRBNzc0Nzc3QT5dIC9QcmV2IDUzMDk2MC9YUmVmU3RtIDUyOTEwMz4+DQpzdGFydHhyZWYNCjU0Njc4MQ0KJSVFT0Y=",
        "rg_px_qr": {
            "x": "180",
            "y": "240",
            "size": "30"
        },
        "rg_px_cufe": {
            "x": "30",
            "y": "237",
            "size": "10"
        },
        "integrador": {
            "nombre": "WEB",
            "tipo": "PRUEBA"
        },
        "usuario": {
            "nombres": "Usuario general",
            "identificacion": "8300000020",
            "correo_electronico": "info@teleinte.com",
            "cargo": "",
            "area": ""
        }
    }
}

Consumo del API


CURL

								curl --location 'https://servicios-PRUEBAS.afacturar.com/api/otros/regenerar_pdf_tx' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer TOKEN_CLIENTE' \
--form 'documento_obligado="830020470"' \
--form 'data="{
    \"informacion_documento\": {
        \"tipo_documento\": \"FACTURA\",
        \"prefijo\": \"SETT\",
        \"numero\": \"123456789\"
    },
    \"generalidades\": {
        \"rg_tipo\": \"PDF\",
        \"rg_base_64\": \"JVBERi0xLjcNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFuZy111111111111111111111111111111111222222222233333\",
        \"rg_px_qr\": {
            \"x\": \"180\",
            \"y\": \"240\",
            \"size\": \"30\"
        },
        \"rg_px_cufe\": {
            \"x\": \"30\",
            \"y\": \"237\",
            \"size\": \"10\"
        },
        \"integrador\": {
            \"nombre\": \"WEB\",
            \"tipo\": \"PRUEBA\"
        },
        \"usuario\": {
            \"nombres\": \"Usuario general\",
            \"identificacion\": \"830020470\",
            \"correo_electronico\": \"info@teleinte.com\",
            \"cargo\": \"\",
            \"area\": \"\"
        }
    }
}"'								

C#

								var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://servicios-PRUEBAS.afacturar.com/api/otros/regenerar_pdf_tx");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("Authorization", "Bearer TOKEN_CLIENTE");
var content = new MultipartFormDataContent();
content.Add(new StringContent("830020470"), "documento_obligado");
content.Add(new StringContent("{
    \"informacion_documento\": {
        \"tipo_documento\": \"FACTURA\",
        \"prefijo\": \"SETTT\",
        \"numero\": \"990005466\"
    },
    \"generalidades\": {
        \"rg_tipo\": \"PDF\",
        \"rg_base_64\": \"JVBERi0xLjcNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFuZyhlcy111111111111111111111111111111\",
        \"rg_px_qr\": {
            \"x\": \"180\",
            \"y\": \"240\",
            \"size\": \"30\"
        },
        \"rg_px_cufe\": {
            \"x\": \"30\",
            \"y\": \"237\",
            \"size\": \"10\"
        },
        \"integrador\": {
            \"nombre\": \"WEB\",
            \"tipo\": \"PRUEBA\"
        },
        \"usuario\": {
            \"nombres\": \"Usuario general\",
            \"identificacion\": \"830020470\",
            \"correo_electronico\": \"info@teleinte.com\",
            \"cargo\": \"\",
            \"area\": \"\"
        }
    }
}"), "data");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
								

Historico de cambios


Versión Cambios Fecha de liberación
1 Publicación API 28 de octubre de 2025