💵Factura electrónica
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
La especificación de este Web Service se encuentra disponible en https://www.afip.gob.ar/fe/ayuda/documentos/wsfev1-COMPG.pdf
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
// 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
}
}
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)
Este método acepta mas parámetros, podes encontrar todos los parámetros disponibles En este ejemplo
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)
Este método acepta mas parámetros, podes encontrar todos los parámetros disponibles En este ejemplo
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
}]
}
}
}
}
}
}
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
Se debe llamar al endpoint Obtener número del último comprobante creado, al numero de comprobante que nos devuelve sumarle 1
, y llamar al endpoint Crear y asignar CAE a un comprobante
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
}
}
}
// 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
}
}
// 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
}
}
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"
}
}
}
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"
}
}
}
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"
}
}
}
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"
}
}
}
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"
}
}
}
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"
},
}
}
// 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"
}
}
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"
}
}
}
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"
}
}
}
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"
}
}
}
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.
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": {}
}