API en REST con objeto Json
Método de facturación en servicio RESTApi, una manera muy sencilla de emitir tus CFDI, con FactuPronto
En esta modalidad de facturación puedes de una manera muy sencilla y rápida emitir facturas electrónicas desde tu aplicación.
Aplicación REST
En un par de pasos podrás validar rápidamente tus peticiones WebServices, y comprobar si se genero correctamente el CFDI obteniendo el XML y un link de descarga de la representación impresa en PDF.
Lo primero que necesitas es solicitar tus credenciales de acceso para poder iniciar tus pruebas. Debes proporcionar un Email, este será utilizado para generar tu usuario y se te asignara una contraseña(podrás modificarla una ves que tengas acceso), toda la información y documentación la recibirás al Email que ahora será tu usuario.
Debes compartirnos los datos de la Empresa para que estos queden relacionados a tus credenciales y los datos se utilicen como datos de Emisor en la generación de los CFDI´s, (Razón Social, RFC, Lugar de Expedición, entre otros obligatorios para la emisión de CFDI´s).
Una ves obtenidas tus credenciales ya podrás realizar pruebas de envió y obtener tus CFDI´s
¿Como iniciar mis pruebas de facturación con el método REST?
Puedes utilizar herramientas de paga o herramientas de tu agrado para el metodo de envió RESTApi al servicio Web de FactuPronto, es a tu elección.
Pero te podemos recomendar una herramienta gratuita y es muy útil para poder iniciar tus pruebas rápidamente, esta es una extensión o complemento de Google Chrome, aquí te dejamos el link: https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?hl=es-419
Servicios Disponibles:
/login
Permite obtener el API (llave de acceso al sistema) método GET
*la sesión le permite ejecutar otros recursos, si hay inactividad de solicitudes por mas de 10 minutos deberá volver a pedir nuevo acceso Además puede salir de la sesión con el método DELETE
/timbrar33
Permite obtener la generación y certificación de un CFDi ya autorizado por el SAT
/cancelar
Permite la cancelación de un CFDi directo con el SAT
/perfilempresa
Permite obtener (método GET) los datos de la empresa y actualizarlos (método PUT)
Con esta herramienta o con cualquier herramienta de tu eleccion, lo primero es autenticar el usuario y ver si las credenciales son correctas o si esta activa la cuenta.
Veamos un poco como funciona y como lo puedes hacer tu con la herramienta Advanced REST client
http://servidor/morpheus/ng_jer/ws/login
Servicio: /login
Método GET : Se obtiene el acceso a la plataforma REST API
El valor api se deberá usar en el resto de las operaciones a fin de validar el acceso
* Si no hay actividad por 10 minutos la sesión queda invalida y se deberá ejecutar de nuevo el recurso.
Ejemplo de servicio /login
Con la Herramienta AdvancedRest Client

http://servidor/morpheus/ng_jer/ws/
/timbrar33
Método POST: Se obtiene el CFDi ya terminado y la liga(URL) con la representación en PDF
Tabla de códigos de error
http://servidor/morpheus/ng_jer/ws/
/timbrar33
Método POST: Se obtiene el CFDi ya terminado y la liga(URL) con la representación en PDF
Ejemplo de servicio /timbrar33
Con la Herramienta Advanced Rest Client
En la pestaña Header agregamos la siguiente información *
En la pestaña Body agregamos la siguiente información *
A continuación veremos los elementos del objeto Json Request
Cada elemento marcado en rojo es un elemento requerido para un CFDI
Cada elemento marcado en rojo es un elemento requerido para un CFDI
Cada elemento marcado en rojo es un elemento requerido para un CFDI
Para procesar una cancelación de un CFD
http://servidor/morpheus/ng_jer/ws/login
/cancelar/UUID (identificador uuid a cancelar)
Consulta y edición de empresa Emisora
Consulta y edición de datos de empresa emisora
En ADD HEADER podemos agregar los parámetros RFC y api, que son necesarios para realizar la consulta.
Te compartimos algunos ejemplos de objetos Json para que pruebes combinaciones de elementos.
Ejemplo CFDI con documentos relacionados:
{
"complementos": [],
"partidas": [
{
"cantidad":
1,
"unidad":
"PIEZA",
"descripcion": "EJEMPLO DE
DESCRIPCION PARA EL CONCEPTO",
"ClaveProdServ":
"51142405",
"valorUnitario": 34.92,
"importe":
34.92,
"noIdentificacion":
"",
"ClaveUnidad":
"H87",
"Descuento":
8.73,
"comentario":
"",
"aduana":
"",
"pedimentonumero": "",
"pedimentofecha":
"",
"cuentapredial":
"",
"extra1": "",
"extra2":
"",
"extra3":
"",
"extra4":
"",
"extra5":
"",
"impuestos":
[],
"retenciones":
[]
}
],
"RFCemisor": "LAN8507268IA",
"expedicion": "00000",
"serieid": "A",
"RFCreceptor": "TUCA1306265N9",
"razonsocial": "MI EMPRESA A FACTURAR",
"numext": "133",
"numint": "0",
"calle": "CALLE DE EMPRESA RECEPTORA",
"colonia": "COLONIA DE EMPRESA
RECEPTORA",
"ciudad": "CIUDAD DE EMPRESA RECEPTORA",
"estado": "ESTADO DE EMPRESA RECEPTORA",
"codigopostal": "9400",
"pais": "MÉXICO",
"telefono": "",
"contacto": "",
"email": "",
"tipoDeComprobante": "I",
"formaDePago": "01",
"NumCtaPago": "",
"subTotal": 34.92,
"Descuento": 8.73,
"TipoCambio": 1,
"Moneda": "MXN",
"total": 26.19,
"metodoDePago": "PUE",
"condicionesDePago": "Contado",
"cfdirelacionado": {
"TipoRelacion":
"04",
"CfdiRelacionado": [
{
"UUID":
"XXXXXXXX-49F3-4316-824B-A1D9FBF7AF66"
}
]
},
"observaciones": "",
"Confirmacion": "",
"RegimenFiscal": "601",
"UsoCFDI": "P01",
"implocal": null
}
Ejemplo CFDI basico:
{
"complementos": [],
"partidas": [
{
"cantidad":
1,
"unidad":
"PIEZA",
"descripcion": "EJEMPLO DE
DESCRIPCION PARA EL CONCEPTO",
"ClaveProdServ":
"51142405",
"valorUnitario": 34.92,
"importe":
34.92,
"noIdentificacion":
"",
"ClaveUnidad":
"H87",
"Descuento":
8.73,
"comentario":
"",
"aduana":
"",
"pedimentonumero": "",
"pedimentofecha":
"",
"cuentapredial":
"",
"extra1": "",
"extra2":
"",
"extra3":
"",
"extra4":
"",
"extra5":
"",
"impuestos":
[],
"retenciones":
[]
}
],
"RFCemisor": "LAN8507268IA",
"expedicion": "00000",
"serieid": "A",
"RFCreceptor": "TUCA1306265N9",
"razonsocial": "MI EMPRESA A FACTURAR",
"numext": "133",
"numint": "0",
"calle": "CALLE DE EMPRESA RECEPTORA",
"colonia": "COLONIA DE EMPRESA
RECEPTORA",
"ciudad": "CIUDAD DE EMPRESA RECEPTORA",
"estado": "ESTADO DE EMPRESA RECEPTORA",
"codigopostal": "9400",
"pais": "MÉXICO",
"telefono": "",
"contacto": "",
"email": "",
"tipoDeComprobante": "I",
"formaDePago": "01",
"NumCtaPago": "",
"subTotal": 34.92,
"Descuento": 8.73,
"TipoCambio": 1,
"Moneda": "MXN",
"total": 26.19,
"metodoDePago": "PUE",
"condicionesDePago": "Contado",
"cfdirelacionado": {},
"observaciones": "",
"Confirmacion": "",
"RegimenFiscal": "601",
"UsoCFDI": "P01",
"implocal": null
}
Ejemplo CFDI complemento de pagos:
{
"complementos": {
"Complementos33": {
"Pagos10": [
{
"FechaPago": "2019-11-11T11:52:14",
"FormaDePagoP": "01",
"MonedaP": "MXN",
"TipoCambioP": null,
"Monto": "2310.5",
"NumOperacion": null,
"RfcEmisorCtaOrd": null,
"NomBancoOrdExt": null,
"CtaOrdenante": null,
"CtaBeneficiario": null,
"TipoCadPago": null,
"CertPago": null,
"CadPago": null,
"SelloPago": null,
"DoctoRelacionado": [
{
"IdDocumento": "XXXXXXXX-1D7D-4B83-B858-70BC7E88A7C5",
"Folio": "1921",
"MetodoDePagoDR": "PPD",
"MonedaDR": "MXN",
"ImpPagado": "841.50",
"NumParcialidad": "1",
"ImpSaldoAnt": "841.50",
"ImpSaldoInsoluto": "0",
"Serie": "B"
},
{
"IdDocumento": "XXXXXXXX-1148-41FA-BBC4-D3E3E5BC3130",
"Folio": "1922",
"MetodoDePagoDR": "PPD",
"MonedaDR": "MXN",
"ImpPagado": "722.00",
"NumParcialidad": "1",
"ImpSaldoAnt": "722.00",
"ImpSaldoInsoluto": "0",
"Serie": "B"
},
{
"IdDocumento": "XXXXXXXX-C932-4995-A15D-5363D799E9E1",
"Folio": "1923",
"MetodoDePagoDR": "PPD",
"MonedaDR": "MXN",
"ImpPagado": "747.00",
"NumParcialidad": "1",
"ImpSaldoAnt": "747.00",
"ImpSaldoInsoluto": "0",
"Serie": "B"
}
]
}
]
}
},
"partidas": [
{
"cantidad": 1,
"unidad": null,
"descripcion": "Pago",
"ClaveProdServ": "84111506",
"valorUnitario": 0,
"importe": 0,
"noIdentificacion": "",
"ClaveUnidad": "ACT",
"Descuento": 0,
"comentario": "",
"aduana": "",
"pedimentonumero": "",
"pedimentofecha": "",
"cuentapredial": "",
"extra1": "",
"extra2": "",
"extra3": "",
"extra4": "",
"extra5": "",
"impuestos": [],
"retenciones": []
}
],
"RFCemisor": "LAN8507268IA",
"expedicion": "00000",
"serieid": "B",
"RFCreceptor": "TUCA1306265N9",
"razonsocial": "MI EMPRESA A FACTURAR",
"numext": "",
"numint": "",
"calle": "",
"colonia": "",
"ciudad": "",
"estado": "",
"codigopostal": "9400",
"pais": "",
"telefono": "",
"contacto": "",
"email": "",
"tipoDeComprobante": "P",
"formaDePago": "",
"NumCtaPago": "",
"subTotal": 2310.5,
"Descuento": 0,
"TipoCambio": 1,
"Moneda": "XXX",
"total": 2310.5,
"metodoDePago": "",
"condicionesDePago": "",
"observaciones": "",
"Confirmacion": null,
"RegimenFiscal": "601",
"UsoCFDI": "P01",
"implocal": null
}
Ejemplo CFDI Nota de Credito o Egreso:
{
"complementos": [],
"partidas": [
{
"cantidad": 1,
"unidad": "PIEZA",
"descripcion": "TABCIN TAB C12",
"ClaveProdServ": "51142405",
"valorUnitario": 34.92,
"importe": 34.92,
"noIdentificacion": "",
"ClaveUnidad": "H87",
"Descuento": 8.73,
"comentario": "",
"aduana": "",
"pedimentonumero": "",
"pedimentofecha": "",
"cuentapredial": "",
"extra1": "",
"extra2": "",
"extra3": "",
"extra4": "",
"extra5": "",
"impuestos": [],
"retenciones": []
}
],
"RFCemisor": "LAN8507268IA",
"expedicion": "00000",
"serieid": "B",
"RFCreceptor": "TUCA1306265N9",
"razonsocial": "MI EMPRESA A FACTURAR",
"numext": "",
"numint": "",
"calle": "",
"colonia": "",
"ciudad": "",
"estado": "",
"codigopostal": "9400",
"pais": "",
"telefono": "",
"contacto": "",
"email": "",
"tipoDeComprobante": "E",
"formaDePago": "01",
"NumCtaPago": "",
"subTotal": 34.92,
"Descuento": 8.73,
"TipoCambio": 1,
"Moneda": "MXN",
"total": 26.19,
"metodoDePago": "PUE",
"condicionesDePago": "Contado",
"cfdirelacionado": {
"TipoRelacion": "04",
"CfdiRelacionado": [
{
"UUID": "XXXXXXXX-49F3-4316-824B-A1D9FBF7AF66"
}
]
},
"observaciones": "",
"Confirmacion": "",
"RegimenFiscal": "601",
"UsoCFDI": "P01",
"implocal": null
}
Estos son algunos ejemplos de todas las combinaciones que puedes crear de acuerdo a tus necesidades
De esta manera tan sencilla puedes realizar pruebas y obtener tus CFDI´s, una ves terminadas tus pruebas ahora podrás emitir CFDI´s en producción y conectar a todos tus usuarios fácil y rápido “La Factura electrónica entre mas pronto mejor”
Para mas información o si deseas obtener tus credenciales puedes contactarnos en el teléfono: 81570070 o solicitar tus credenciales de prueba al correo: desarrollo@factupronto.com