🚀Ir a producción
Última actualización
Última actualización
Si necesitas que un cliente te delegue un web service debes seguir al tutorial Aceptar delegación de web service
Podes obtener tu access_token
en:
// CUIT al cual le queremos generar el certificado
const taxId = 201111111111;
// Usuario para ingresar a AFIP.
// Para la mayoria es el mismo CUIT, pero al administrar
// una sociedad el CUIT con el que se ingresa es el del administrador
// de la sociedad.
const username = '201111111111';
// Contraseña para ingresar a AFIP.
const password = 'contraseñadeafip';
// Alias para el certificado (Nombre para reconocerlo en AFIP)
// un alias puede tener muchos certificados, si estas renovando
// un certificado pordes utilizar le mismo alias
const alias = 'afipsdk';
// Creamos una instancia de la libreria
const afip = new Afip({
CUIT: taxId,
access_token: 'access_token obtenido en https://app.afipsdk.com/'
production: true
});
// Creamos el certificado (¡Paciencia! Esto toma unos cuantos segundos)
const res = await afip.CreateCert(username, password, alias);
// Mostramos el certificado por pantalla
console.log(res.cert);
// Mostramos la key por pantalla
console.log(res.key);
// ATENCION! Recorda guardar el cert y key ya que
// la libreria por seguridad no los guarda, esto depende de vos.
// Si no lo guardas vas tener que generar uno nuevo con este metodo
// CUIT al cual le queremos generar el certificado
$tax_id = 201111111111;
// Usuario para ingresar a AFIP.
// Para la mayoria es el mismo CUIT, pero al administrar
// una sociedad el CUIT con el que se ingresa es el del administrador
// de la sociedad.
$username = '201111111111';
// Contraseña para ingresar a AFIP.
$password = 'contraseñadeafip';
// Alias para el certificado (Nombre para reconocerlo en AFIP)
// un alias puede tener muchos certificados, si estas renovando
// un certificado pordes utilizar le mismo alias
$alias = 'afipsdk';
// Creamos una instancia de la libreria
$afip = new Afip(array(
'CUIT' => $tax_id,
'access_token' => 'access_token obtenido en https://app.afipsdk.com/'
'production' => TRUE
));
// Creamos el certificado (¡Paciencia! Esto toma unos cuantos segundos)
$res = $afip->CreateCert(username, password, alias);
// Mostramos el certificado por pantalla
var_dump($res->cert);
// Mostramos la key por pantalla
var_dump($res->key);
// ATENCION! Recorda guardar el cert y key ya que
// la libreria por seguridad no los guarda, esto depende de vos.
// Si no lo guardas vas tener que generar uno nuevo con este metodo
# CUIT al cual le queremos generar el certificado
tax_id = 201111111111
# Usuario para ingresar a AFIP.
# Para la mayoria es el mismo CUIT, pero al administrar
# una sociedad el CUIT con el que se ingresa es el del administrador
# de la sociedad.
username = "201111111111"
# Contraseña para ingresar a AFIP.
password = "contraseñadeafip"
# Alias para el certificado (Nombre para reconocerlo en AFIP)
# un alias puede tener muchos certificados, si estas renovando
# un certificado pordes utilizar le mismo alias
cert_alias = "afipsdk"
# Creamos una instancia de la libreria
afip = Afip.new({
"CUIT": tax_id,
"access_token": "access_token obtenido en https://app.afipsdk.com/"
"production": true
})
# Creamos el certificado (¡Paciencia! Esto toma unos cuantos segundos)
res = afip.createCert(username, password, cert_alias)
# Mostramos el certificado por pantalla
puts res["cert"]
# Mostramos la key por pantalla
puts res["key"]
# ATENCION! Recorda guardar el cert y key ya que
# la libreria por seguridad no los guarda, esto depende de vos.
# Si no lo guardas vas tener que generar uno nuevo con este metodo
# CUIT al cual le queremos generar el certificado
tax_id = 201111111111
# Usuario para ingresar a AFIP.
# Para la mayoria es el mismo CUIT, pero al administrar
# una sociedad el CUIT con el que se ingresa es el del administrador
# de la sociedad.
username = "201111111111"
# Contraseña para ingresar a AFIP.
password = "contraseñadeafip"
# Alias para el certificado (Nombre para reconocerlo en AFIP)
# un alias puede tener muchos certificados, si estas renovando
# un certificado pordes utilizar le mismo alias
cert_alias = "afipsdk"
# Creamos una instancia de la libreria
afip = Afip({
"CUIT": tax_id,
"access_token": "access_token obtenido en https://app.afipsdk.com/"
"production": True
})
# Creamos el certificado (¡Paciencia! Esto toma unos cuantos segundos)
res = afip.createCert(username, password, cert_alias)
# Mostramos el certificado por pantalla
print(res["cert"])
# Mostramos la key por pantalla
print(res["key"])
# ATENCION! Recorda guardar el cert y key ya que
# la libreria por seguridad no los guarda, esto depende de vos.
# Si no lo guardas vas tener que generar uno nuevo con este metodo
Endpoint
POST
https://app.afipsdk.com/api/v1/afip/certs
Body
environment
string
Usar "dev" para ambiente de desarrollo o "prod" para producción
tax_id
string
CUIT al cual le queremos generar el certificado
username
string
Usuario para ingresar a AFIP. Para la mayoría es el mismo CUIT, pero al administrar una sociedad el CUIT con el que se ingresa es el del administrador de la sociedad.
password
string
Contraseña para ingresar a AFIP.
alias
string
Alias para el certificado (Nombre para reconocerlo en AFIP), un alias puede tener muchos certificados, si estas renovando un certificado podes utilizar el mismo alias
Ejemplo
{
"environment": "prod",
"tax_id": "11111111111",
"username": "11111111111",
"password": "aqui_la_contraseña",
"alias": "afipsdk"
}
Al crear el certificado nos devolverá un long_job_id
y su status
Response
{
"status": "in_process",
"long_job_id": "0d1e71e0-8882-4b14-b7f8-c5d716261760"
}
Ahora debemos agregarle el long_job_id
al body y llamar nuevamente al endpoint hasta que se cambie el status
{
"environment": "prod",
"tax_id": "11111111111",
"username": "11111111111",
"password": "aqui_la_contraseña",
"alias": "afipsdk",
"long_job_id": "0d1e71e0-8882-4b14-b7f8-c5d716261760"
}
La recomendación es intentar cada 5 segundos, suele tardar entre 15 y 60 segundos en estar listo, dependiendo de la congestion de AFIP.
STATUS
200
{
"status": "complete",
"data": {
"cert": "-----BEGIN CERTIFICATE-----\nMIIDRzC...",
"key": "-----BEGIN RSA PRIVATE KEY-----\r\nMIIEowIBAAKCA..."
}
}
STATUS
400
{
"status": "error",
"data": {
"message":"Número de CUIL/CUIT incorrecto"
}
}
También podes optar por la opción de generar el certificado manualmente, de ser así poder hacerlo siguiendo el siguiente tutorial
📜Obtener certificado de producciónAl crear una instancia de la librería debes cambiar los siguientes parámetros:
const fs = require('fs');
// Certificado (Puede estar guardado en archivos, DB, etc)
const cert = fs.readFileSync('./certificado.crt', {encoding: 'utf8'});
// Key (Puede estar guardado en archivos, DB, etc)
const key = fs.readFileSync('./key.key', {encoding: 'utf8'});
const afip = new Afip({
CUIT: 20111111112,
cert: cert,
key: key,
access_token: 'access_token obtenido en https://app.afipsdk.com/',
production: true
});
// Certificado (Puede estar guardado en archivos, DB, etc)
$cert = file_get_contents('./certificado.crt');
// Key (Puede estar guardado en archivos, DB, etc)
$key = file_get_contents('./key.key');
$afip = new Afip(array(
'CUIT' => 20111111112,
'cert' => $cert,
'key' => $key,
'access_token' => 'access_token obtenido en https://app.afipsdk.com/',
'production' => TRUE
));
# Certificado (Puede estar guardado en archivos, DB, etc)
cert = File.read("./certificado.crt")
# Key (Puede estar guardado en archivos, DB, etc)
key = File.read("./key.key")
afip = Afip.new({
"CUIT": 20111111112,
"cert": cert,
"key": key,
"access_token": "access_token obtenido en https://app.afipsdk.com/",
"production": true
})
# Certificado (Puede estar guardado en archivos, DB, etc)
cert = open("./certificado.crt").read()
# Key (Puede estar guardado en archivos, DB, etc)
key = open("./key.key").read()
afip = Afip({
"CUIT": 20111111112,
"cert": cert,
"key": key,
"access_token": "access_token obtenido en https://app.afipsdk.com/",
"production": True
})
Debemos agregar el access_token al header de autorización
Authorization: Bearer AQUI_EL_ACCESS_TOKEN
En los requests cambiar el parámetro environment: prod
{
"environment": "prod"
}
En los request de Autorización agregarle el cert y key de producción
{
"environment": "prod",
"cert": "-----BEGIN CERTIFICATE-----\nMIIDRzC...",
"key": "-----BEGIN RSA PRIVATE KEY-----\r\nMIIEowIBAAKCA..."
}
Eso es todo, ya podes usar los web services de AFIP en producción.