# Factura C

{% tabs %}
{% tab title="Node" %}

```javascript
(async () => {
	/**
	 * Numero del punto de venta
	 **/
	const punto_de_venta = 1;

	/**
	 * Tipo de factura
	 **/
	const tipo_de_factura = 11; // 11 = Factura C
	
	/**
	 * Número de la ultima Factura C
	 **/
	const last_voucher = await afip.ElectronicBilling.getLastVoucher(punto_de_venta, tipo_de_factura);

	/**
	 * Concepto de la factura
	 *
	 * Opciones:
	 *
	 * 1 = Productos 
	 * 2 = Servicios 
	 * 3 = Productos y Servicios
	 **/
	const concepto = 1;

	/**
	 * Tipo de documento del comprador
	 *
	 * Opciones:
	 *
	 * 80 = CUIT 
	 * 86 = CUIL 
	 * 96 = DNI
	 * 99 = Consumidor Final 
	 **/
	const tipo_de_documento = 80;

	/**
	 * Numero de documento del comprador (0 para consumidor final)
	 **/
	const numero_de_documento = 33693450239;

	/**
	 * Numero de factura
	 **/
	const numero_de_factura = last_voucher+1;

	/**
	 * Fecha de la factura en formato aaaa-mm-dd (hasta 10 dias antes y 10 dias despues)
	 **/
	const fecha = new Date(Date.now() - ((new Date()).getTimezoneOffset() * 60000)).toISOString().split('T')[0];

	/**
	 * Importe de la Factura
	 **/
	const importe_total = 100;

	/**
	 * Condición frente al IVA del receptor
	 * 
	 * 1 = IVA Responsable Inscripto
	 * 4 = IVA Sujeto Exento
	 * 5 = Consumidor Final
	 * 6 = Responsable Monotributo
	 * 7 = Sujeto No Categorizado
	 * 8 = Proveedor del Exterior
	 * 9 = Cliente del Exterior
	 * 10 = IVA Liberado – Ley N° 19.640
	 * 13 = Monotributista Social
	 * 15 = IVA No Alcanzado
	 * 16 = Monotributo Trabajador Independiente Promovido
	 **/
	const condicion_iva_receptor = 6;

	/**
	 * Los siguientes campos solo son obligatorios para los conceptos 2 y 3
	 **/
	let fecha_servicio_desde = null, fecha_servicio_hasta = null, fecha_vencimiento_pago = null;
	
	if (concepto === 2 || concepto === 3) {
		/**
		 * Fecha de inicio de servicio en formato aaaammdd
		 **/
		const fecha_servicio_desde = 20191213;

		/**
		 * Fecha de fin de servicio en formato aaaammdd
		 **/
		const fecha_servicio_hasta = 20191213;

		/**
		 * Fecha de vencimiento del pago en formato aaaammdd
		 **/
		const fecha_vencimiento_pago = 20191213;
	}

	const data = {
		'CantReg' 	: 1, // Cantidad de facturas a registrar
		'PtoVta' 	: punto_de_venta,
		'CbteTipo' 	: tipo_de_factura, 
		'Concepto' 	: concepto,
		'DocTipo' 	: tipo_de_documento,
		'DocNro' 	: numero_de_documento,
		'CbteDesde' : numero_de_factura,
		'CbteHasta' : numero_de_factura,
		'CbteFch' 	: parseInt(fecha.replace(/-/g, '')),	
		'FchServDesde'  : fecha_servicio_desde,
		'FchServHasta'  : fecha_servicio_hasta,
		'FchVtoPago'    : fecha_vencimiento_pago,
		'ImpTotal' 	: importe_total,
		'ImpTotConc': 0, // Importe neto no gravado
		'ImpNeto' 	: importe_total,
		'ImpOpEx' 	: 0,
		'ImpIVA' 	: 0,
		'ImpTrib' 	: 0, //Importe total de tributos
		'MonId' 	: 'PES', //Tipo de moneda usada en la factura ('PES' = pesos argentinos) 
		'MonCotiz' 	: 1, // Cotización de la moneda usada (1 para pesos argentinos)  
		'CondicionIVAReceptorId' : condicion_iva_receptor,
	};

	/** 
	 * Creamos la Factura 
	 **/
	const res = await afip.ElectronicBilling.createVoucher(data);

	/**
	 * Mostramos por pantalla los datos de la nueva Factura 
	 **/
	console.log({
		'cae' : res.CAE, //CAE asignado a la Factura
		'vencimiento' : res.CAEFchVto //Fecha de vencimiento del CAE
	});
})()
```

{% endtab %}

{% tab title="PHP" %}

```php
/**
 * Numero del punto de venta
 **/
$punto_de_venta = 1;

/**
 * Tipo de factura
 **/
$tipo_de_comprobante = 11; // 11 = Factura C

/**
 * Número de la ultima Factura C
 **/
$last_voucher = $afip->ElectronicBilling->GetLastVoucher($punto_de_venta, $tipo_de_comprobante);

/**
 * Concepto de la factura
 *
 * Opciones:
 *
 * 1 = Productos 
 * 2 = Servicios 
 * 3 = Productos y Servicios
 **/
$concepto = 1;

/**
 * Tipo de documento del comprador
 *
 * Opciones:
 *
 * 80 = CUIT 
 * 86 = CUIL 
 * 96 = DNI
 * 99 = Consumidor Final 
 **/
$tipo_de_documento = 80;

/**
 * Numero de documento del comprador (0 para consumidor final)
 **/
$numero_de_documento = 33693450239;

/**
 * Numero de comprobante
 **/
$numero_de_factura = $last_voucher+1;

/**
 * Fecha de la factura en formato aaaa-mm-dd (hasta 10 dias antes y 10 dias despues)
 **/
$fecha = date('Y-m-d');

/**
 * Importe de la Factura
 **/
$importe_total = 100;

/**
 * Condición frente al IVA del receptor
 * 
 * Opciones:
 * 
 * 1 = IVA Responsable Inscripto
 * 4 = IVA Sujeto Exento
 * 5 = Consumidor Final
 * 6 = Responsable Monotributo
 * 7 = Sujeto No Categorizado
 * 8 = Proveedor del Exterior
 * 9 = Cliente del Exterior
 * 10 = IVA Liberado – Ley N° 19.640
 * 13 = Monotributista Social
 * 15 = IVA No Alcanzado
 * 16 = Monotributo Trabajador Independiente Promovido
 **/
$condicion_iva_receptor = 6;

/**
 * Los siguientes campos solo son obligatorios para los conceptos 2 y 3
 **/
if ($concepto === 2 || $concepto === 3) {
	/**
	 * Fecha de inicio de servicio en formato aaaammdd
	 **/
	$fecha_servicio_desde = intval(date('Ymd'));

	/**
	 * Fecha de fin de servicio en formato aaaammdd
	 **/
	$fecha_servicio_hasta = intval(date('Ymd'));

	/**
	 * Fecha de vencimiento del pago en formato aaaammdd
	 **/
	$fecha_vencimiento_pago = intval(date('Ymd'));
}
else {
	$fecha_servicio_desde = null;
	$fecha_servicio_hasta = null;
	$fecha_vencimiento_pago = null;
}


$data = array(
	'CantReg' 	=> 1, // Cantidad de facturas a registrar
	'PtoVta' 	=> $punto_de_venta,
	'CbteTipo' 	=> $tipo_de_comprobante, 
	'Concepto' 	=> $concepto,
	'DocTipo' 	=> $tipo_de_documento,
	'DocNro' 	=> $numero_de_documento,
	'CbteDesde' => $numero_de_factura,
	'CbteHasta' => $numero_de_factura,
	'CbteFch' 	=> intval(str_replace('-', '', $fecha)),
	'FchServDesde'  => $fecha_servicio_desde,
	'FchServHasta'  => $fecha_servicio_hasta,
	'FchVtoPago'    => $fecha_vencimiento_pago,
	'ImpTotal' 	=> $importe_total,
	'ImpTotConc'=> 0, // Importe neto no gravado
	'ImpNeto' 	=> $importe_total, // Importe neto
	'ImpOpEx' 	=> 0, // Importe exento al IVA
	'ImpIVA' 	=> 0, // Importe de IVA
	'ImpTrib' 	=> 0, //Importe total de tributos
	'MonId' 	=> 'PES', //Tipo de moneda usada en la factura ('PES' = pesos argentinos) 
	'MonCotiz' 	=> 1, // Cotización de la moneda usada (1 para pesos argentinos)  
	'CondicionIVAReceptorId' => $condicion_iva_receptor,
);

/** 
 * Creamos la Factura 
 **/
$res = $afip->ElectronicBilling->CreateVoucher($data);

/**
 * Mostramos por pantalla los datos de la nueva Factura 
 **/
var_dump(array(
	'cae' => $res['CAE'], //CAE asignado a la Factura
	'vencimiento' => $res['CAEFchVto'] //Fecha de vencimiento del CAE
));
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require "date"

# Numero del punto de venta
punto_de_venta = 1

# Tipo de factura
tipo_de_factura = 11 # 11 = Factura c

# Número de la ultima Factura c
last_voucher = afip.ElectronicBilling.getLastVoucher(punto_de_venta, tipo_de_factura)

# Concepto de la factura
#
# Opciones:
#
# 1 = Productos 
# 2 = Servicios 
# 3 = Productos y Servicios
concepto = 1

# Tipo de documento del comprador
#
# Opciones:
#
# 80 = CUIT 
# 86 = CUIL 
# 96 = DNI
# 99 = Consumidor Final 
tipo_de_documento = 80

# Numero de documento del comprador (0 para consumidor final)
numero_de_documento = 33693450239

# Numero de factura
numero_de_factura = last_voucher+1

# Fecha de la factura en formato aaaammdd (hasta 10 dias antes y 10 dias despues)
fecha = Time.now.strftime("%Y%m%d").to_i

# Importe de la Factura
importe_total = 100

# Condición frente al IVA del receptor
# 
# Opciones:
#
# 1 = IVA Responsable Inscripto
# 4 = IVA Sujeto Exento
# 5 = Consumidor Final
# 6 = Responsable Monotributo
# 7 = Sujeto No Categorizado
# 8 = Proveedor del Exterior
# 9 = Cliente del Exterior
# 10 = IVA Liberado – Ley N° 19.640
# 13 = Monotributista Social
# 15 = IVA No Alcanzado
# 16 = Monotributo Trabajador Independiente Promovido
condicion_iva_receptor = 6

# Los siguientes campos solo son obligatorios para los conceptos 2 y 3
if concepto == 2 || concepto == 3
		# Fecha de inicio de servicio en formato aaaammdd
		fecha_servicio_desde = Time.now.strftime("%Y%m%d").to_i

		# Fecha de fin de servicio en formato aaaammdd
		fecha_servicio_hasta = Time.now.strftime("%Y%m%d").to_i

		# Fecha de vencimiento del pago en formato aaaammdd
		fecha_vencimiento_pago = Time.now.strftime("%Y%m%d").to_i
else
	fecha_servicio_desde = nil
	fecha_servicio_hasta = nil
	fecha_vencimiento_pago = nil
end

data = {
	"CantReg": 1, # Cantidad de facturas a registrar
	"PtoVta": punto_de_venta,
	"CbteTipo": tipo_de_factura, 
	"Concepto": concepto,
	"DocTipo": tipo_de_documento,
	"DocNro": numero_de_documento,
	"CbteDesde": numero_de_factura,
	"CbteHasta": numero_de_factura,
	"CbteFch": fecha,
	"FchServDesde": fecha_servicio_desde,
	"FchServHasta": fecha_servicio_hasta,
	"FchVtoPago": fecha_vencimiento_pago,
	"ImpTotal": importe_total,
	"ImpTotConc": 0, # Importe neto no gravado
	"ImpNeto": importe_total,
	"ImpOpEx": 0,
	"ImpIVA": 0,
	"ImpTrib": 0, # Importe total de tributos
	"MonId": "PES", # Tipo de moneda usada en la factura ("PES" = pesos argentinos) 
	"MonCotiz": 1, # Cotización de la moneda usada (1 para pesos argentinos)  
	"CondicionIVAReceptorId" : condicion_iva_receptor
}

# Creamos la Factura 
res = afip.ElectronicBilling.createVoucher(data)

# Mostramos por pantalla los datos de la nueva Factura 
puts {
	"cae": res["CAE"], # CAE asignado a la Factura
	"vencimiento": res["CAEFchVto"] # Fecha de vencimiento del CAE
}
```

{% endtab %}

{% tab title="Python" %}

```python
from datetime import datetime

# Numero del punto de venta
punto_de_venta = 1

# Tipo de factura
tipo_de_factura = 11 # 11 = Factura c

# Número de la ultima Factura c
last_voucher = afip.ElectronicBilling.getLastVoucher(punto_de_venta, tipo_de_factura)

# Concepto de la factura
#
# Opciones:
#
# 1 = Productos 
# 2 = Servicios 
# 3 = Productos y Servicios
concepto = 1

# Tipo de documento del comprador
#
# Opciones:
#
# 80 = CUIT 
# 86 = CUIL 
# 96 = DNI
# 99 = Consumidor Final 
tipo_de_documento = 80

# Numero de documento del comprador (0 para consumidor final)
numero_de_documento = 33693450239

# Numero de factura
numero_de_factura = last_voucher+1

# Fecha de la factura en formato aaaammdd (hasta 10 dias antes y 10 dias despues)
fecha = int(datetime.today().strftime("%Y%m%d"))

# Importe de la Factura
importe_total = 100

# Condición frente al IVA del receptor
# 
# Opciones:
#
# 1 = IVA Responsable Inscripto
# 4 = IVA Sujeto Exento
# 5 = Consumidor Final
# 6 = Responsable Monotributo
# 7 = Sujeto No Categorizado
# 8 = Proveedor del Exterior
# 9 = Cliente del Exterior
# 10 = IVA Liberado – Ley N° 19.640
# 13 = Monotributista Social
# 15 = IVA No Alcanzado
# 16 = Monotributo Trabajador Independiente Promovido
condicion_iva_receptor = 6

# Los siguientes campos solo son obligatorios para los conceptos 2 y 3
if concepto == 2 or concepto == 3:
	# Fecha de inicio de servicio en formato aaaammdd
	fecha_servicio_desde = int(datetime.today().strftime("%Y%m%d"))

	# Fecha de fin de servicio en formato aaaammdd
	fecha_servicio_hasta = int(datetime.today().strftime("%Y%m%d"))

	# Fecha de vencimiento del pago en formato aaaammdd
	fecha_vencimiento_pago = int(datetime.today().strftime("%Y%m%d"))
else:
	fecha_servicio_desde = None
	fecha_servicio_hasta = None
	fecha_vencimiento_pago = None

data = {
	"CantReg": 1, # Cantidad de facturas a registrar
	"PtoVta": punto_de_venta,
	"CbteTipo": tipo_de_factura, 
	"Concepto": concepto,
	"DocTipo": tipo_de_documento,
	"DocNro": numero_de_documento,
	"CbteDesde": numero_de_factura,
	"CbteHasta": numero_de_factura,
	"CbteFch": fecha,
	"FchServDesde": fecha_servicio_desde,
	"FchServHasta": fecha_servicio_hasta,
	"FchVtoPago": fecha_vencimiento_pago,
	"ImpTotal": importe_total,
	"ImpTotConc": 0, # Importe neto no gravado
	"ImpNeto": importe_total,
	"ImpOpEx": 0,
	"ImpIVA": 0,
	"ImpTrib": 0, # Importe total de tributos
	"MonId": "PES", # Tipo de moneda usada en la factura ("PES" = pesos argentinos) 
	"MonCotiz": 1, # Cotización de la moneda usada (1 para pesos argentinos)  
	"CondicionIVAReceptorId" : condicion_iva_receptor
}

# Creamos la Factura 
res = afip.ElectronicBilling.createVoucher(data)

# Mostramos por pantalla los datos de la nueva Factura 
print({
	"cae": res["CAE"], # CAE asignado a la Factura
	"vencimiento": res["CAEFchVto"] # Fecha de vencimiento del CAE
})
```

{% endtab %}

{% tab title=".NET" %}

```csharp
// Numero del punto de venta
int ptoVta = 1;

// Tipo de factura (11 = Factura C)
int tipoDeFactura = 11;

// Número de la ultima Factura C
int lastVoucher = await afip.ElectronicBilling.GetLastVoucherAsync(ptoVta, tipoDeFactura);

// Concepto de la factura
// 1 = Productos
// 2 = Servicios
// 3 = Productos y Servicios
int concepto = 1;

// Tipo de documento del comprador
// 80 = CUIT
// 86 = CUIL
// 96 = DNI
// 99 = Consumidor Final
int tipoDeDocumento = 80;

// Numero de documento del comprador (0 para consumidor final)
long numeroDeDocumento = 33693450239;

// Numero de factura
int numeroDeFactura = lastVoucher + 1;

// Fecha de la factura en formato aaaammdd (hasta 10 dias antes y 10 dias despues)
int fecha = int.Parse(DateTime.Now.ToString("yyyyMMdd"));

// Importe de la Factura
decimal importeTotal = 100;

// Condición frente al IVA del receptor
// 1  = IVA Responsable Inscripto
// 4  = IVA Sujeto Exento
// 5  = Consumidor Final
// 6  = Responsable Monotributo
// 7  = Sujeto No Categorizado
// 8  = Proveedor del Exterior
// 9  = Cliente del Exterior
// 10 = IVA Liberado – Ley N° 19.640
// 13 = Monotributista Social
// 15 = IVA No Alcanzado
// 16 = Monotributo Trabajador Independiente Promovido
int condicionIvaReceptor = 6;

// Los siguientes campos solo son obligatorios para los conceptos 2 y 3
int? fechaServicioDesde = null, fechaServicioHasta = null, fechaVencimientoPago = null;

if (concepto == 2 || concepto == 3)
{
    // Fecha de inicio de servicio en formato aaaammdd
    fechaServicioDesde = int.Parse(DateTime.Now.ToString("yyyyMMdd"));

    // Fecha de fin de servicio en formato aaaammdd
    fechaServicioHasta = int.Parse(DateTime.Now.ToString("yyyyMMdd"));

    // Fecha de vencimiento del pago en formato aaaammdd
    fechaVencimientoPago = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
}

var data = new Dictionary<string, object?>
{
    { "CantReg",                1 },                // Cantidad de facturas a registrar
    { "PtoVta",                 ptoVta },
    { "CbteTipo",               tipoDeFactura },
    { "Concepto",               concepto },
    { "DocTipo",                tipoDeDocumento },
    { "DocNro",                 numeroDeDocumento },
    { "CbteDesde",              numeroDeFactura },
    { "CbteHasta",              numeroDeFactura },
    { "CbteFch",                fecha },
    { "FchServDesde",           fechaServicioDesde },
    { "FchServHasta",           fechaServicioHasta },
    { "FchVtoPago",             fechaVencimientoPago },
    { "ImpTotal",               importeTotal },
    { "ImpTotConc",             0 },                // Importe neto no gravado
    { "ImpNeto",                importeTotal },
    { "ImpOpEx",                0 },
    { "ImpIVA",                 0 },
    { "ImpTrib",                0 },                // Importe total de tributos
    { "MonId",                  "PES" },            // Tipo de moneda ('PES' = pesos argentinos)
    { "MonCotiz",               1 },                // Cotización de la moneda (1 para pesos argentinos)
    { "CondicionIVAReceptorId", condicionIvaReceptor }
};

// Creamos la Factura
var res = await afip.ElectronicBilling.CreateVoucherAsync(data);

// Mostramos por pantalla los datos de la nueva Factura
Console.WriteLine($"CAE: {res["CAE"]}");                // CAE asignado a la Factura
Console.WriteLine($"Vencimiento: {res["CAEFchVto"]}");  // Fecha de vencimiento del CAE
```

{% endtab %}

{% tab title="API" %}
**Endpoint**

<mark style="color:blue;">`POST`</mark> `https://app.afipsdk.com/api/v1/afip/requests`

**Ejemplo**

```json
{
    "environment": "dev",
    "method": "FECAESolicitar",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        },
        "FeCAEReq" : {
            "FeCabReq": {
                "CantReg": 1,
                "PtoVta": 1,
                "CbteTipo": 11
            },
            "FeDetReq": {
                "FECAEDetRequest": {
                    "Concepto": 1,
                    "DocTipo": 80,
                    "DocNro": 33693450239,
                    "CbteDesde": 327,
                    "CbteHasta": 327,
                    "CbteFch": 20240314,
                    "FchServDesde": null,
                    "FchServHasta": null,
                    "FchVtoPago": null,
                    "ImpTotal": 100,
                    "ImpTotConc": 0,
                    "ImpNeto": 100,
                    "ImpOpEx": 0,
                    "ImpIVA": 0,
                    "ImpTrib": 0,
                    "MonId": "PES",
                    "MonCotiz": 1,
                    "CondicionIVAReceptorId": 6
                }
            }
        }
    }
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.afipsdk.com/siguientes-pasos/web-services/factura-electronica/factura-c.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
