Todos los datos transferidos a través del HTTP BODY deben ser en formato JSON. El API FACTUN siempre responderá en formato JSON todos los datos que retorne en el HTTP BODY.
Error Interno: cuando ocurre una excepción no manejada, el API responderá con un HTTP CODE 500 (Internal Server Error) y normalmente adjunta un mensaje como el siguiente:
Ha ocurrido un error interno, por favor reintentar o contactar con Factun si el error persiste. Error: Nullable object must have a value.
El API tiene 7 métodos para documentos, aunque no es necesario invocar todos. A continuación se muestra la lógica a seguir dependiendo del estado del documento:
El API tiene 5 métodos para recepción. No es necesario invocar todos los métodos. A continuación se muestra la lógica a seguir dependiendo del estado de la recepción:
API FACTUN responde casi todos sus métodos serializando la clase Resultado. Esta clase es de enfoque genérico y se usa para informar el resultado casi todas las transacciones.
La clase Resultado almacena datos y mensajes (éxito y error).
Puede observar la clase Resultado en código c#:
public class Resultado
{
public bool exito { get; set; } //Indica si la transacción o acción se considera completamente exitosa o no
public int id { get; set; } //Cuando se trabaja con recursos, indica el identificador interno del recurso en la plataforma Factun
public Dictionary< string, string> data { get; set; } //Diccionario string key|value donde se devuelven datos.
public Dictionary< string, string> mensajes { get; set; } //Diccionario string key|value donde se devuelven únicamente mensajes y códigos de mensaje.
public Resultado()
{
this.data = new Dictionary< string, string>();
this.mensajes = new Dictionary< string, string>();
}
}
La propiedad data de muchos métodos incluye un valor llamado "estado_hacienda", la siguiente lista le ayudara a interpretar los valores de "estado_hacienda":
Permite obtener la información completa de un documento a partir de la clave del mismo.
HTTP METHOD: GET
URL de pruebas: https://dev.api.factun.com/api/V2/Documento/{clave}
URL de producción: https://api.factun.com/api/V2/Documento/{clave}
{clave}: El único parámetro aceptado. Debe ser enviada en el URL. Representa la clave numérica de 50 caracteres asociada al documento.
Deberá revisar que su clave esté completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponda a la sucursal y compañía a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un objeto JSON que representa al documento. Puede revisar la documentación del objeto aquí (Documento JSON Salida)
A continuación se muestra un ejemplo de una respuesta:
{ "numero_original": "123456", "tipo_documento": "01", "clave": "50616011900310137293500100001010000000456127254151", "estado_hacienda": "01 - Aceptado", "consecutivo": "456", "fecha_emision": "2019-01-16T03:52:00", "condicion_venta": "02", "numero_factura": "00100001010000000456", "plazo_credito": "23", "medio_pago": [ "01" ], "receptor": { "razon_social": "Un cliente", "identificacion": { "tipo": "01", "numero": "206380096" }, "identificacion_extranjero": null, "razon_comercial": "Ubitec", "ubicacion": { "provincia": "Alajuela", "canton": "Alajuela", "distrito": "ALAJUELA", "barrio": "Acequia Grande (parte)", "otras_senas": "Barrio San Roque" }, "telefono": { "codigo_pais": "506", "num_telefono": "85688785" }, "fax": null, "correo_electronico": "fedex@tucorreo.cr;oscar@tucorreo.cr" }, "detalle_servicio": [ { "numero_linea": 1, "tipo_codigo": "01", "codigo": "PROD-02", "cantidad": 7, "unidad_medida": "Unidad", "detalle": "Impresora Epson", "precio_unitario": 47500, "porcentaje_descuento": 4.21053, "monto_descuento": 2000, "naturaleza_descuento": "Oferta", "impuesto": [ { "codigo": "07", "tarifa": 6.5, "monto_impuesto": 2957.5, "exoneracion": { "tipo_documento": "01", "numero_documento": "2525", "nombre_institucion": "Institución", "fecha_emision": "2018-07-02T00:00:00", "porcentaje_exoneracion": 6.5, "monto_exoneracion": 2957.5 } } ], "subtotal_linea": 332500, "total_descuento_linea": 14000, "total_impuesto_linea": 20702.5, "total_linea": 339202.5, "servicio": true, "bonificacion": false } ], "resumen_documento": { "codigo_moneda": "CRC", "tipo_cambio": 578, "total_comprobante": 339202.5, "total_impuesto": 20702.5, "total_descuento": 14000 }, "informacion_referencia": [], "exito": true, "mensaje": "El documento fue obtenido exitosamente." }
Permite crear un documento. El documento se envía al ente gubernamental inmediatamente.
Esta es la llamada principal y el método de inicio. Sin documentos, no se puede realizar ninguna de las otras acciones.
Al utilizar esta llamada y otras, siempre este atento al estado_hacienda del documento, la interpretación de ese valor indica que hacer y que no hacer.
HTTP METHOD: POST
URL de pruebas: https://dev.api.factun.com/api/V2/Documento/Enviar
URL de producción: https://api.factun.com/api/V2/Documento/Enviar
DocumentoJSON: Objeto JSON con todos los metadatos del documento. Este JSON debe estar presente en el HTTP BODY.
Puede revisar la documentación del objeto aqui (Documento JSON Entrada)
A continuación se muestra un ejemplo del objeto JSON de entrada:
{ "id_externo": "123456", "tipo_documento": "01", "codigo_actividad": "721001", "fecha_emision": "2022-02-24T11:30:00", "receptor":{ "razon_social": "Juan Federico Gonzalez", "identificacion":{ "tipo": "01", "numero":"206380095" }, "identificacion_extranjero": null, "razon_comercial": "Juan", "ubicacion": { "provincia": "2", "canton": "01", "distrito": "01", "barrio": "01", "otras_senas": "Barrio San Roque 50 metros norte de la Escuela Juan Bautista" }, "telefono": { "codigo_pais": "506", "num_telefono": "85688785" }, "fax": null, "correo_electronico": "federico@compania.co.cr;amigos@compania.co.cr" }, "condicion_venta": "02", "plazo_credito": "23", "medio_pago": ["01"], "detalles":[ { "numero_linea": 1, "codigo": "4526300000000", "cantidad": 2, "unidad_medida": "Unid", "unidad_medida_comercial": null, "tipo_codigo_comercial": "04", "codigo_comercial": "IMP-02", "detalle": "Impresora Epson", "precio_unitario": 47500, "monto_descuento": 2000, "naturaleza_descuento": "Oferta", "impuesto": [{ "codigo": "01", "tarifa": 13, "codigo_tarifa": "08", "exoneracion": { "tipo_documento":"04", "numero_documento":"AL-00008244-22", "nombre_institucion": "Dirección General de Hacienda", "fecha_emision":"2022-02-11T00:00:00", "porcentaje_exoneracion": 13 } }], "bonificacion":false }], "resumen_documento": { "codigo_moneda": "CRC", "tipo_cambio": 640 } }
Deberá revisar que su clave está completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponsa a la sucursal y compania a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un objeto JSON que representa el estado de la transacción y del documento.
A continuación se muestra un ejemplo de una respuesta exitosa:
{ "exito": true, "id": 97683, "data": { "consecutivo": "4", "clave": "50624022200310137293500100001010000000692111651298", "numero_factura": "00100001010000000692", "estado_hacienda": "04", "moneda": "CRC", "total_comprobante": "97519" }, "mensajes": {} }Interpretacion del atributo data:
Pueden presentarse errores en los parámetros de entrada que generen el código de error "06-A" (usted recibirá una lista de atributos "param_[key]")
A continuación se muestra un ejemplo de una respuesta que indica que se detectaron errores de parámetros:
{ "exito": false, "id": 0, "data": {}, "mensajes": { "param_clave": "La clave del comprobante debe contener 50 caracteres.", "param_tipo_documento": "El tipo de documento no se puede reconocer.", "codigo_mensaje": "06-A", "mensaje": "Documento presenta errores", "detalle_mensaje": "Existen errores de validación inicial del documento y debe revisarse los parámetros de entrada de DocumentoJSON Entrada. Puede revisar los atributos param_[key] en la lista de mensajes." } }
Permite crear un documento exactamente igual al método enviar, la diferencia es que el documento se envía al ente gubernamental NO inmediatamente, sino de manera asíncrona.
Al utilizar esta llamada y otras, siempre este atento al estado_hacienda del documento, la interpretación de ese valor indica que hacer y que no hacer.
HTTP METHOD: POST
URL de pruebas: https://dev.api.factun.com/api/V2/Documento/EnviarAsync
URL de producción: https://api.factun.com/api/V2/Documento/EnviarAsync
Permite consultar el estado (respuesta) del ente gubernamental al documento y guardar la respuesta para el documento.
HTTP METHOD: PUT
URL de pruebas: https://dev.api.factun.com/api/V2/Documento/Consultar/{clave}
URL de producción: https://api.factun.com/api/V2/Documento/Consultar/{clave}
{clave}: El único parámetro aceptado. Debe ser enviada en el URL. Representa la clave numérica de 50 caracteres asociada al documento.
Deberá revisar que su clave está completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponda a la sucursal y compañía a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un objeto JSON que representa el estado de la transacción y del documento.
A continuación se muestra un ejemplo de una respuesta completamente exitosa con resolución RECHAZADO:
{ "exito": true, "id": 97684, "data": { "clave": "50611011900310137293500100001010000000453116322411", "detalle": "Este comprobante fue aceptado en el ambiente de pruebas, por lo cual no tiene validez para fines tributarios\n\nEl comprobante electrónico tiene los siguientes errores: \n\n[\ncodigo, mensaje, fila, columna\n-1, \"cvc-complex-type.2.4.a: Invalid content was found starting with element 'DetalleServicio'. One of '{\"https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica\":MedioPago}' is expected.\", 44, 20\n\n]", "resolucion": "RECHAZADO", "estado_hacienda": "03", "consecutivo": "453", "numero_documento": "00100001010000000453" }, "mensajes": {} }
A continuación se muestra una ejemplo de una respuesta completada exitosamente y con resolución ACEPTADO:
{ "exito": true, "id": 97685, "data": { "clave": "50611011900310137293500100001010000000454116322411", "detalle": "Este comprobante fue aceptado en el ambiente de pruebas, por lo cual no tiene validez para fines tributarios\n\ncodigo, mensaje, fila, columna\n-53, \"La hora indicada en la emisión del archivo XML no coincide con la hora oficial.\", 0, 0\n-37, \"Estimado obligado tributario los datos suministrados en provincia, cantón y distrito del 'emisor' no concuerdan con la información registrada en la Dirección General de Tributación, favor proceder actualizar sus datos.\", 0, 0\n", "resolucion": "ACEPTADO", "estado_hacienda": "01", "consecutivo": "454", "numero_documento": "00100001010000000454" }, "mensajes": {} }
A continuación se muestra una ejemplo de una respuesta completada pero hubo un error, ya que el documento no ha sido enviado aun:
{ "exito": false, "id": 88108, "data": { "clave": "50618071800310137293500100001010000000311135165178", "detalle": "No se pudo obtener resolución debio a error. El comprobante [50618071800310137293500100001010000000311135165178] no ha sido recibido.", "resolucion": "No se pudo obtener el estado", "estado_hacienda": "04", "consecutivo": "311", "numero_documento": "00100001010000000311" }, "mensajes": { "detalle_mensaje": "El comprobante [50618071800310137293500100001010000000311135165178] no ha sido recibido.", "mensaje": "El ente gubernamental informa un error", "codigo_mensaje": "03" } }
Permite consultar el estado del documento dentro del proceso automático (para documentos creados por EnviarAsync).
HTTP METHOD: PUT
URL de pruebas: https://dev.api.factun.com/api/V2/Documento/ConsultarAsync/{clave}
URL de producción: https://api.factun.com/api/V2/Documento/ConsultarAsync/{clave}
{clave}: El único parámetro aceptado. Debe ser enviada en el URL. Representa la clave numérica de 50 caracteres asociada al documento.
Deberá revisar que su clave está completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponda a la sucursal y compañía a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un objeto JSON que representa el estado de la transacción y del documento.
A diferencia del método normal de Consultar, este no realiza un llamado o Request a hacienda, si no que retorna el estado actual del documento en el proceso asíncrono de envio y consulta.
A continuación se muestra un ejemplo de una respuesta exitosa cuando el documento se está enviando:
{ "exito": true, "id": 97684, "data": { "clave": "50620091900310137293500100001010000000453116322411", "estado_hacienda": "09", "consecutivo": "453", "numero_documento": "00100001010000000453" }, "mensajes": { "detalle_mensaje": "Por favor, espere, el proceso automático esta enviando el documento."} }
A continuación se muestra una ejemplo de una respuesta exitosa cuando el documento ya fué enviado:
{ "exito": true, "id": 97684, "data": { "clave": "50620091900310137293500100001010000000453116322411", "estado_hacienda": "04", "consecutivo": "453", "numero_documento": "00100001010000000453" }, "mensajes": { "detalle_mensaje": "Por favor, espere, el proceso automático esta consultando el documento."} }
A continuación se muestra una ejemplo de una respuesta exitosa y con resolución ACEPTADO:
{ "exito": true, "id": 97685, "data": { "clave": "50611011900310137293500100001010000000454116322411", "detalle": "Este comprobante fue aceptado en el ambiente de pruebas, por lo cual no tiene validez para fines tributarios\n\ncodigo, mensaje, fila, columna\n-53, \"La hora indicada en la emisión del archivo XML no coincide con la hora oficial.\", 0, 0\n-37, \"Estimado obligado tributario los datos suministrados en provincia, cantón y distrito del 'emisor' no concuerdan con la información registrada en la Dirección General de Tributación, favor proceder actualizar sus datos.\", 0, 0\n", "resolucion": "ACEPTADO", "estado_hacienda": "01", "consecutivo": "454", "numero_documento": "00100001010000000454" }, "mensajes": { "detalle_mensaje" : "Consulta de documento exitosa." } }
Permite reenviar un documento al ente gubernamental cuando el método regular de enviar notifica un error y retorna el documento como NO ENVIADO (05).
HTTP METHOD: PUT
URL de pruebas: https://dev.api.factun.com/api/V2/Documento/Reenviar/{clave}
URL de producción: https://api.factun.com/api/V2/Documento/Reenviar/{clave}
{clave}: El único parámetro aceptado. Debe ser enviada en el URL. Representa la clave numérica de 50 caracteres asociada al documento.
Deberá revisar que su clave está completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponda a la sucursal y compania a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un objeto JSON que representa el estado de la transacción y del documento.
A continuación se muestra un ejemplo de una respuesta exitosa, este método retorna la misma respuesta que el enviar:
{ "exito": true, "id": 97686, "data": { "consecutivo": "455", "clave": "50611011900310137293500100001010000000455116322411", "numero_factura": "00100001010000000455", "moneda": "CRC", "total_comprobante": "339202.50000", "estado_hacienda": "04" } }
A continuación se muestra un ejemplo de una respuesta no exitosa, porque se trato de reenviar un documento que ya estaba enviado:
{ "exito": false, "id": 97686, "data": { "consecutivo": "455", "clave": "50611011900310137293500100001010000000455116322411", "numero_factura": "00100001010000000455", "moneda": "CRC", "total_comprobante": "339202.50000", "estado_hacienda": "04" }, "mensajes": { "detalle_mensaje": "El documento con la clave 50611011900310137293500100001010000000455116322411 ya fue enviado al ente gubernamental.", "mensaje": "Peticion Duplicada", "codigo_mensaje": "07" } }
Permite reenviar un documento al ente gubernamental cuando el método regular de enviar notifica un error y retorna el documento como NO ENVIADO (05).
Se hace el reenvío por medio del sistema asíncrono.
HTTP METHOD: PUT
URL de pruebas: https://dev.api.factun.com/api/V2/Documento/ReenviarAsync/{clave}
URL de producción: https://api.factun.com/api/V2/Documento/ReenviarAsync/{clave}
Permite reenviar una notificación de correo para un documento, ya sea a toda la lista original mas otros destinarios o solamente a unos nuevos destinarios.
La notificación es un correo electrónico de info@factun.com que informa acerca de la creación del documento y adjunta los 3 archivos esperados: 1 pdf del documento, 1 xml que representa el documento, 1 xml de la respuesta del ente gubernamental.
HTTP METHOD: POST
URL de pruebas: https://dev.api.factun.com/api/V2/Documento/Notificar
URL de producción: https://api.factun.com/api/V2/Documento/Notificar
DocumentoJSON: Objeto JSON con todos los metadatos del documento. Este JSON debe estar presente en el HTTP BODY.
Puede revisar la documentación del objeto aqui (Notificacion JSON Entrada)
A continuación se muestra un ejemplo del objeto JSON de entrada:
{ "resolucion" : 1, "detalle" : "yo acepto este documento", "clave_recepcion": "50620071800310137293500100001050000000006110694040", "xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTg..." }
Destinario es requerido. Debe indicar los correos separados por punto y coma(;). Esto aplica cuando "nuevo_envio" es TRUE.
Destinarios incorrectos o inválidos. Solamente se aceptan correos electrónicos válidos separados por punto y coma (;). Evite espacios en la cadena.
Deberá revisar que su clave está completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponda a la sucursal y compania a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un objeto JSON que representa el estado de la transacción y del documento.
A continuación se muestra un ejemplo de una respuesta:
{ "exito": true, "id": 4025, "data": {}, "mensajes": {} }
A continuación se muestra un ejemplo de una respuesta NO exitosa:
{ "exito": false, "id": 0, "data": {}, "mensajes": { "detalle_mensaje": "Debe indicar los correos separados por punto y coma(;).", "mensaje": "Destinario es requerido", "codigo_mensaje": "15" } }
Permite obtener el XML creado por Factun utilizando la clave del documento.
HTTP METHOD: GET
URL de pruebas: https://dev.api.factun.com/api/V2/Documento/XML/{clave}
URL de producción: https://api.factun.com/api/V2/Documento/XML/{clave}
{clave}: El único parámetro aceptado. Debe ser enviada en el URL. Representa la clave numérica de 50 caracteres asociada al documento.
Deberá revisar que su clave está completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponda a la sucursal y compania a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un xml plano.
Observe un ejemplo del contenido en RESPONSE BODY de la llamada:
Permite obtener el XML de respuesta del ente gubernamental utilizando la clave del documento.
HTTP METHOD: GET
URL de pruebas: https://dev.api.factun.com/api/V2/Documento/RespuestaXML/{clave}
URL de producción: https://api.factun.com/api/V2/Documento/RespuestaXML/{clave}
{clave}: El único parámetro aceptado. Debe ser enviada en el URL. Representa la clave numérica de 50 caracteres asociada al documento.
Deberá revisar que su clave está completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponda a la sucursal y compania a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un xml plano.
Observe un ejemplo del contenido en RESPONSE BODY de la llamada:
Las correos electrónicos con xml que se envían para que su compañía realice una recepción, pueden reenviarse a recepcion@factun.com, estos los conocemos como recepciones del buzón o borradores
Permite obtener la lista actualizada de los borradores recibidos PENDIENTES DE ACCION (esto es que no han sido actualizados como Importados o Descartados) en el buzón de recepciones que aplican para la compania a la cual el token representa.
HTTP METHOD: GET
URL de pruebas: https://dev.api.factun.com/api/V2/Recepcion/Borradores
URL de producción: https://api.factun.com/api/V2/Recepcion/Borradores
Sin parámetros
La salida será un objeto JSON que representa una lista de borradores.
Puede revisar la documentación del objeto aquí (RecepcionBorradorLista JSON Salida)
A continuación se muestra un ejemplo de una respuesta exitosa:
[ { "id": 9, "fecha_documento": "2019-02-01T09:30:57", "tipo_documento": "01", "clave_documento": "50601021900310174006200100001010000000947151840232", "numero_documento": "00100001010000000947", "emisor_nombre": "Empresa S.A.", "emisor_nombre_comercial": null, "emisor_identificacion": "3101740065", "codigo_moneda": "CRC", "total_comprobante": 50000, "fecha_creacion": "2019-02-13T10:38:09" } ]
Permite obtener todos los datos de un borrador específico
HTTP METHOD: GET
URL de pruebas: https://dev.api.factun.com/api/V2/Recepcion/Borradores/{id}
URL de producción: https://api.factun.com/api/V2/Recepcion/Borradores/{id}
{id}: Identificador único de la recepción del buzón o borrador.
Deberá revisar que su id sea correcto.
Deberá revisar que el borrador solicitado este dentro del contexto correcto, o sea, que corresponda a la compañia a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un objeto JSON que representa una lista de borradores.
Puede revisar la documentación del objeto aqui (RecepcionBorrador JSON Salida)
A continuación se muestra un ejemplo de una respuesta exitosa:
{ "id": 9, "fecha_documento": "2019-02-01T09:30:57", "xml": "PD94bWwgdmVyc2...", "tipo_documento": "01", "clave_documento": "50601021900310174006200100001010000000947151840232", "numero_documento": "00100001010000000947", "emisor_nombre": "Empresa S.A.", "emisor_nombre_comercial": null, "emisor_identificacion": "3101740062", "codigo_moneda": "CRC", "total_comprobante": 50000, "fecha_creacion": "2019-02-13T10:38:09", "importado": false, "descartado": false, "accion_aplicada_por": null, "fecha_accion": null }
Permite actualizar los datos de muchos borradores. Esto permite una secuencia en el flujo, ya que al obtener los borradores con el GET, el usuario podra marcarlos para importar o descartar, finalmente esas acciones podra enviarlas a Factun por medio de este método.
HTTP METHOD: PUT
URL de pruebas: https://dev.api.factun.com/api/V2/Recepcion/Borradores
URL de producción: https://api.factun.com/api/V2/Recepcion/Borradores
[ {RecepcionAccionBorrador}, {RecepcionAccionBorrador}, ... ]: Arreglo de elementos de la clase (RecepcionAccionBorradorJSON Entrada). Esto permite enviar una o muchas acciones.
A continuación se muestra un ejemplo del JSON de entrada:
[ { "id": 8, "accion": "IMPORTAR", "resolucion": "ACEPTADO" }, { "id": 9, "accion": "DESCARTAR", "resolucion": "" } ]
La salida será un objeto JSON que representa el estado de la transacción.
Para mas detalles de la clase Resultado: aqui
A continuación se muestra un ejemplo de una respuesta exitosa:
{ "exito": true, "id": 0, "data": {}, "mensajes": {} }
A continuación se muestra un ejemplo de un error de validación:
{ "exito": false, "id": 0, "data": {}, "mensajes": { "codigo_mensaje": "18-D", "mensaje": "El siguiente borrador no pertenece a la compania de su cuenta: 7", "detalle_mensaje": "Por favor validar el identificador unico del borrador." } }
Permite la recepción de documentos por medio de API FACTUN. Este método permite subir el XML de un documento emitido hacia usted y enviar al ente gubernamental su resolución (Aceptado, Aceptado Parcialmente, Rechazado).
HTTP METHOD: POST
URL de pruebas: https://dev.api.factun.com/api/V2/Recepcion/Procesar
URL de producción: https://api.factun.com/api/V2/Recepcion/Procesar
RecepcionJSON: Objeto JSON con todos los metadatos necesarios para tramitar una recepción. Este JSON debe estar presente en el HTTP BODY.
Puede revisar la documentación del objeto aqui (Recepcion JSON Entrada)
A continuación se muestra un ejemplo del objeto JSON de entrada:
{ "resolucion" : 1, "detalle" : "yo acepto este documento", "clave_recepcion": "50620071800310137293500100001050000000006110694040", "xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTg..." }
La clave del comprobante debe contener 50 caracteres. La clave no cumple con los requerimientos necesarios.
El XML a procesar es requerido. El objeto JSON no tiene presente la propiedad xml.
El largo del detalle no puede ser mas de 80 caracteres. El largo del detalle no cumple con las especificaciones.
La resolución debe ser 1:Aceptado, 2:Aceptado Parcialmente o 3:Rechazado. El número de resolucion no corresponde a los valores correctos.
Deberá revisar que su clave está completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponda a la sucursal y compañia a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un objeto JSON que representa el estado de la transacción y del documento.
Para mas detalles de la clase Resultado: aqui
A continuación se muestra un ejemplo de una respuesta exitosa:
{ "exito": true, "id": 279, "data": { "clave_recepcion": "50620071800310137293500100001050000000006110694040", "fecha_resolucion": "2019-01-10T15:02:04", "estado_recepcion": "ENVIADO" }, "mensajes": {} }Interpretacion del atributo data:
A continuación se muestra un ejemplo de una respuesta NO exitosa:
{ "exito": false, "id": 279, "data": { "clave_recepcion": "50620071800310137293500100001050000000006110694040", "fecha_resolucion": "2019-01-10T15:02:04", "estado_recepcion": "NO_ENVIADO" }, "mensajes": { "codigo_mensaje": "14" "mensaje": "Error al enviar la recepcion al ente gubernamental", "detalle": "{datos extra del error}" } }
Permite reenviar una recepción existente que este NO ENVIADA al ente gubernamental debido usualmente a un error al enviar en el método procesar.
HTTP METHOD: POST
URL de pruebas: https://dev.api.factun.com/api/V2/Recepcion/Reenviar/{clave}
URL de producción: https://api.factun.com/api/V2/Recepcion/Reenviar/{clave}
{clave}: El único parámetro aceptado. Debe ser enviada en el URL. Representa la clave numérica de 50 caracteres asociada a la recepción.
Deberá revisar que su clave está completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponda a la sucursal y compania a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un objeto JSON que representa el estado de la transacción y del documento.
Para mas detalles de la clase Resultado: aqui
A continuación se muestra un ejemplo de una respuesta exitosa:
{ "exito": true, "id": 277, "data": { "clave_recepcion": "50620071800310137293500100001050000000006110694040", "fecha_resolucion": "2019-01-10T15:54:25", "estado_recepcion": "ENVIADO" }, "mensajes": {} }Interpretacion del atributo data:
A continuación se muestra un ejemplo de una respuesta NO exitosa:
{ "exito": false, "id": 279, "data": { "clave_recepcion": "50620071800310137293500100001050000000006110694040", "fecha_resolucion": "2019-01-10T15:02:04", "estado_recepcion": "NO_ENVIADO" }, "mensajes": { "codigo_mensaje": "14" "mensaje": "Error al enviar la recepcion al ente gubernamental", "detalle": "{datos extra del error}" } }
Permite consultar el estado (respuesta) del ente gubernamental para una recepción y guarda la respuesta para la recepción.
HTTP METHOD: PUT
URL de pruebas: https://dev.api.factun.com/api/V2/Recepcion/Consultar/{clave}
URL de producción: https://api.factun.com/api/V2/Recepcion/Consultar/{clave}
{clave}: El único parámetro aceptado. Debe ser enviada en el URL. Representa la clave numérica de 50 caracteres asociada al documento.
Deberá revisar que su clave está completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponda a la sucursal y compania a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un objeto JSON que representa el estado de la transacción y del documento.
A continuación se muestra un ejemplo de una respuesta exitosa:
{ "exito": true, "id": 277, "data": { "clave": "50620071800310137293500100001050000000006110694040", "estado_hacienda": "08", "numero_documento": "00100001050000000006" }, "mensajes": { "detalle_mensaje": null, "mensaje": "PROCESANDO", "codigo_mensaje": "0" } }Interpretacion del atributo data:
Permite obtener el XML creado en Factun utilizando clave de la recepción.
HTTP METHOD: GET
URL de pruebas: https://dev.api.factun.com/api/V2/Recepcion/XML/{clave}
URL de producción: https://api.factun.com/api/V2/Recepcion/XML/{clave}
{clave}: El único parámetro aceptado. Debe ser enviada en el URL. Representa la clave numérica de 50 caracteres asociada al documento.
Deberá revisar que su clave está completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponda a la sucursal y compania a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un XML plano.
Observe un ejemplo del contenido en RESPONSE BODY de la llamada:
Permite obtener el XML de respuesta del ente gubernamental utilizando la clave de la recepción.
HTTP METHOD: GET
URL de pruebas: https://dev.api.factun.com/api/V2/Recepcion/RespuestaXML/{clave}
URL de producción: https://api.factun.com/api/V2/Recepcion/RespuestaXML/{clave}
{clave}: El único parámetro aceptado. Debe ser enviada en el URL. Representa la clave numérica de 50 caracteres asociada al documento.
Deberá revisar que su clave está completa y es correcta.
Deberá revisar que la clave sea de un documento que esté dentro del contexto correcto, o sea, que corresponda a la sucursal y compania a la cual el token representa.
Nadie debería intentar acceder a documentos que no le pertenecen.
La salida será un XML plano.
Observe un ejemplo del contenido en RESPONSE BODY de la llamada: