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"
}