-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8661d34
commit 8a0a5ef
Showing
2 changed files
with
191 additions
and
0 deletions.
There are no files selected for viewing
96 changes: 96 additions & 0 deletions
96
src/content/blog/autorizar-uso-de-web-services-de-afip-via-api.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
--- | ||
title: "Autorizar uso de web services de AFIP via API" | ||
description: "Con pocas líneas de código" | ||
pubDate: "Aug 24 2024" | ||
cover: "/images/blog/api.png" | ||
category: "API" | ||
--- | ||
|
||
Podemos usar Afip SDK para autorizarle, a los certificados que creamos, el acceso a los diferentes web services y evitar hacerlo de manera manual, ya que no solo es difícil, sino que puede tener errores humanos. | ||
|
||
|
||
## Creamos la autorización | ||
|
||
Para realizar autorizacion al web service lo primero que debemos hacer es ejecutar una solicitud **POST** al endpoint | ||
|
||
```bash | ||
https://app.afipsdk.com/api/v1/afip/ws-auths | ||
``` | ||
|
||
Con los parametros | ||
|
||
| Nombre | Tipo | Valor | | ||
| ------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| `environment` | string | Usar "dev" para ambiente de desarrollo o "prod" para producción | | ||
| `tax_id` | string | CUIT al cual le queremos generar la autorización | | ||
| `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 del certificado a autorizar (previamente creado). | | ||
| `wsid` | string | Id del web service a autorizar. | | ||
|
||
**Ejemplo** | ||
|
||
```json | ||
{ | ||
"environment": "dev", | ||
"tax_id": "11111111111", | ||
"username": "11111111111", | ||
"password": "aqui_la_contraseña", | ||
"alias": "afipsdk", | ||
"wsid": "wsfe" | ||
} | ||
``` | ||
|
||
Al crear la autorizacion nos devolverá un `long_job_id` y su `status` | ||
|
||
**Response** | ||
|
||
```json | ||
{ | ||
"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` | ||
|
||
```json | ||
{ | ||
"environment": "dev", | ||
"tax_id": "11111111111", | ||
"username": "11111111111", | ||
"password": "aqui_la_contraseña", | ||
"alias": "afipsdk", | ||
"wsid": "wsfe", | ||
"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. | ||
|
||
<mark style="color:green;">`STATUS`</mark> `200` | ||
|
||
```json | ||
{ | ||
"status": "complete", | ||
"data": { | ||
"status": "created" | ||
} | ||
} | ||
``` | ||
|
||
<mark style="color:red;">`STATUS`</mark> `400` | ||
|
||
```json | ||
{ | ||
"status": "error", | ||
"data": { | ||
"statusCode": 400, | ||
"message": "No existe certificado con el alias afipsdk." | ||
} | ||
} | ||
``` | ||
|
||
Ya tenemos la autorización lista para acceder al web service de AFIP. | ||
|
||
Lo único que nos queda es pasar a modo producción, para más información de cómo hacerlo pueden dirigirse a la documentación de la librería https://docs.afipsdk.com/ |
95 changes: 95 additions & 0 deletions
95
src/content/blog/crear-certificado-para-usar-web-services-de-afip-via-api.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
--- | ||
title: "Crear certificado para usar web services de AFIP via API" | ||
description: "Con pocas líneas de código" | ||
pubDate: "Aug 24 2024" | ||
cover: "/images/blog/api.png" | ||
category: "API" | ||
--- | ||
|
||
Podemos usar Afip SDK para crear certificados y evitar hacerlo de manera manual, ya que no solo es difícil, sino que puede tener errores humanos. | ||
|
||
|
||
## Creamos el certificado | ||
|
||
Para realizar la creacion del certificado lo primero que debemos hacer es ejecutar una solicitud **POST** al endpoint | ||
|
||
```bash | ||
https://app.afipsdk.com/api/v1/afip/certs | ||
``` | ||
|
||
Con los parametros | ||
|
||
| Nombre | Tipo | Valor | | ||
| ------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| `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** | ||
|
||
```json | ||
{ | ||
"environment": "dev", | ||
"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** | ||
|
||
```json | ||
{ | ||
"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` | ||
|
||
```json | ||
{ | ||
"environment": "dev", | ||
"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. | ||
|
||
<mark style="color:green;">`STATUS`</mark> `200` | ||
|
||
```json | ||
{ | ||
"status": "complete", | ||
"data": { | ||
"cert": "-----BEGIN CERTIFICATE-----\nMIIDRzC...", | ||
"key": "-----BEGIN RSA PRIVATE KEY-----\r\nMIIEowIBAAKCA..." | ||
} | ||
} | ||
``` | ||
|
||
<mark style="color:red;">`STATUS`</mark> `400` | ||
|
||
```json | ||
{ | ||
"status": "error", | ||
"data": { | ||
"message":"Número de CUIL/CUIT incorrecto" | ||
} | ||
} | ||
``` | ||
|
||
Ya tenemos nuestro certificado y key para acceder a los web services de AFIP. | ||
|
||
Ahora para poder acceder a un web service primero debemos [Autorizar uso de web services de AFIP via API](/blog/autorizar-uso-de-web-services-de-afip-via-api/). | ||
|
||
Lo único que nos queda es pasar a modo producción, para más información de cómo hacerlo pueden dirigirse a la documentación de la librería https://docs.afipsdk.com/ |