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

EndPoint


Método: POST

EndPoint:

Pruebas
https://servicios-pruebas.afacturar.com/api/v2/transacciones_emitidas_v3

Producción
https://servicios.afacturar.com/api/v2/transacciones_emitidas_v3

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

Descripción

Número de identificación del OFE - Obligado a facturar electronicamente.

Tipo de dato

Númerico.

Especificaciones

Debe estar registrado en servicios.afacturar.com

Obligatorio

Si

tipo_orden

Descripción

Tipo de orden

Tipo de dato

Parametrizado

Especificaciones

ASC, DESC

Obligatorio

Si

ordenado_por

Descripción

Campo por que el cual se va a ordenar

Tipo de dato

Parametrizado

Especificaciones

fc, uniqid, fecha_documento,

Obligatorio

Si

offset

Descripción

Desplazamiento dentro de una matriz o de otro tipo de estructura de datos objeto es un número entero que indica la distancia (desplazamiento) entre el comienzo del objeto y un elemento dado o punto, presumiblemente dentro del mismo objeto

Tipo de dato

Numerico

Especificaciones

El número de registro inicial es 0

Obligatorio

Si

cantidad_filas_por_consulta

Descripción

Cantidad de registros que se retornan en la consulta

Tipo de dato

Numerico

Especificaciones

Minimo 1

Obligatorio

Si

opcion_busqueda

Descripción

Opciones de busqueda

Tipo de dato

Json

Especificaciones

{ "fecha_recepcion_desde": "", "fecha_recepcion_hasta": "", "fecha_documento_desde": "", "fecha_documento_hasta": "", "tipo_factura_electronica": "", "entorno": "", "tipo_documento": "", "numero_documento": "", "uniqid": "", "prefijo": "" }

tipo_factura_electronica => Valores VP (Validación previa) ó 2242

entorno => PRODUCCION, HABILITACION ó DOCUMENTO_NO_VALIDO

tipo_documento => factura, factura_mandato, factura_exportacion, factura_contingencia, nota_credito, nota_debito

Obligatorio

No



Estructura JSON de respuesta


Salida Exitosa



{
	"codigo_error": 0,
	"descripcion_error": "OK",
	"tiempo_ejecucion": 0.012421131134033203,
	"transaccion": "5ea991336d99c",
	"resultado": [
		{
			"fc": "",
			"ip": "",
			"milseg_ejecucion": "",
			"tipo_documento": "",
			"uniqid": "",
			"prefijo": "",
			"numero_documento": "",
			"adquiriente_nombre": "",
			"adquiriente_documento": "",
			"fecha_documento": "",
			"url_representacion_xml": "",
			"url_representacion_pdf": "",
			"correo_adquiriente": "",
			"cufe": "",
			"url_rta_envio_dian": "",
			"consulta_doc_dian_estado": "EXITOSA",
			"consulta_doc_dian_url_rta": "",
			"aceptacion_rechazo_fecha": "",
			"aceptacion_rechazo_ip": "",
			"aceptacion_rechazo_estado": "",
			"aceptacion_rechazo_observaciones": "",
			"acuse_recibo": null,
			"acuse_recibo_fecha": null,
			"acuse_recibo_ip": null,
			"correos_enviados": 0,
			"entorno": "",
			"tipo_factura_electronica": "",
			"url_representacion_qr_svg": null,
			"valor_total": "",
			"rta_ws_dian_response": "",
			"application_response_url": null,
			"attached_document_url": null
		}
	]
}							  
							 
Salida con errores de semantica

{
	"codigo_error": 11,
	"descripcion_error": [
		"The ordenado por must be at least 5 characters.",
		"The tipo orden field is required."
	],
	"tiempo_ejecucion": 0.001461029052734375,
	"transaccion": "5ea9b70ca91a9"
}
							
Salida con errores de datos

{
    "codigo_error": 11,
    "descripcion_error": "El token no esta asociado al documento del obligado",
    "tiempo_ejecucion": 0.0034811496734619141,
    "transaccion": "5ea9b79777e59"
}							
							

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 -X POST \
  https://servicios.afacturar.com/api/v2/transacciones_emitidas_v3 \
  -H 'accept: application/json' \
  -H 'authorization: Bearer token_obligado' \
  -H 'cache-control: no-cache' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -H 'postman-token: d1851a0a-4e93-8392-2cb6-34641353cd6d' \
  -F documento_obligado=11111111 \
  -F offset=30 \
  -F cantidad_filas_por_consulta=30 \
  -F ordenado_por=fc \
  -F 'opcion_busqueda=0,0,0,0,0,0,0,0' \
  -F tipo_orden=ASC										

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