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
  • Crear PDF
  • Obtener número del último comprobante creado
  • Crear y asignar CAE a un comprobante
  • Crear y asignar CAE a siguiente comprobante
  • Obtener información de un comprobante ya emitido
  • Crear CAEA
  • Obtener información de CAEA ya emitido
  • Obtener puntos de venta disponibles
  • Obtener tipos de comprobantes disponibles
  • Obtener tipos de conceptos disponibles
  • Obtener tipos de documentos disponibles
  • Obtener tipos de alícuotas disponibles
  • Obtener tipos de monedas disponibles
  • Obtener cotización de moneda
  • Obtener tipos de opciones disponibles para el comprobante
  • Obtener tipos de tributos disponibles
  • Obtener tipos de condiciones frente al IVA disponibles
  • Transformar formato de fecha que utiliza AFIP
  • Obtener estado del servidor

¿Te fue útil?

  1. Paso a paso
  2. Web services

Factura electrónica

AnteriorWeb servicesSiguienteCrear PDF

Última actualización hace 2 meses

¿Te fue útil?

La especificación de este Web Service se encuentra disponible en

Identificador wsfe

Producción

Desarrollo

Aquí hablaremos de comprobante indistintamente si es una factura, nota de crédito, etc.

Si es tu primera vez conectándote con la facturación electrónica de AFIP/ARCA, te recomiendo leer esta guía básica sobre su funcionamiento general:


Métodos disponibles

Métodos para obtener los tipos de datos

Otros métodos disponibles


Crear PDF

Obtener número del último comprobante creado

// Numero de punto de venta
const puntoDeVenta = 1;

// Tipo de comprobante
const tipoDeComprobante = 6; // 6 = Factura B

const lastVoucher = await afip.ElectronicBilling.getLastVoucher(puntoDeVenta, tipoDeComprobante);
// Numero de punto de venta
$punto_de_venta = 1;

// Tipo de comprobante
$tipo_de_comprobante = 6; // 6 = Factura B

$last_voucher = $afip->ElectronicBilling->GetLastVoucher($punto_de_venta, $tipo_de_comprobante);
# Numero de punto de venta
punto_de_venta = 1

# Tipo de comprobante
tipo_de_comprobante = 6 # 6 = Factura B

last_voucher = afip.ElectronicBilling.getLastVoucher(punto_de_venta, tipo_de_comprobante)
# Numero de punto de venta
punto_de_venta = 1

# Tipo de comprobante
tipo_de_comprobante = 6 # 6 = Factura B

last_voucher = afip.ElectronicBilling.getLastVoucher(punto_de_venta, tipo_de_comprobante)

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FECompUltimoAutorizado",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        },
        "PtoVta" : 1,
        "CbteTipo" : 6
    }
}

Crear y asignar CAE a un comprobante

Debemos utilizar el método createVoucher pasándole como parámetro un Objeto con los detalles del comprobante y si queremos tener la respuesta completa enviada por el WS debemos pasarle como segundo parámetro true, en caso de no enviarle el segundo parámetro nos devolverá como respuesta { CAE : CAE asignado el comprobante, CAEFchVto : Fecha de vencimiento del CAE (yyyy-mm-dd) }.

// Devolver respuesta completa del web service
const returnFullResponse = false;

const date = new Date(Date.now() - ((new Date()).getTimezoneOffset() * 60000)).toISOString().split('T')[0];

// Info del comprobante
let data = {
	'CantReg' 	: 1,  // Cantidad de comprobantes a registrar
	'PtoVta' 	: 1,  // Punto de venta
	'CbteTipo' 	: 6,  // Tipo de comprobante (ver tipos disponibles) 
	'Concepto' 	: 1,  // Concepto del Comprobante: (1)Productos, (2)Servicios, (3)Productos y Servicios
	'DocTipo' 	: 99, // Tipo de documento del comprador (99 consumidor final, ver tipos disponibles)
	'DocNro' 	: 0,  // Número de documento del comprador (0 consumidor final)
	'CbteDesde' 	: 1,  // Número de comprobante o numero del primer comprobante en caso de ser mas de uno
	'CbteHasta' 	: 1,  // Número de comprobante o numero del último comprobante en caso de ser mas de uno
	'CbteFch' 	: parseInt(date.replace(/-/g, '')), // (Opcional) Fecha del comprobante (yyyymmdd) o fecha actual si es nulo
	'ImpTotal' 	: 121, // Importe total del comprobante
	'ImpTotConc' 	: 0,   // Importe neto no gravado
	'ImpNeto' 	: 100, // Importe neto gravado
	'ImpOpEx' 	: 0,   // Importe exento de IVA
	'ImpIVA' 	: 21,  //Importe total de IVA
	'ImpTrib' 	: 0,   //Importe total de tributos
	'MonId' 	: 'PES', //Tipo de moneda usada en el comprobante (ver tipos disponibles)('PES' para pesos argentinos) 
	'MonCotiz' 	: 1,     // Cotización de la moneda usada (1 para pesos argentinos)  
	'Iva' 		: [ // (Opcional) Alícuotas asociadas al comprobante
		{
			'Id' 		: 5, // Id del tipo de IVA (5 para 21%)(ver tipos disponibles) 
			'BaseImp' 	: 100, // Base imponible
			'Importe' 	: 21 // Importe 
		}
	],
};

const res = await afip.ElectronicBilling.createVoucher(data, returnFullResponse);

res['CAE']; //CAE asignado el comprobante
res['CAEFchVto']; //Fecha de vencimiento del CAE (yyyy-mm-dd)

Debemos utilizar el método CreateVoucher pasándole como parámetro un Array con los detalles del comprobante y si queremos tener la respuesta completa devuelta por el WS debemos pasarle como segundo parámetro TRUE, en caso de no enviarle el segundo parámetro nos devolverá como respuesta array(CAE => CAE asignado el comprobante, CAEFchVto => Fecha de vencimiento del CAE (yyyy-mm-dd)).

// Devolver respuesta completa del web service
$return_full_response = FALSE;

// Info del comprobante
$data = array(
	'CantReg' 	=> 1,  // Cantidad de comprobantes a registrar
	'PtoVta' 	=> 1,  // Punto de venta
	'CbteTipo' 	=> 6,  // Tipo de comprobante (ver tipos disponibles) 
	'Concepto' 	=> 1,  // Concepto del Comprobante: (1)Productos, (2)Servicios, (3)Productos y Servicios
	'DocTipo' 	=> 99, // Tipo de documento del comprador (99 consumidor final, ver tipos disponibles)
	'DocNro' 	=> 0,  // Número de documento del comprador (0 consumidor final)
	'CbteDesde' 	=> 1,  // Número de comprobante o numero del primer comprobante en caso de ser mas de uno
	'CbteHasta' 	=> 1,  // Número de comprobante o numero del último comprobante en caso de ser mas de uno
	'CbteFch' 	=> intval(date('Ymd')), // (Opcional) Fecha del comprobante (yyyymmdd) o fecha actual si es nulo
	'ImpTotal' 	=> 121, // Importe total del comprobante
	'ImpTotConc' 	=> 0,   // Importe neto no gravado
	'ImpNeto' 	=> 100, // Importe neto gravado
	'ImpOpEx' 	=> 0,   // Importe exento de IVA
	'ImpIVA' 	=> 21,  //Importe total de IVA
	'ImpTrib' 	=> 0,   //Importe total de tributos
	'MonId' 	=> 'PES', //Tipo de moneda usada en el comprobante (ver tipos disponibles)('PES' para pesos argentinos) 
	'MonCotiz' 	=> 1,     // Cotización de la moneda usada (1 para pesos argentinos)  
	'Iva' 		=> array( // (Opcional) Alícuotas asociadas al comprobante
		array(
			'Id' 		=> 5, // Id del tipo de IVA (5 para 21%)(ver tipos disponibles) 
			'BaseImp' 	=> 100, // Base imponible
			'Importe' 	=> 21 // Importe 
		)
	), 
);

$res = $afip->ElectronicBilling->CreateVoucher($data, $return_full_response);

$res['CAE']; //CAE asignado el comprobante
$res['CAEFchVto']; //Fecha de vencimiento del CAE (yyyy-mm-dd)

Debemos utilizar el método createVoucher pasándole como parámetro un Hash con los detalles del comprobante y si queremos tener la respuesta completa devuelta por el WS debemos pasarle como segundo parámetro true, en caso de no enviarle el segundo parámetro nos devolverá como respuesta { "CAE": CAE asignado el comprobante, "CAEFchVto" : Fecha de vencimiento del CAE (yyyy-mm-dd) }.

# Devolver respuesta completa del web service
return_full_response = FALSE

# Info del comprobante
data = {
  "CantReg": 1,  # Cantidad de comprobantes a registrar
  "PtoVta": 1,  # Punto de venta
  "CbteTipo": 6,  # Tipo de comprobante (ver tipos disponibles) 
  "Concepto": 1,  # Concepto del Comprobante: (1)Productos, (2)Servicios, (3)Productos y Servicios
  "DocTipo": 99, # Tipo de documento del comprador (99 consumidor final, ver tipos disponibles)
  "DocNro": 0,  # Número de documento del comprador (0 consumidor final)
  "CbteDesde": 1,  # Número de comprobante o numero del primer comprobante en caso de ser mas de uno
  "CbteHasta": 1,  # Número de comprobante o numero del último comprobante en caso de ser mas de uno
  "CbteFch": 20231220, # (Opcional) Fecha del comprobante (yyyymmdd) o fecha actual si es nulo
  "ImpTotal": 121, # Importe total del comprobante
  "ImpTotConc": 0,   # Importe neto no gravado
  "ImpNeto": 100, # Importe neto gravado
  "ImpOpEx": 0,   # Importe exento de IVA
  "ImpIVA": 21,  # Importe total de IVA
  "ImpTrib": 0,   # Importe total de tributos
  "MonId": "PES", # Tipo de moneda usada en el comprobante (ver tipos disponibles)("PES" para pesos argentinos) 
  "MonCotiz": 1,     # Cotización de la moneda usada (1 para pesos argentinos)  
  "Iva": [ # (Opcional) Alícuotas asociadas al comprobante
    {
      "Id": 5, # Id del tipo de IVA (5 para 21%)(ver tipos disponibles) 
      "BaseImp": 100, # Base imponible
      "Importe": 21 # Importe 
    }
  ]
}

res = afip.ElectronicBilling.createVoucher(data, return_full_response)

res["CAE"] # CAE asignado el comprobante
res["CAEFchVto"] # Fecha de vencimiento del CAE (yyyy-mm-dd)

Debemos utilizar el método createVoucher pasándole como parámetro un Hash con los detalles del comprobante y si queremos tener la respuesta completa devuelta por el WS debemos pasarle como segundo parámetro true, en caso de no enviarle el segundo parámetro nos devolverá como respuesta { "CAE": CAE asignado el comprobante, "CAEFchVto" : Fecha de vencimiento del CAE (yyyy-mm-dd) }.

# Devolver respuesta completa del web service
return_full_response = False

# Info del comprobante
data = {
  "CantReg": 1,  # Cantidad de comprobantes a registrar
  "PtoVta": 1,  # Punto de venta
  "CbteTipo": 6,  # Tipo de comprobante (ver tipos disponibles) 
  "Concepto": 1,  # Concepto del Comprobante: (1)Productos, (2)Servicios, (3)Productos y Servicios
  "DocTipo": 99, # Tipo de documento del comprador (99 consumidor final, ver tipos disponibles)
  "DocNro": 0,  # Número de documento del comprador (0 consumidor final)
  "CbteDesde": 1,  # Número de comprobante o numero del primer comprobante en caso de ser mas de uno
  "CbteHasta": 1,  # Número de comprobante o numero del último comprobante en caso de ser mas de uno
  "CbteFch": 20231220, # (Opcional) Fecha del comprobante (yyyymmdd) o fecha actual si es nulo
  "ImpTotal": 121, # Importe total del comprobante
  "ImpTotConc": 0,   # Importe neto no gravado
  "ImpNeto": 100, # Importe neto gravado
  "ImpOpEx": 0,   # Importe exento de IVA
  "ImpIVA": 21,  # Importe total de IVA
  "ImpTrib": 0,   # Importe total de tributos
  "MonId": "PES", # Tipo de moneda usada en el comprobante (ver tipos disponibles)("PES" para pesos argentinos) 
  "MonCotiz": 1,     # Cotización de la moneda usada (1 para pesos argentinos)  
  "Iva": [ # (Opcional) Alícuotas asociadas al comprobante
    {
      "Id": 5, # Id del tipo de IVA (5 para 21%)(ver tipos disponibles) 
      "BaseImp": 100, # Base imponible
      "Importe": 21 # Importe 
    }
  ]
}

res = afip.ElectronicBilling.createVoucher(data, return_full_response)

res["CAE"] # CAE asignado el comprobante
res["CAEFchVto"] # Fecha de vencimiento del CAE (yyyy-mm-dd)

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" 	: 6
            },
            "FeDetReq" : { 
                "FECAEDetRequest" : {
                    "Concepto" : 1,
                    "DocTipo" : 99,
                    "DocNro" : 0,
                    "CbteDesde" : 1,
                    "CbteHasta" : 1,
                    "CbteFch" : 20240313,
                    "ImpTotal" : 121,
                    "ImpTotConc" : 0,
                    "ImpNeto" : 100,
                    "ImpOpEx" : 0,
                    "ImpIVA" : 21,
                    "ImpTrib" : 0,
                    "MonId" : "PES",
                    "MonCotiz" : 1,
                    "Iva" : { 
                        "AlicIva": [{
                                "Id" : 5,
                                "BaseImp" : 100,
                                "Importe" : 21
                        }]
                    }
                }
            }
        }
    }
}

Crear y asignar CAE a siguiente comprobante

Debemos utilizar el método createNextVoucher pasándole como parámetro un Objeto con los detalles del comprobante al igual que el método createVoucher, nos devolverá como respuesta { CAE : CAE asignado al comprobante, CAEFchVto : Fecha de vencimiento del CAE (yyyy-mm-dd), voucher_number : Número asignado al comprobante }.

const res = await afip.ElectronicBilling.createNextVoucher(data);

res['CAE']; //CAE asignado el comprobante
res['CAEFchVto']; //Fecha de vencimiento del CAE (yyyy-mm-dd)
res['voucher_number']; //Número asignado al comprobante

Debemos utilizar el método CreateNextVoucher pasándole como parámetro un Array con los detalles del comprobante al igual que el método CreateVoucher, nos devolverá como respuesta array(CAE => CAE asignado al comprobante, CAEFchVto => Fecha de vencimiento del CAE (yyyy-mm-dd), voucher_number => Número asignado al comprobante).

$res = $afip->ElectronicBilling->CreateNextVoucher($data);

$res['CAE']; //CAE asignado el comprobante
$res['CAEFchVto']; //Fecha de vencimiento del CAE (yyyy-mm-dd)
$res['voucher_number']; //Número asignado al comprobante

Debemos utilizar el método createNextVoucher pasándole como parámetro un Hash con los detalles del comprobante al igual que el método createVoucher, nos devolverá como respuesta { "CAE" : CAE asignado al comprobante, "CAEFchVto" : Fecha de vencimiento del CAE (yyyy-mm-dd), "voucher_number" : Número asignado al comprobante }.

res = afip.ElectronicBilling.createNextVoucher(data)

res["CAE"] # CAE asignado el comprobante
res["CAEFchVto"] # Fecha de vencimiento del CAE (yyyy-mm-dd)
res["voucher_number"] # Número asignado al comprobante

Debemos utilizar el método createNextVoucher pasándole como parámetro un Hash con los detalles del comprobante al igual que el método createVoucher, nos devolverá como respuesta { "CAE" : CAE asignado al comprobante, "CAEFchVto" : Fecha de vencimiento del CAE (yyyy-mm-dd), "voucher_number" : Número asignado al comprobante }.

res = afip.ElectronicBilling.createNextVoucher(data)

res["CAE"] # CAE asignado el comprobante
res["CAEFchVto"] # Fecha de vencimiento del CAE (yyyy-mm-dd)
res["voucher_number"] # Número asignado al comprobante

Obtener información de un comprobante ya emitido

Con este método podemos obtener toda la información relacionada a un comprobante o simplemente saber si el comprobante existe.

// Numero de comprobante
const numeroDeComprobante = 1;

// Numero de punto de venta
const puntoDeVenta = 1;

// Tipo de comprobante
const tipoDeComprobante = 6; // 6 = Factura B

const voucherInfo = await afip.ElectronicBilling.getVoucherInfo(numeroDeComprobante, puntoDeVenta, tipoDeComprobante);

if(voucherInfo === null){
    console.log('El comprobante no existe');
}
else{
    console.log('Esta es la información del comprobante:');
    console.log(voucherInfo);
}
// Numero de comprobante
$numero_de_comprobante = 1;

// Numero de punto de venta
$punto_de_venta = 1;

// Tipo de comprobante
$tipo_de_comprobante = 6; // 6 = Factura B

$voucher_info = $afip->ElectronicBilling->GetVoucherInfo($numero_de_comprobante, $punto_de_venta, $tipo_de_comprobante);

if($voucher_info === NULL){
    echo 'El comprobante no existe';
}
else{
    echo 'Esta es la información del comprobante:';
    echo '<pre>';
    print_r($voucher_info);
    echo '</pre>';
}
# Numero de comprobante
numero_de_comprobante = 1

# Numero de punto de venta
punto_de_venta = 1

# Tipo de comprobante
tipo_de_comprobante = 6 # 6 = Factura B

voucher_info = afip.ElectronicBilling.getVoucherInfo(numero_de_comprobante, punto_de_venta, tipo_de_comprobante)

puts  "Esta es la información del comprobante:"
puts voucher_info
# Numero de comprobante
numero_de_comprobante = 1

# Numero de punto de venta
punto_de_venta = 1

# Tipo de comprobante
tipo_de_comprobante = 6 # 6 = Factura B

voucher_info = afip.ElectronicBilling.getVoucherInfo(numero_de_comprobante, punto_de_venta, tipo_de_comprobante)

print("Esta es la información del comprobante:")
print(voucher_info)

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FECompConsultar",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        },
        "FeCompConsReq" : {
            "CbteNro" : 10,
            "PtoVta" : 1,
            "CbteTipo" : 6
        }
    }
}

Crear CAEA

// Periodo del CAEA. (yyyymm) 
const periodo = 202307;

// Orden del CAEA dentro del periodo. Quincena 1, Quincena 2 
const orden = 1;

const caeaInfo = await afip.ElectronicBilling.createCAEA(periodo, orden);
// Periodo del CAEA. (yyyymm) 
$periodo = 202307;

// Orden del CAEA dentro del periodo. Quincena 1, Quincena 2 
$orden = 1;

$caea_info = $afip->ElectronicBilling->CreateCAEA($periodo, $orden);
# Periodo del CAEA. (yyyymm) 
periodo = 202307

# Orden del CAEA dentro del periodo. Quincena 1, Quincena 2 
orden = 1

caea_info = afip.ElectronicBilling.createCAEA(periodo, orden)
# Periodo del CAEA. (yyyymm) 
periodo = 202307

# Orden del CAEA dentro del periodo. Quincena 1, Quincena 2 
orden = 1

caea_info = afip.ElectronicBilling.createCAEA(periodo, orden)

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FECAEASolicitar",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        },
        "Periodo": 202403,
        "Orden": 1
    }
}

Obtener información de CAEA ya emitido

// Periodo del CAEA. (yyyymm) 
const periodo = 202307;

// Orden del CAEA dentro del periodo. Quincena 1, Quincena 2 
const orden = 1;

const caeaInfo = await afip.ElectronicBilling.getCAEA(periodo, orden);
// Periodo del CAEA. (yyyymm) 
$periodo = 202307;

// Orden del CAEA dentro del periodo. Quincena 1, Quincena 2 
$orden = 1;

$caea_info = $afip->ElectronicBilling->GetCAEA($periodo, $orden);
# Periodo del CAEA. (yyyymm) 
periodo = 202307

# Orden del CAEA dentro del periodo. Quincena 1, Quincena 2 
orden = 1

caea_info = afip.ElectronicBilling.getCAEA(periodo, orden)
# Periodo del CAEA. (yyyymm) 
periodo = 202307

# Orden del CAEA dentro del periodo. Quincena 1, Quincena 2 
orden = 1

caea_info = afip.ElectronicBilling.getCAEA(periodo, orden)

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FECAEAConsultar",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        },
        "Periodo": 202403,
        "Orden": 1
    }
}

Obtener puntos de venta disponibles

Es normal recibir un error en testing ya que no existen puntos de venta para testing (siempre se usa 1)

const salesPoints = await afip.ElectronicBilling.getSalesPoints()
$sales_points = $afip->ElectronicBilling->GetSalesPoints();
sales_points = afip.ElectronicBilling.getSalesPoints
sales_points = afip.ElectronicBilling.getSalesPoints()

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FEParamGetPtosVenta",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        }
    }
}

Obtener tipos de comprobantes disponibles

const voucherTypes = await afip.ElectronicBilling.getVoucherTypes();
$voucher_types = $afip->ElectronicBilling->GetVoucherTypes();
voucher_types = afip.ElectronicBilling.getVoucherTypes
voucher_types = afip.ElectronicBilling.getVoucherTypes()

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FEParamGetTiposCbte",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        }
    }
}

Obtener tipos de conceptos disponibles

const conceptTypes = await afip.ElectronicBilling.getConceptTypes();
$concept_types = $afip->ElectronicBilling->GetConceptTypes();
concept_types = afip.ElectronicBilling.getConceptTypes
concept_types = afip.ElectronicBilling.getConceptTypes()

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FEParamGetTiposConcepto",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        }
    }
}

Obtener tipos de documentos disponibles

const documentTypes = await afip.ElectronicBilling.getDocumentTypes();
$document_types = $afip->ElectronicBilling->GetDocumentTypes();
document_types = afip.ElectronicBilling.getDocumentTypes
document_types = afip.ElectronicBilling.getDocumentTypes()

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FEParamGetTiposDoc",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        }
    }
}

Obtener tipos de alícuotas disponibles

const aloquotTypes = await afip.ElectronicBilling.getAliquotTypes();
$aloquot_types = $afip->ElectronicBilling->GetAliquotTypes();
aloquot_types = afip.ElectronicBilling.getAliquotTypes
aloquot_types = afip.ElectronicBilling.getAliquotTypes()

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FEParamGetTiposIva",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        }
    }
}

Obtener tipos de monedas disponibles

const currenciesTypes = await afip.ElectronicBilling.getCurrenciesTypes();
$currencies_types = $afip->ElectronicBilling->GetCurrenciesTypes();
currencies_types = afip.ElectronicBilling.getCurrenciesTypes
currencies_types = afip.ElectronicBilling.getCurrenciesTypes()

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FEParamGetTiposMonedas",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        },
        
    }
}

Obtener cotización de moneda

// ID de la moneda a consultar (El ID se obtiene del método para obtener los tipos de monedas)
const currencyID = 'DOL'

// Fecha de la cotización en formato aaaammdd | Por ej. 20250221 = 21 de febrero de 2025
const rateDate = '20250221';

const exchangeRate =  await afip.ElectronicBilling.executeRequest('FEParamGetCotizacion', {
    MonId: currencyID,
    FchCotiz: rateDate
})
// ID de la moneda a consultar (El ID se obtiene del método para obtener los tipos de monedas)
$currency_id = 'DOL'

// Fecha de la cotización en formato aaaammdd | Por ej. 20250221 = 21 de febrero de 2025
$rate_date = '20250221';

$exchange_rate =  $afip->ElectronicBilling->ExecuteRequest('FEParamGetCotizacion', array(
    "MonId" => $currency_id,
    "FchCotiz" => $rate_date
));
# ID de la moneda a consultar (El ID se obtiene del método para obtener los tipos de monedas)
currency_id = 'DOL'

# Fecha de la cotización en formato aaaammdd | Por ej. 20250221 = 21 de febrero de 2025
rate_date = '20250221';

exchange_rate =  afip.ElectronicBilling.executeRequest('FEParamGetCotizacion', {
    "MonId": currency_id,
    "FchCotiz": rate_date
});
# ID de la moneda a consultar (El ID se obtiene del método para obtener los tipos de monedas)
currency_id = 'DOL'

# Fecha de la cotización en formato aaaammdd | Por ej. 20250221 = 21 de febrero de 2025
rate_date = '20250221';

exchange_rate =  afip.ElectronicBilling.executeRequest('FEParamGetCotizacion', {
    "MonId": currency_id,
    "FchCotiz": rate_date
});

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FEParamGetCotizacion",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        },
        "MonId": "DOL",
        "FchCotiz": "20250221"
    }
}

Obtener tipos de opciones disponibles para el comprobante

const optionTypes = await afip.ElectronicBilling.getOptionsTypes();
$option_types = $afip->ElectronicBilling->GetOptionsTypes();
option_types = afip.ElectronicBilling.getOptionsTypes
option_types = afip.ElectronicBilling.getOptionsTypes()

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FEParamGetTiposOpcional",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        }
    }
}

Obtener tipos de tributos disponibles

const taxTypes = await afip.ElectronicBilling.getTaxTypes();
$tax_types = $afip->ElectronicBilling->GetTaxTypes();
tax_types = afip.ElectronicBilling.getTaxTypes
tax_types = afip.ElectronicBilling.getTaxTypes()

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FEParamGetTiposTributos",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        }
    }
}

Obtener tipos de condiciones frente al IVA disponibles

Este método estará disponible en producción a partir del 15 de abril de 2025. Antes de esa fecha, obtendrán un error indicando que el método no existe.

const taxConditionTypes =  await afip.ElectronicBilling.executeRequest('FEParamGetCondicionIvaReceptor')
$tax_condition_types = $afip->ElectronicBilling->ExecuteRequest('FEParamGetCondicionIvaReceptor');
tax_condition_types = afip.ElectronicBilling.executeRequest('FEParamGetCondicionIvaReceptor')
tax_condition_types = afip.ElectronicBilling.executeRequest('FEParamGetCondicionIvaReceptor')

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FEParamGetCondicionIvaReceptor",
    "wsid": "wsfe",
    "params": {
        "Auth" : { 
            "Token": "{{token}}",
            "Sign": "{{sign}}",
            "Cuit": "20409378472"
        }
    }
}

Transformar formato de fecha que utiliza AFIP

De yyyymmdd a yyyy-mm-dd

const date = afip.ElectronicBilling.formatDate('19970508'); //Nos devuelve 1997-05-08
$date = $afip->ElectronicBilling->FormatDate('19970508'); //Nos devuelve 1997-05-08
date = afip.ElectronicBilling.formatDate('19970508') # Nos devuelve 1997-05-08
date = afip.ElectronicBilling.formatDate('19970508') # Nos devuelve 1997-05-08

Si lo necesitas, a esto podes implementarlo con el lenguaje que utilices.

Obtener estado del servidor

No te confíes mucho de este método, AFIP siempre devuelve que esta todo bien incluso cuando hay algo fallando.

const serverStatus = await afip.ElectronicBilling.getServerStatus();

console.log('Este es el estado del servidor:');
console.log(serverStatus);
$server_status = $afip->ElectronicBilling->GetServerStatus();

echo 'Este es el estado del servidor:';
echo '<pre>';
print_r($server_status);
echo '</pre>';
server_status = afip.ElectronicBilling.getServerStatus

puts "Este es el estado del servidor:"
puts server_status
server_status = afip.ElectronicBilling.getServerStatus()

print("Este es el estado del servidor:")
print(server_status)

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

{
    "environment": "dev",
    "method": "FEDummy",
    "wsid": "wsfe",
    "params": {}
}

Este método acepta mas parámetros, podes encontrar todos los parámetros disponibles

Este método acepta mas parámetros, podes encontrar todos los parámetros disponibles

Se debe llamar al endpoint , al numero de comprobante que nos devuelve sumarle 1, y llamar al endpoint

☁️
💵
Crear PDF
En este ejemplo
En este ejemplo
Crear PDF
Obtener número del último comprobante creado
Crear y asignar CAE a un comprobante
Crear y asignar CAE a siguiente comprobante
Obtener información de un comprobante ya emitido
Crear CAEA
Obtener información de CAEA ya emitido
Obtener puntos de venta disponibles
Obtener tipos de comprobantes disponibles
Obtener tipos de conceptos disponibles
Obtener tipos de documentos disponibles
Obtener tipos de alícuotas disponibles
Obtener tipos de monedas disponibles
Obtener tipos de opciones disponibles para el comprobante
Obtener tipos de tributos disponibles
Transformar formato de fecha que utiliza AFIP
Obtener estado del servidor
Obtener número del último comprobante creado
Crear y asignar CAE a un comprobante
https://www.afip.gob.ar/fe/ayuda/documentos/wsfev1-COMPG.pdf
Conectar tu sistema con la facturación electrónica de AFIP
Produccion
Desarrollo
Logo