Skip to content

AFIP WSFE .NET Standard Client. Manages WSAA Ticket caching and access WSFE operations

License

Notifications You must be signed in to change notification settings

tecnocode-sa/afipwsfeclient

Repository files navigation

AFIP WSFE Web Services Client

AFIP WSFE .NET Standard Client. Manages WSAA Ticket caching and access WSFE operations (C) 2019 Tecnocode S.A. http://tecnocode.net

Build Status

Installation

dotnet add package afipwsfeclient
  • Package Manager Console
Install-Package afipwsfeclient

Certificate Generation

You must provide an pkcs12 certificate file to access AFIP services

  • Generate Private Key:
openssl genrsa -out afip.key 2048 
  • Generate Certificate Sign Request:
openssl req -new -key afip.key -subj "/C=AR/O=INSERT_ORG_NAME/CN=INSERT_ORG_CN/serialNumber=CUIT INSERT_CUIT" -out afip.csr
  • Generate PEM with AFIP website

Upload the CSR file to WSASS AFIP Service and save the resulting text in afip.pem file

  • Generate X509 Certificate in pkcs12 format
openssl pkcs12 -export -inkey afip.key -in afip.pem -out afip.p12 

Library usage

using System.Collections.Generic;
using AfipWsfeClient;
//Get Login Ticket
var loginClient = new LoginCmsClient { IsProdEnvironment = false };
var ticket = await loginClient.LoginCmsAsync("wsfe",
                                             "C:\\INSERT_CERTIFICATE_PATH\\afip.p12",
                                             "CERTIFICATE_PASSWORD",
                                             true);

var wsfeClient = new WsfeClient
{
    IsProdEnvironment = false,
    Cuit = INSERT_CUIT,
    Sign = ticket.Sign,
    Token = ticket.Token
};

//Get next WSFE Comp. Number
var compNumber = await wsfeClient.FECompUltimoAutorizadoAsync(1, 6).Body.FECompUltimoAutorizadoResult.CbteNro + 1;

//Build WSFE FECAERequest            
var feCaeReq = new AfipServiceReference.FECAERequest
{
    FeCabReq = new AfipServiceReference.FECAECabRequest
    {
        CantReg = 1,
        CbteTipo = 6,
        PtoVta = 1
    },
    FeDetReq = new List<AfipServiceReference.FECAEDetRequest>
    {
        new AfipServiceReference.FECAEDetRequest
        {
            CbteDesde = compNumber,
            CbteHasta = compNumber,
            CbteFch = "20190717",
            Concepto = 2,
            DocNro = 30111222,
            DocTipo = 96,
            FchVtoPago = "20190718",
            ImpNeto = 10,
            ImpTotal = 10,
            FchServDesde = "20190717",
            FchServHasta = "20190717",
            MonCotiz = 1,
            MonId = "PES",
            Iva = new List<AfipServiceReference.AlicIva>
            {
                new AfipServiceReference.AlicIva
                {
                    BaseImp = 10,
                    Id = 3,
                    Importe = 0
                }
            }
        }
    }
};

//Call WSFE FECAESolicitar
var compResult = await wsfeClient.FECAESolicitarAsync(feCaeReq);

LoginCmsClient Class Parameters

public bool IsProdEnvironment { get; set; } = false; //default is Homologation
public string WsaaUrlHomologation { get; set; } = "https://wsaahomo.afip.gov.ar/ws/services/LoginCms"; //default URL
public string WsaaUrlProd { get; set; } = "https://wsaa.afip.gov.ar/ws/services/LoginCms"; //default URL
public string TicketCacheFolderPath { get; set; } = ""; //Path to store ticket chache file, default is runtime current path

WsfeClient Class Parameters

public bool IsProdEnvironment { get; set; } = false; //default is Homologation
public long Cuit { get; set; }
public string Token { get; set; } //Your WSAA ticket Token
public string Sign { get; set; } //Your WSAA ticket Sign
public string WsfeUrlHomologation { get; set; } = "https://wswhomo.afip.gov.ar/wsfev1/service.asmx"; //default URL
public string WsfeUrlProd { get; set; } = "https://servicios1.afip.gov.ar/wsfev1/service.asmx"; //default URL

Environments (pre-configured in package)

WSDL (used to build the package)

About

AFIP WSFE .NET Standard Client. Manages WSAA Ticket caching and access WSFE operations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages