Factura de Ingreso
El combrobante de tipo Ingreso, también conocido simplemente como factura, se utiliza para registrar un ingreso de dinero a cambio de la entrega de mercancía o un servicio, así como las condiciones del intercambio, como la forma de pago, y si se recibe en ese momento el pago o se acuerda para cobrarse después.
El caso más común es emitir una factura por motivo de una venta, y enviarla por correo electrónico a tu cliente, o ponerla disponible para su descarga.
Si al momento de recibir un pago tu cliente no te pide una factura, puedes crear un Recibo Digital que podrás enviar al cliente para que complete sus datos y autofacturarse, o de no hacerlo podrás generar una factura global al final del mes con todos tus recibos no facturados.
Ejemplos
A continuación se enlistan algunos casos de uso comunes.
Para conocer a fondo todas las opciones disponibles al crear una factura, descripciiones detalladas de cada campo y los catálogos más utilizados consulta la referencia del método Crear Factura.
Factura con pago de contado (default)
En este ejemplo, el pago se recibe al mismo tiempo que se entrega la mercancía o servicio.
- Node.js
- C#
- PHP
- cURL
const Facturapi = require('facturapi');
const facturapi = new Facturapi('sk_test_API_KEY');
const invoice = await facturapi.invoices.create({
customer: {
legal_name: 'Dunder Mifflin',
email: 'email@example.com',
tax_id: 'ABC101010111',
tax_system: '601',
address: {
zip: '85900'
}
},
items: [{
quantity: 2,
product: {
description: 'Ukelele',
product_key: '60131324', // ClaveProdServ del SAT
price: 345.60,
taxes: [
{
type: 'IVA',
rate: 0.16
}
]
}
}],
use: 'G01',
payment_form: "28" // "Tarjeta de débito"
});
var facturapi = new FacturapiClient("sk_test_API_KEY");
var invoice = await facturapi.Invoice.CreateAsync(new Dictionary<string, object>
{
["customer"] = new Dictionary<string, object>
{
["legal_name"] = "Dunder Mifflin",
["email"] = "email@example.com",
["tax_id"] = "ABC101010111",
["tax_system"] = "601",
["address"] = new Dictionary<string, object>
{
["zip"] = "85900"
}
},
["items"] = new Dictionary<string, object>[]
{
new Dictionary<string, object>
{
["quantity"] = 2,
["product"] = new Dictionary<string, object>
{
["description"] = "Ukelele",
["product_key"] = "60131324", // ClaveProdServ del SAT
["price"] = 345.60,
["taxes"] = new Dictionary<string, object>[]
{
new Dictionary<string, object>
{
["type"] = "IVA",
["rate"] = 0.16
}
}
}
["product"] = new Dictionary<string, object>
{
["description"] = "Ukelele",
["product_key"] = "60131324", // ClaveProdServ del SAT
["price"] = 345.60,
["taxes"] = new Dictionary<string, object>[]
{
new Dictionary<string, object>
{
["type"] = "IVA",
["rate"] = 0.16
}
}
}
}
},
["use"] = "G01",
["payment_form"] = "28" // "Tarjeta de débito"
});
$facturapi = new Facturapi( "sk_test_API_KEY" );
$invoice = $facturapi->Invoices->create([
"customer" => [
"legal_name" => "Dunder Mifflin",
"email" => "email@example.com",
"tax_id" => "ABC101010111",
"tax_system" => "601",
"address" => [
"zip" => "85900"
]
],
"items" => [
[
"quantity" => 2,
"product" => [
"description" => "Ukelele",
"product_key" => "60131324", // ClaveProdServ del SAT
"price" => 345.60,
"taxes" => [
[
"type" => "IVA",
"rate" => 0.16,
]
]
]
],
],
"payment_form" => "28" // "Tarjeta de débito"
]);
curl https://www.facturapi.io/v2/invoices \
-H "Authorization: Bearer sk_test_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"legal_name": "Dunder Mifflin",
"email": "email@example.com",
"tax_id": "ABC101010111",
"tax_system": "601",
"address": {
"zip": "85900"
}
},
"items": [{
"quantity": 2,
"product": {
"description": "Ukelele",
"product_key": "60131324", // ClaveProdServ del SAT
"price": 345.60,
"taxes": [
{
"type": "IVA",
"rate": 0.16
}
]
}
}],
"use": "G01",
"payment_form": "28" // "Tarjeta de débito"
}'
Factura con pago a crédito
En este ejemplo, la mercancía o servicio se entrega, pero no se recibe el pago todavía.
Posteriormente, cuando recibas un pago, ya sea por el total de la cuenta o una parcialidad, deberás emitir un Comprobante de Pago.
- Node.js
- C#
- PHP
- cURL
const Facturapi = require('facturapi');
const facturapi = new Facturapi('sk_test_API_KEY');
const invoice = await facturapi.invoices.create({
customer: {
legal_name: 'Dunder Mifflin',
email: 'email@example.com',
tax_id: 'ABC101010111',
tax_system: '601',
address: {
zip: '85900'
}
},
items: [{
quantity: 2,
product: {
description: 'Ukelele',
product_key: '60131324', // ClaveProdServ del SAT
price: 345.60,
taxes: [
{
type: 'IVA',
rate: 0.16
}
]
}
}],
use: 'G01',
payment_form: "99", // "Por definir"
payment_method: 'PPD', // "Pago en Parcialidades o Diferido"
conditions: 'Fecha límite de pago: 2022-01-01' // Texto libre definiendo las condiciones del pago (opcional)
});
var facturapi = new FacturapiClient("sk_test_API_KEY");
var invoice = await facturapi.Invoice.CreateAsync(new Dictionary<string, object>
{
["customer"] = new Dictionary<string, object>
{
["legal_name"] = "Dunder Mifflin",
["email"] = "email@example.com",
["tax_id"] = "ABC101010111",
["tax_system"] = "601",
["address"] = new Dictionary<string, object>
{
["zip"] = "85900"
}
},
["items"] = new Dictionary<string, object>[]
{
new Dictionary<string, object>
{
["quantity"] = 2,
["product"] = new Dictionary<string, object>
{
["description"] = "Ukelele",
["product_key"] = "60131324", // ClaveProdServ del SAT
["price"] = 345.60,
["taxes"] = new Dictionary<string, object>[]
{
new Dictionary<string, object>
{
["type"] = "IVA",
["rate"] = 0.16
}
}
}
}
},
["use"] = "G01",
["payment_form"] = "99", // "Por definir"
["payment_method"] = "PPD", // "Pago en Parcialidades o Diferido"
["conditions"] = "Fecha límite de pago: 2022-01-01" // Texto libre definiendo las condiciones del pago (opcional)
});
$facturapi = new Facturapi( "sk_test_API_KEY" );
$invoice = $facturapi->Invoices->create([
"customer" => [
"legal_name" => "Dunder Mifflin",
"email" => "email@example.com",
"tax_id" => "ABC101010111",
"tax_system" => "601",
"address" => [
"zip" => "85900"
]
],
"items" => [
[
"quantity" => 2,
"product" => [
"description" => "Ukelele",
"product_key" => "60131324",
"price" => 345.60,
"taxes" => [
[
"type" => "IVA",
"rate" => 0.16,
]
]
]
],
],
"payment_form" => "99", // "Por definir"
"payment_method" => "PPD", // "Pago en Parcialidades o Diferido"
"conditions" => "Fecha límite de pago: 2022-01-01" // Texto libre definiendo las condiciones del pago (opcional)
]);
curl https://www.facturapi.io/v2/invoices \
-H "Authorization: Bearer sk_test_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"legal_name": "Dunder Mifflin",
"email": "email@example.com",
"tax_id": "ABC101010111",
"tax_system": "601",
"address": {
"zip": "85900"
}
},
"items": [{
"quantity": 2,
"product": {
"description": "Ukelele",
"product_key": "60131324",
"price": 345.60,
"taxes": [
{
"type": "IVA",
"rate": 0.16
}
]
}
}],
"use": "G01",
"payment_form": "99", // "Por definir"
"payment_method": "PPD", // "Pago en Parcialidades o Diferido"
"conditions": "Fecha límite de pago: 2022-01-01" // Texto libre definiendo las condiciones del pago (opcional)
}'