Saltar a contenido

Crear Factura de Ingreso

Crea un comprobante fiscal de Ingreso (Factura).

Definición

POST https://api.avanto.mx/v1/sales

Argumentos

Argumento Tipo Default Descripción
company_subsidiary_id * integer 0 Sucursal de empresa emisora
accounting_effect * string "I" Efecto contable: I. Ingreso
emitted datetime datetime() Fecha y hora de emisión; se expresa en el formato AAAA-MM-DDThh:mm:ss
subsidiary_id * integer 0 ID de la sucursal del cliente (receptor)
carrier string "" Transportista: FedEx, UPS, DHL (requiere catálogo)
shipping string "" Dato de envío
currency_code string "MXN" Código de la moneda
exchange_rate decimal 0.0000 Tipo de cambio
payment_options string "99" Forma de pago: 99. Por definir, 01. Efectivo, 02. Cheque nominativo, etc.
payment_method string "PUE" Metodo de pago: PUE. Pago en una sola exhibición, PPD. Pago en parcialidades o diferido
received date date() Fecha en que recibe el cliente este comprobante
days_to_pay integer 0 Total de día de crédito
receivable integer 1 Pendiente por cobrar: 0. Cobrado, 1. PXC
date_of_payment datetime datetime() Fecha del cobro
deposited integer 0 Depositado: 0. No depositado, 1. Depositado
terms_conditions string "" Condiciones de pago
notes string "" Notas adicionales
tips decimal 0.0000 Importe de servicios adicionales
cfdi_regimenfiscal * string "" Régimen Fiscal del emisor (Emisor.RegimenFiscal)
cfdi_usocfdi * string "" Uso del CFDI (Receptor.UsoCFDI)
customer_name * string "" Nombre del cliente (Customers.customer_name)
customer_email * string "" Correo electrónico del cliente (Customers.email)
soldItems * Object Productos del comprobante
soldItems.quantity * decimal 0.0000 Cantidad
soldItems.unit_of_measure string "" Unidad de medida del producto (interna)
soldItems.code string "" Código o clave del producto (interna)
soldItems.description * string "" Descripción del producto
soldItems.unit_price * decimal 0.0000 Precio unitario
soldItems.discount decimal 0.0000 Monto de descuento
soldItems.non_taxable tinyint 0 Exento o libre de impuestos: 0. No exento, 1. Exento
soldItems.cfdi_claveprodserv string "01010101" Clave del producto o servicio del catálogo del SAT
soldItems.cfdi_claveunidad string "H87" Clave de unidad del catálogo del SAT
soldItems.cfdi_cuentapredial string "" No. cuenta predial para el caso de recibos de arrendamiento
soldItems.notes string "" Datos adicionales para imprimir en el comprobante junto al artículo
soldItems.taxes Object Impuestos
soldItems.taxes.tax_type * string "" Tipo de impuesto: T. Traslado. R. Retención
soldItems.taxes.tax_name * string "" Nombre de impuesto: 002. IVA, 003. IEPS, 001. ISR
soldItems.taxes.type_factor * string "" Tipo Factor: Tasa, Cuota, Exento
soldItems.taxes.tax_rate * decimal 0.0000 Tasa o cuota; un Porcentaje (p.ej: 0.16 para 16%) o un Importe

Información

  • Los campos marcados con "*" son datos requeridos.
  • Tome en cuenta que el valor de emitted no puede ser de hace más de 48 horas ni mayor a la fecha y hora de la Ciudad de México y es independiente a la fecha y hora de timbrado.
  • Tipo de cambio es requerido si currency_code es diferente de "MXN".
  • Si los campos SoldItems.cfdi_claveprodserv y SoldItems.cfdi_claveunidad vienen vacíos en el post, por defecto toman el valor de "01010101" y "H87".
  • Si no se especifica el objeto SoldItems.taxes, se supone un Traslado del 16% de IVA directo al importe de base.

Atención

Se requiere al menos dar de alta un producto para poder generar el comprobante correctamente.

Ejemplo

{
    "accounting_effect": "I",
    "company_subsidiary_id": 19,
    "subsidiary_id": 18,
    "cfdi_regimenfiscal": "601",
    "cfdi_usocfdi": "P01",
    "soldItems": [
        {
            "quantity": 2,
            "description": "Base para pantalla retractil",
            "unit_price": 1000
        }
    ]
}

Ejemplo sin precargar Cliente

Se implementa un método rápido para crear una factura sin tener que precargar al Cliente.

La solicitud requiere el RFC del Receptor y el Uso de CFDI para crear al Cliente en la misma solicitud para crear la factura.

Si se omite en la solicitud el dato del ID de la sucursal del Cliente subsidiary_id, se requiere definir el RFC sic_code y el Uso de CFDI cfdi_usocfdi.

Si el RFC no existe se crea el Cliente con ese RFC antes de crear la factura, si ya existe se usa el existente.

{
    "accounting_effect": "I",
    "company_subsidiary_id": 1,
    "cfdi_regimenfiscal": "601",
    "sic_code": "URU070122S28",
    "customer_name": "John Doe",
    "customer_email": "[email protected]",
    "cfdi_usocfdi": "P01",
    "soldItems": [
        {
            "quantity": 1,
            "description": "Memoria USB 32G",
            "unit_price": 150
        }
    ]
}

RESPUESTA JSON

Si la transacción se ejecuta correctamente, debe regresar el objeto creado como se muestra en el siguiente JSON:

{
    "id": 95,
    "company_subsidiary_id": 1,
    "accounting_effect": "I",
    "serial_number": "B",
    "folio": 3,
    "emitted": "2019-08-01 11:00:50",
    "subsidiary_id": 48,
    "carrier": "",
    "shipping": "",
    "currency_id": 7,
    "exchange_rate": "1.0000",
    "payment_options": "01",
    "payment_method": "PUE",
    "items": 1,
    "pieces": "1.000000",
    "subtotal": "150.0000",
    "discount": "0.0000",
    "subtotal_discount": "150.0000",
    "withheld_taxes_total": "0.0000",
    "transferred_taxes_total": "24.0000",
    "total": "174.0000",
    "received": "2019-07-09",
    "days_to_pay": 0,
    "receivable": 1,
    "date_of_payment": "2019-07-09 00:00:00",
    "deposited": 0,
    "terms_conditions": "",
    "canceled": 0,
    "canceled_date": "1969-12-12 00:00:00",
    "notes": "",
    "tips": "0.0000",
    "balance": null,
    "active": 1,
    "created_at": "2019-07-09 16:23:41"
}