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

EndPoint


Método: POST

EndPoint:

Pruebas
https://servicios-pruebas.afacturar.com/api/radian/acuse_recibo_fev

Producción
https://servicios.afacturar.com/api/radian/acuse_recibo_fev

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


Acuse de recibo de FEV


evento Objeto Requerido

Información para el acuse de recibo de la factura electronica de venta

Especificación:

informacion_documento_referencia Objeto Requerido

Datos del documento de referencia

Especificación:

cufe String Requerido

CUFE de la factura a realizar el evento

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

quien_recibio_documento Objeto Requerido

Datos del usuario que recibio el documento

Especificación:

tipo_identificacion Parametrizado Requerido

Tipo de documento de identificación de la empresa o persona.

Especificación:

11= Registro civil

12= Tarjeta de identidad

13= Cedula ciudadania

21= Tarjeta de extranjería

22= Cedula de extranjería

31= NIT

41= Pasaporte

42= Documento de identificación extranjero

50= NIT de otro país

91=NUIP

identificacion String Requerido

Número completo de la identificación de la empresa o persona.

Especificación: String

nombres String Requerido

Nombres de la empresa o persona que recibe el documento

Especificación: Mínimo 3 caracteres.

apellidos String Requerido

Apellidos de la empresa o persona que recibe el documento

Especificación: Mínimo 3 caracteres.

cargo String No_requerido

Cargo de la persona que recibe el documento

Especificación: Mínimo 3 caracteres.

area String No_requerido

Area de la empresa o persona que recibe el documento

Especificación: Mínimo 3 caracteres.

generalidades Objeto Requerido

Generalidades

Especificación:

tipo_ambiente_dian Parametrizado Requerido

Ambiente de la DIAN al que se destina el documento enviado.

Especificación:

1= Producción

2= Pruebas

identificador_transmision String Requerido

Código único para identificar el paquete transmitido

Especificación: Mínimo 5 caracteres

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

							{
	"evento": [
		{
			"informacion_documento_referencia": {
				"cufe": ""
			},
			"quien_recibio_documento": {
				"tipo_identificacion": 0,
				"identificacion": "",
				"nombres": "",
				"apellidos": "",
				"cargo": "",
				"area": ""
			}
		}
	],
	"generalidades": {
		"tipo_ambiente_dian": 2,
		"identificador_transmision": "",
		"integrador": {
			"nombre": "",
			"tipo": ""
		}
	}
}							

Estructura JSON de respuesta


Salida Exitosa



{
    "codigo_error": 0,
    "descripcion_error": "OK",
    "tiempo_ejecucion": 43.793570995330811,
    "transaccion": "ODMwMDIwNDcw62d1ddf22a438",
    "resultado": {
        "cude": "0d2edd7be211e2bb6d93c8408fd03c17dbe1ad479aab3a2187f88c1480163bece48e19ce8941c813638aaec16a0152ee",
        "numero_evento": "1",
        "url_representacion_xml": "https://afacturar.archivamos.com/310c4707/1e552c715fe8f7e53626bd261ce6681d3db495f8/eventos/2022/07/15/ar08300204700552200000001.xml"
    },
    "entorno": "Este documento se envia al entorno: DOCUMENTO_NO_VALIDO",
    "ErrorMessage_DIAN": ""
}
							  
							 

Salida con errores de semantica



{
    "codigo_error": 400,
    "descripcion_error": "Hay un problema con la informacion entregada",
    "tiempo_ejecucion": 0.050529003143310547,
    "transaccion": "ODMwMDIwNDcw63992e98b9569",
    "resultado": [
        {
            "propiedad": "evento[0].quien_recibio_documento.apellidos",
            "descripcion": "The property apellidos is required"
        },
        {
            "propiedad": "evento[0].quien_recibio_documento",
            "descripcion": "The property apellido is not defined and the definition does not allow additional properties"
        }
    ],
    "entorno": "Este documento se envia al entorno: DOCUMENTO_NO_VALIDO",
    "ErrorMessage_DIAN": ""
}
						
					  

Salida con errores de datos



{
    "codigo_error": 400,
    "descripcion_error": "Hay problema(s) con la información entregada",
    "resultado": [
        [
            {
                "propiedad": "facturas->encabezado-> numero_resolucion_facturacion y  facturas->encabezado-> prefijo",
                "descripcion": "No exiten rangos de facturación para la resolución SET + 18760000001 "
            },
            {
                "propiedad": "facturas->fecha_vencimiento",
                "descripcion": "Si el metodo de pago es contado, la fecha de vencimiento debe ir vacia"
            }
        ]
    ]
}									
						
						

Salida con errores HTTP



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

Salida con error de datos en la DIAN



{
    "codigo_error": 15,
    "descripcion_error": "La validación en la DIAN devuelve error(es)",
    "tiempo_ejecucion": 2.0354418754577637,
    "transaccion": "ODMwMDIwNDcw63992ee79a8d0",
    "resultado": {
        "cude": "bbc64fda5d5036ccee50900729425968895fd12cf0af0d8a721651f0735d19d93022b17aaac11158d5581d970d3ad07e",
        "numero_evento": "PAR170",
        "url_representacion_xml": "https://afacturar.archivamos.com/310c4707/1e552c715fe8f7e53626bd261ce6681d3db495f8/eventos/2022/12/13/ar08300204700552200PAR170.xml",
        "fecha_evento": "2022-12-13 21:03:19"
    },
    "entorno": "Este documento se envia al entorno: DOCUMENTO_NO_VALIDO",
    "ErrorMessage_DIAN": "Regla: LGC01, Rechazo: Evento registrado previamenteRegla: AAG01a, Rechazo: "
}
						

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.


Ejemplo 1.

{
	"evento": [
		{
			"informacion_documento_referencia": {
				"cufe": "f46111923e8a010b647ed4192de51987ada7c2d18d136ab0184d66838c4ae9f5e9ca302f8e0d41fc0e5883357c2423a4"
			},
			"quien_recibio_documento": {
				"tipo_identificacion": 13,
				"identificacion": "1111111",
				"nombres": "Prueba",
				"apellidos": "Acuse de recibo",
				"cargo": "Cargo de la empresa",
				"area": "Area a la que pertenece el cargo"
			}
		}
	],
	"generalidades": {
		"tipo_ambiente_dian": 2,
		"identificador_transmision": "20220913_122843",
		"integrador": {
			"nombre": "WEB",
			"tipo": "WEB"
		}
	}
}

Consumo del API


CURL

								curl --location --request POST 'https://servicios-pruebas.afacturar.com/api/radian/acuse_recibo_fev' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer token_cliente' \
--form 'data="{
	\"evento\": [
		{
			\"informacion_documento_referencia\": {
				\"cufe\": \"f46fb7923e8a010b647ed4192de51987ada7c2d18d136ab0184d66838c4ae9f5e9ca302f8e0d41fc0e5883357c2423a4\"
			},
			\"quien_recibio_documento\": {
				\"tipo_identificacion\": 50,
				\"identificacion\": \"111111\",
				\"nombres\": \"Prueba\",
				\"apellidos\": \"Apellido\",
				\"cargo\": \"Cargo de la empresa\",
				\"area\": \"Area a la que pertenece el cargo\"
			}
		}
	],
	\"generalidades\": {
		\"tipo_ambiente_dian\": 2,
		\"identificador_transmision\": \"20220913_122843\",
		\"integrador\": {
			\"nombre\": \"WEB\",
			\"tipo\": \"WEB\"
		}
	}
}"' \
--form 'documento_obligado="888888888"'								

C#

								var client = new RestClient("https://servicios-pruebas.afacturar.com/api/radian/acuse_recibo_fev");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Accept", "application/json");
request.AddHeader("Authorization", "Bearer token_cliente");
request.AlwaysMultipartFormData = true;
request.AddParameter("data", "{
	\"evento\": [
		{
			\"informacion_documento_referencia\": {
				\"cufe\": \"f46fb7923e8a010b647ed4192de51987ada7c2d18d136ab0184d66838c4ae9f5e9ca302f8e0d41fc0e5883357c2423a4\"
			},
			\"quien_recibio_documento\": {
				\"tipo_identificacion\": 13,
				\"identificacion\": \"1111111\",
				\"nombres\": \"Prueba\",
				\"apellidos\": \"Apellido\",
				\"cargo\": \"Cargo de la empresa\",
				\"area\": \"Area a la que pertenece el cargo\"
			}
		}
	],
	\"generalidades\": {
		\"tipo_ambiente_dian\": 2,
		\"identificador_transmision\": \"20220913_122843\",
		\"integrador\": {
			\"nombre\": \"WEB\",
			\"tipo\": \"WEB\"
		}
	}
}");
request.AddParameter("documento_obligado", "88888888");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);								

Historico de cambios


Versión Cambios Fecha de liberación
1 Implementación del evento en FEV 12 de Diciembre de 2022