Afip SDK
GitHubHomeComunidadBlog
  • 📖Documentación
  • Paso a paso
    • 🎯Instalacion
    • ☁️Web services
      • 💵Factura electrónica
        • Crear PDF
        • Código QR
        • Factura A
        • Factura B
        • Factura C
        • Factura de Crédito electrónica A
        • Factura de Crédito electrónica B
        • Factura de Crédito electrónica C
        • Nota de Crédito A
        • Nota de Crédito B
        • Nota de Crédito C
      • 📑Padrón de constancia de inscripción
      • 📑Padrón alcance 10
      • 📑Padrón alcance 13
      • 💸Factura MiPyME
      • 🔎Constatación de Comprobantes
      • ✉️Carta de Porte Electrónica
      • 🏨Comprobantes de Turismo
      • 💸Factura de Exportación
      • 🥩Remito cárnico
      • 🛠️Otro web service
    • 📚Tutoriales página de ARCA
      • 🔑Habilitar administrador de certificados de testing
      • 📜Obtener certificado de testing
      • ✅Autorizar web service de testing
      • 🔑Habilitar administrador de certificados de producción
      • 📜Obtener certificado de producción
      • ✅Autorizar web service de producción
      • 💳Crear punto de venta
      • 🤝Delegar web service
      • 👍Aceptar delegación de web service
    • ⚙️Otros métodos útiles
    • 🚀Ir a producción
  • Ayuda
    • ⁉️Preguntas frecuentes
    • 🐞Errores frecuentes
Con tecnología de GitBook
En esta página

¿Te fue útil?

  1. Paso a paso
  2. Web services
  3. Factura electrónica

Nota de Crédito B

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

	/**
	 * Tipo de factura
	 **/
	const tipo_de_nota = 8; // 8 = Nota de Crédito B
	
	/**
	 * Número de la ultima Nota de Crédito B
	 **/
	const last_voucher = await afip.ElectronicBilling.getLastVoucher(punto_de_venta, tipo_de_nota);

	/**
	 * Numero del punto de venta de la Factura 
	 * asociada a la Nota de Crédito
	 **/
	const punto_factura_asociada = 1;

	/**
	 * Tipo de Factura asociada a la Nota de Crédito
	 **/
	const tipo_factura_asociada = 6; // 6 = Factura B

	/**
	 * Numero de Factura asociada a la Nota de Crédito
	 **/
	const numero_factura_asociada = 1;

	/**
	 * 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 = 99;

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

	/**
	 * Numero de Nota de Crédito
	 **/
	const numero_de_nota = last_voucher+1;

	/**
	 * Fecha de la Nota de Crédito 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 sujeto al IVA (sin icluir IVA)
	 **/
	const importe_gravado = 100;

	/**
	 * Importe exento al IVA
	 **/
	const importe_exento_iva = 0;

	/**
	 * Importe de IVA
	 **/
	const importe_iva = 21;

	/**
	 * 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 Notas de Crédito a registrar
		'PtoVta' 	: punto_de_venta,
		'CbteTipo' 	: tipo_de_nota, 
		'Concepto' 	: concepto,
		'DocTipo' 	: tipo_de_documento,
		'DocNro' 	: numero_de_documento,
		'CbteDesde' : numero_de_nota,
		'CbteHasta' : numero_de_nota,
		'CbteFch' 	: parseInt(fecha.replace(/-/g, '')),	
		'FchServDesde'  : fecha_servicio_desde,
		'FchServHasta'  : fecha_servicio_hasta,
		'FchVtoPago'    : fecha_vencimiento_pago,
		'ImpTotal' 	: importe_gravado + importe_iva + importe_exento_iva,
		'ImpTotConc': 0, // Importe neto no gravado
		'ImpNeto' 	: importe_gravado,
		'ImpOpEx' 	: importe_exento_iva,
		'ImpIVA' 	: importe_iva,
		'ImpTrib' 	: 0, //Importe total de tributos
		'MonId' 	: 'PES', //Tipo de moneda usada ('PES' = pesos argentinos) 
		'MonCotiz' 	: 1, // Cotización de la moneda usada (1 para pesos argentinos) 
		'CbtesAsoc' : [ //Factura asociada
			{
				'Tipo' 		: tipo_factura_asociada,
				'PtoVta' 	: punto_factura_asociada,
				'Nro' 		: numero_factura_asociada,
			}
		],
		'Iva' 		: [ // Alícuotas asociadas a la Nota de Crédito
			{
				'Id' 		: 5, // Id del tipo de IVA (5 = 21%)
				'BaseImp' 	: importe_gravado,
				'Importe' 	: importe_iva 
			}
		]
	};

	/** 
	 * 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 Nota de Crédito
 **/
$tipo_de_nota = 8; // 8 = Nota de Crédito B

/**
 * Número de la ultima Nota de Crédito B
 **/
$last_voucher = $afip->ElectronicBilling->GetLastVoucher($punto_de_venta, $tipo_de_nota);

/**
 * Numero del punto de venta de la Factura 
 * asociada a la Nota de Crédito
 **/
$punto_factura_asociada = 1;

/**
 * Tipo de Factura asociada a la Nota de Crédito
 **/
$tipo_factura_asociada = 6; // 6 = Factura B

/**
 * Numero de Factura asociada a la Nota de Crédito
 **/
$numero_factura_asociada = 1;

/**
 * Concepto de la Nota de Crédito
 *
 * 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 = 99;

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

/**
 * Numero de Nota de Crédito
 **/
$numero_de_nota = $last_voucher+1;

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

/**
 * Importe sujeto al IVA (sin icluir IVA)
 **/
$importe_gravado = 100;

/**
 * Importe exento al IVA
 **/
$importe_exento_iva = 0;

/**
 * Importe de IVA
 **/
$importe_iva = 21;

/**
 * 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 Notas de Crédito a registrar
	'PtoVta' 	=> $punto_de_venta,
	'CbteTipo' 	=> $tipo_de_nota, 
	'Concepto' 	=> $concepto,
	'DocTipo' 	=> $tipo_de_documento,
	'DocNro' 	=> $numero_de_documento,
	'CbteDesde' => $numero_de_nota,
	'CbteHasta' => $numero_de_nota,
	'CbteFch' 	=> intval(str_replace('-', '', $fecha)),
	'FchServDesde'  => $fecha_servicio_desde,
	'FchServHasta'  => $fecha_servicio_hasta,
	'FchVtoPago'    => $fecha_vencimiento_pago,
	'ImpTotal' 	=> $importe_gravado + $importe_iva + $importe_exento_iva,
	'ImpTotConc'=> 0, // Importe neto no gravado
	'ImpNeto' 	=> $importe_gravado,
	'ImpOpEx' 	=> $importe_exento_iva,
	'ImpIVA' 	=> $importe_iva,
	'ImpTrib' 	=> 0, //Importe total de tributos
	'MonId' 	=> 'PES', //Tipo de moneda usada en la Nota de Crédito ('PES' = pesos argentinos) 
	'MonCotiz' 	=> 1, // Cotización de la moneda usada (1 para pesos argentinos)  
	'CbtesAsoc' => array( //Factura asociada
		array(
			'Tipo' 		=> $tipo_factura_asociada,
			'PtoVta' 	=> $punto_factura_asociada,
			'Nro' 		=> $numero_factura_asociada,
		)
	),
	'Iva' 		=> array(// Alícuotas asociadas a la Nota de Crédito
		array(
			'Id' 		=> 5, // Id del tipo de IVA (5 = 21%)
			'BaseImp' 	=> $importe_gravado,
			'Importe' 	=> $importe_iva 
		)
	), 
);

/** 
 * Creamos la Nota de Crédito 
 **/
$res = $afip->ElectronicBilling->CreateVoucher($data);

/**
 * Mostramos por pantalla los datos de la nueva Nota de Crédito 
 **/
var_dump(array(
	'cae' => $res['CAE'], //CAE asignado a la Nota de Crédito
	'vencimiento' => $res['CAEFchVto'] //Fecha de vencimiento del CAE
));
require "date"

# Numero del punto de venta
punto_de_venta = 1

# Tipo de factura
tipo_de_nota = 8 # 8 = Nota de Crédito B

# Número de la ultima Nota de Crédito B
last_voucher = afip.ElectronicBilling.getLastVoucher(punto_de_venta, tipo_de_nota)

# Numero del punto de venta de la Factura 
# asociada a la Nota de Crédito
punto_factura_asociada = 1

# Tipo de Factura asociada a la Nota de Crédito
tipo_factura_asociada = 6 # 6 = Factura B

# Numero de Factura asociada a la Nota de Crédito
numero_factura_asociada = 1

# 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 = 99

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

# Numero de Nota de Crédito
numero_de_nota = last_voucher+1

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

# Importe sujeto al IVA (sin icluir IVA)
importe_gravado = 100

# Importe exento al IVA
importe_exento_iva = 0

# Importe de IVA
importe_iva = 21

# 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 = 20191213

    # Fecha de fin de servicio en formato aaaammdd
    fecha_servicio_hasta = 20191213

    # Fecha de vencimiento del pago en formato aaaammdd
    fecha_vencimiento_pago = 20191213
else 
  fecha_servicio_desde = nil
  fecha_servicio_hasta = nil
  fecha_vencimiento_pago = nil
end

data = {
  "CantReg": 1, # Cantidad de Notas de Crédito a registrar
  "PtoVta": punto_de_venta,
  "CbteTipo": tipo_de_nota, 
  "Concepto": concepto,
  "DocTipo": tipo_de_documento,
  "DocNro": numero_de_documento,
  "CbteDesde": numero_de_nota,
  "CbteHasta": numero_de_nota,
  "CbteFch": fecha,
  "FchServDesde": fecha_servicio_desde,
  "FchServHasta": fecha_servicio_hasta,
  "FchVtoPago": fecha_vencimiento_pago,
  "ImpTotal": importe_gravado + importe_iva + importe_exento_iva,
  "ImpTotConc": 0, # Importe neto no gravado
  "ImpNeto": importe_gravado,
  "ImpOpEx": importe_exento_iva,
  "ImpIVA": importe_iva,
  "ImpTrib": 0, # Importe total de tributos
  "MonId": "PES", # Tipo de moneda usada ("PES" = pesos argentinos) 
  "MonCotiz": 1, # Cotización de la moneda usada (1 para pesos argentinos) 
  "CbtesAsoc": [ # Factura asociada
    {
      "Tipo": tipo_factura_asociada,
      "PtoVta": punto_factura_asociada,
      "Nro": numero_factura_asociada,
    }
  ],
  "Iva": [ # Alícuotas asociadas a la Nota de Crédito
    {
      "Id": 5, # Id del tipo de IVA (5 = 21%)
      "BaseImp": importe_gravado,
      "Importe": importe_iva 
    }
  ]
}

# 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_nota = 8 # 8 = Nota de Crédito B

# Número de la ultima Nota de Crédito B
last_voucher = afip.ElectronicBilling.getLastVoucher(punto_de_venta, tipo_de_nota)

# Numero del punto de venta de la Factura 
# asociada a la Nota de Crédito
punto_factura_asociada = 1

# Tipo de Factura asociada a la Nota de Crédito
tipo_factura_asociada = 6 # 6 = Factura B

# Numero de Factura asociada a la Nota de Crédito
numero_factura_asociada = 1

# 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 = 99

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

# Numero de Nota de Crédito
numero_de_nota = last_voucher+1

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

# Importe sujeto al IVA (sin icluir IVA)
importe_gravado = 100

# Importe exento al IVA
importe_exento_iva = 0

# Importe de IVA
importe_iva = 21

# 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 = 20191213

    # Fecha de fin de servicio en formato aaaammdd
    fecha_servicio_hasta = 20191213

    # Fecha de vencimiento del pago en formato aaaammdd
    fecha_vencimiento_pago = 20191213
else:
  fecha_servicio_desde = None
  fecha_servicio_hasta = None
  fecha_vencimiento_pago = None

data = {
  "CantReg": 1, # Cantidad de Notas de Crédito a registrar
  "PtoVta": punto_de_venta,
  "CbteTipo": tipo_de_nota, 
  "Concepto": concepto,
  "DocTipo": tipo_de_documento,
  "DocNro": numero_de_documento,
  "CbteDesde": numero_de_nota,
  "CbteHasta": numero_de_nota,
  "CbteFch": fecha,
  "FchServDesde": fecha_servicio_desde,
  "FchServHasta": fecha_servicio_hasta,
  "FchVtoPago": fecha_vencimiento_pago,
  "ImpTotal": importe_gravado + importe_iva + importe_exento_iva,
  "ImpTotConc": 0, # Importe neto no gravado
  "ImpNeto": importe_gravado,
  "ImpOpEx": importe_exento_iva,
  "ImpIVA": importe_iva,
  "ImpTrib": 0, # Importe total de tributos
  "MonId": "PES", # Tipo de moneda usada ("PES" = pesos argentinos) 
  "MonCotiz": 1, # Cotización de la moneda usada (1 para pesos argentinos) 
  "CbtesAsoc": [ # Factura asociada
    {
      "Tipo": tipo_factura_asociada,
      "PtoVta": punto_factura_asociada,
      "Nro": numero_factura_asociada,
    }
  ],
  "Iva": [ # Alícuotas asociadas a la Nota de Crédito
    {
      "Id": 5, # Id del tipo de IVA (5 = 21%)
      "BaseImp": importe_gravado,
      "Importe": importe_iva 
    }
  ]
}

# 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": 8
            },
            "FeDetReq": {
                "FECAEDetRequest": {
                    "Concepto": 1,
                    "DocTipo": 99,
                    "DocNro": 0,
                    "CbteDesde": 15,
                    "CbteHasta": 15,
                    "CbteFch": 20240314,
                    "FchServDesde": null,
                    "FchServHasta": null,
                    "FchVtoPago": null,
                    "ImpTotal": 121,
                    "ImpTotConc": 0,
                    "ImpNeto": 100,
                    "ImpOpEx": 0,
                    "ImpIVA": 21,
                    "ImpTrib": 0,
                    "MonId": "PES",
                    "MonCotiz": 1,
                    "CbtesAsoc": {
                        "CbteAsoc": [
                            {
                                "Tipo": 6,
                                "PtoVta": 1,
                                "Nro": 1
                            }
                        ]
                    },
                    "Iva": {
                        "AlicIva": [
                            {
                                "Id": 5,
                                "BaseImp": 100,
                                "Importe": 21
                            }
                        ]
                    }
                }
            }
        }
    }
}
AnteriorNota de Crédito ASiguienteNota de Crédito C

Última actualización hace 1 año

¿Te fue útil?

☁️
💵