Factura C
(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;
/**
* 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)
};
/**
* 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
});
})()
/**
* 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;
/**
* 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)
);
/**
* 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
));
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
# 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)
}
# 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
}
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
# 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)
}
# 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
})
Endpoint
POST
https://app.afipsdk.com/api/v1/afip/requests
Ejemplo
{
"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
}
}
}
}
}
Última actualización