Emitir una Factura
(Campos completos)

Antes de proceder a emitir una factura, habrá sido necesario haber creado un cliente de prueba o producción y haber cargado sus certificados.

Recuerda que en facturas de prueba es necesario usar los receptores de prueba que se especifican en la sección previa.

Una vez hayas realizado una factura sencilla, puedes proceder a emitir una factura con todos los campos listados aquí para identificar diferentes validaciones y reglas del CFDI.

POST: https://api.fiscalpop.com/api/v1/cfdi/stamp/:authToken

Campos del Request

  • fecha: Fecha de la factura, entre el tiempo actual y hasta 72 horas atrás, si un cliente te pide hacer la factura de hace X dias, este es el campo a modificar.

  • formaPago: Forma de pago de esta factura, tal como Efectivo, transferencia, débito, etc. Consultar catálogo SAT.

  • metodoPago: Existen tres tipos de método de pago, PUE: Pago en única exhibición, PIP: Pago inicial y en parcialidades,PPD: Pago en parcialidades o diferido.

  • tipoDeComprobante:'I' | 'E' | 'P' | 'N' | 'T', I de ingreso, E de egreso (Nota de crédito), P de Pago (Complemento Pago), N de Nómina (Complemento nómina) y T de traslado.

  • lugarExpedicion:Código postal del emisor de la factura, este campo sobrescribe el valor del perfil del cliente.

  • serie: La serie, comúnmente indica al grupo al que pertenece la factura, la serie SNG puede tener varias facturas (SNG - 01)

  • folio:La secuencia dentro de la serie de esta factura, E.G., Serie SNG y Folio 01a (SNG-01a).

  • moneda:Clave de la moneda en que la factura se declara (USD, MXN, CAD, etc.).

  • tipoCambio:Valor requerido para convertir monedas que no están en MXN a pesos.

  • condicionesDePago: Texto libre, usado para indicaciones especiales al comprador sobre el pago.

  • note: Texto libre, Nota al pie del PDF, usado de manera aleatoria, aquí es donde pondrías .

  • receptor: Un solo objeto que representa al receptor con las siguientes características.

    • receptor.nombre: Razón social del receptor de la factura.

    • receptor.rfc: RFC del receptor de la factura (Ejemplo muestra RFC de venta a mostrador).

    • receptor.usoCFDI: Clave del uso de lafactura. Consultar catálogo SAT

    • receptor.regimen: (CFDI 4.0) Clave del Régimen del receptor. Consultar catálogo SAT

    • receptor.zip: (CFDI 4.0) Código postal del Receptor, en caso de RFC genérico se usa el Lugar de Expedición del Emisor Debe ser un String de 5 carácteres numéricos

    • receptor.email: Correo del receptor, si se agrega se mandará el PDF y el XML al receptor.

  • conceptos[ ]: Un array de conceptos independientes que integran la factura.

    • conceptos.claveProdServ: Clave del producto o servicio. Consultar catálogo SAT

    • conceptos.claveUnidad: Clave de la unidad de medición. Consultar catálogo SAT

    • conceptos.cantidad: Cantidad en número entero o decimal de productos vendidos.

    • conceptos.descripcion: Breve descripción o nombre del producto / servicio.

    • conceptos.valorUnitario: Costo por unidad en número entero o decimal.

    • conceptos.descuento: Descuento en el prodúcto, se declara antes de impuestos (no incluir impuesto aquí) y es por el total de los pedidos
      Calcular descuentos como SubTotal = (valorUnitario * cantidad) - descuento

    • conceptos.noIdentificacion: Algun texto para relacionar el concepto con inventario del vendedor, comúnmente SKU, pero puede ser cualquiera.

    • conceptos.valorUnitario: Costo por unidad en número entero o decimal.

    • conceptos.impuestos [ ]: Un array de impuestos asignados a este concepto, puede incluír varios, tal como IVA retención, IVA traslado, IEPS, etc.

      • conceptos.impuestos.type: Tipo de impuesto, iva, ieps, isr.

      • conceptos.impuestos.retencion: Booleano que indica si el impuesto es retenido (true) o traslado (false, DEFAULT).

      • conceptos.impuestos.tasa El valor del impuesto en tasa debe ser un número decimal representando el porcentaje (0.16 es 16%).
        Si se utiliza tasa como en el ejemplo, es valor decimal del porciento.

      • conceptos.impuestos.cuota: El valor del impuesto en cuota debe ser un número absoluto en $ MXN / unidad.
        Si se utiliza cuota debe ser una cantidad fija (no porcentual) del impuesto, comunmente usado en IEPS.

  • cfdiRelacionados: Objeto con la relacion entre 1 o mas facturas con esta. Comúnmente usado en Notas de crédito y pago de anticipos.

    • cfdiRelacionados.tipoRelacion: '01' | '02' | '03' | '04' | '05' | '06' | '07' | '08' | '09', codigo que define la relacion con las facturas de abajo y la que vas a emitir.
      Si deseas conocer mas sobre estas claves de relación entra aquí

    • cfdiRelacionados.uuids: Array de los UUIDs que estas relacionando cone sta factura.

Campos de la Respuesta

  • uuid: El ID de la factura, la clave unica para identificar un CFDI.

  • created: Cuando fue creada la factura, indistinto de la fecha de la factura

  • json: Representación del XML en JSON, util cuando se quiere usar un procesador de PDFs propio u alguna deconstrucción del contenido de la factura sin tener que parsear el XML.

  • xml: El string del XML de la factura, el cual es el CFDI en si.

  • authToken: El token del cliente emisor, usado para relacionar facturas con su emisor.

  • status: true | false True significa que la factura está vigente, false cuando la factura está cancelada.

  • sandbox: true | false Si la factura fué generada por cliente de prueba o producción, false es de producción, true es una factura de prueba.

CFDI Emitir

JSON

Cuerpo del request

(application/json)


{
    "fecha": "2020-08-29T00:41:03.041Z", // Fecha de la factura en formato JSON (new Date().toJSON() en JS)
    "formaPago": "01",
    "metodoPago": "PUE",
    "tipoDeComprobante": "I", // 'I' | 'E' | 'P' | 'N' | 'T'
    "lugarExpedicion": "06700",
    "serie": "A", // Serie de la factura
    "folio": "01", // Folio de la factura
    "moneda": "USD", 
    "tipoCambio": "22.1", 
    "condicionesDePago": "En contra entrega", 
    "note": "Alguna nota", // Mensaje en el pié del PDF
    "receptor": {
        "nombre": "PUBLICO EN GENERAL",
        "rfc": "XAXX010101000",
        "usoCFDI": "S01",
        "regimen": "616",
        "zip": "06700",
        "email": "jorge@example.com", // Agregar correo, envia el PDF y XML al cliente
    },
    "conceptos": [
        {
            "claveProdServ": "10101500",
            "claveUnidad": "KGM",
            "cantidad": 1,
            "descripcion": "PROYECTO ILUMINACION MASCAREÑO",
            "valorUnitario": 2000,
            "descuento": 120, // Descuento es sin impuestos (antes de impuestos)
            "noIdentificacion": "SKU-01-569",
            "impuestos": [
                {
                    "type": "iva",
                    "retencion": false,
                    "tasa": 0.16
                }
            ]
        }
    ],
    "cfdiRelacionados": {
        "tipoRelacion": "01", //  '01' | '02' | '03' | '04' | '05' | '06' | '07' | '08' | '09';
        "uuids": ["2407BE43-651B-45B2-A721-B32295ED779C", "2407BE43-651B-45B2-A721-B32295A1210E"]
    }
}

Respuesta correcta


{
    "uuid": "3407BE43-651B-45B2-A721-D41295ED587B",
    "created": "2018-09-07T17:54:26.150Z",
    "json": {
        "@": {
            "xmlns:cfdi": "http://www.sat.gob.mx/cfd/3",
            "xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
            "xsi:schemaLocation": "http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd",
            "Version": "3.3",
            "Serie": "A",
            "Folio": "01",
            "Fecha": "2018-09-07T12:54:25",
            "TipoDeComprobante": "I",
            "FormaPago": "01",
            "MetodoPago": "PUE",
            "LugarExpedicion": "06700",
            "SubTotal": "2000.00",
            "Total": "2320.00",
            "Moneda": "MXN",
            "Sello": "Eh49rUg0RiMsNmuiNwGay3oxWt9+Y16s+Ui9bq5+jzSicfkxPfUdCumYsAOndQRfUUK+cuWn1gCWBa/guFY1hwJYvFg/5X4gAZ...",
            "Certificado": "MIIF6zCCA9OgAwIBAgIUMjAwMDEwMDAwMDAzMDAwMDU2OTIwDQYJKoZIhvcNAQELBQAwggFmMSAwHgYDVQQDDBdBLkMu...",
            "NoCertificado": "20001000000300005692",
            "Exportacion" : "01"                        // CFDI 4.0
        },
        "cfdi:Emisor": {
            "@": {
                "Nombre": "Horacio Llanos",
                "Rfc": "ACO560518KW7",
                "RegimenFiscal": "601"
            }
        },
        "cfdi:Receptor": {
            "@": {
                "Nombre": "PUBLICO EN GENERAL",
                "Rfc": "XAXX010101000",
                "UsoCFDI": "S01",
                "DomicilioFiscalReceptor" : "06700",    // CFDI 4.0
				"RegimenFiscalReceptor" : "616"         // CFDI 4.0
            }
        },
        "cfdi:Conceptos": {
            "cfdi:Concepto": [
                {
                    "@": {
                        "ClaveProdServ": "10101500",
                        "ClaveUnidad": "KGM",
                        "Cantidad": "1",
                        "Descripcion": "PROYECTO ILUMINACION MASCAREÑO",
                        "ValorUnitario": "2000.00",
                        "Importe": "2000.00",
                        "ObjetoImp" : "02"              // CFDI 4.0
                    },
                    "cfdi:Impuestos": {
                        "cfdi:Traslados": {
                            "cfdi:Traslado": [
                                {
                                    "@": {
                                        "Base": "2000.00",
                                        "Impuesto": "002",
                                        "TipoFactor": "Tasa",
                                        "TasaOCuota": "0.160000",
                                        "Importe": "320.00"
                                    }
                                }
                            ]
                        }
                    }
                }
            ]
        },
        "cfdi:Impuestos": {
            "@": {
                "TotalImpuestosTrasladados": "320.00"
            },
            "cfdi:Traslados": {
                "cfdi:Traslado": [
                    {
                        "@": {
                            "Impuesto": "002",
                            "TipoFactor": "Tasa",
                            "TasaOCuota": "0.160000",
                            "Importe": "320.00"
                        }
                    }
                ]
            }
        }
    },
    "xml": ".....",
    "authToken": "...",
    "status": true,
    "sandbox": false
}