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

¿Te fue útil?

  1. Paso a paso
  2. Web services

Otro web service

Este es un ejemplo completo de como usar cualquier otro web service de AFIP con el SDK.

/**
 * URL al archivo WSDL de test
 * 
 * Esta URL la podes encontrar en el manual del web service
 **/
const WSDL_TEST = 'https://fwshomo.afip.gov.ar/wsct/CTService?wsdl';

/**
 * URL al archivo WSDL de produccion
 * 
 * Esta URL la podes encontrar en el manual del web service
 **/
const WSDL = 'https://serviciosjava.afip.gob.ar/wsct/CTService?wsdl';
 
/**
 * URL del Web service de produccion
 * 
 * Esta URL la podes encontrar en el manual del web service
 **/
const URL = 'https://serviciosjava.afip.gob.ar/wsct/CTService';

/**
 * URL del Web service de test
 * 
 * Esta URL la podes encontrar en el manual del web service
 **/
const URL_TEST = 'https://fwshomo.afip.gov.ar/wsct/CTService';

/**
 * Seterar en true si el web service requiere usar soap v1.2
 * 
 * Si no estas seguro de que necesita v1.2 proba con ambas opciones
 **/
const soapV1_2 = false;

/**
 * Nombre del web service.
 * 
 * El nombre por el cual se llama al web service en AFIP.
 * Esto lo podes encontrar en el manual correspondiente. 
 * Por ej. el de factura electronica se llama 'wsfe', el de
 * comprobantes T se llama 'wsct'  
 **/
const servicio = 'wsct';

/**
 * A partir de aca ya no debes cambiar ninguna variable
 **/

/**
 * Preparamos las opciones para el web service
 **/
const options = {
	'WSDL': WSDL,
	'WSDL_TEST': WSDL_TEST,
	'URL': URL,
	'URL_TEST': URL_TEST,
	'soapV1_2': soapV1_2
};

/**
 * Creamos el web service
 **/
const genericWebService = afip.WebService(servicio, options);

/**
 * Este es un ejemplo de como utilizar el wsct para
 * obtener el ultimo comprobante autorizado
 * 
 * Aqui veras como obtener un Token Authorizataion
 * para el web service que acabamos de crear y como 
 * ejecutar un request basico
 **/
(async () => {
	/**
	 * Obtenemos el Token Authorizataion
	 **/
	const ta = await genericWebService.getTokenAuthorization();
	
	/**
	 * Preparamos los datos que nos pide el web service
	 * 
	 * Este ejemplo es especifico para el wsct. En el manual
	 * del web service que quieras utilizar encontraras que 
	 * datos requiere cada metodo
	 **/
	const data = {
		'authRequest': { 
			'token': ta.token,
			'sign' : ta.sign,
			'cuitRepresentada' : afip.CUIT
		},
		'codigoTipoComprobante': 195,
		'numeroPuntoVenta': 1
	};

	/**
	 * Iniciamos la variable donde guardaremos el resultado
	 **/
	let result;
 
	 try {
		/**
		 * Ejecutamos la request al web service
		 * 
		 * consultarUltimoComprobanteAutorizado es un metodo
		 * de wsct, esto debes cambiarlo por el metodo que 
		 * quieras utilizar
		 **/
		result = await genericWebService.executeRequest('consultarUltimoComprobanteAutorizado', data);
 
		/**
		 * Seteamos el resultado en nuestra variable.
		 * 
		 * consultarUltimoComprobanteAutorizadoReturn es especifico
		 * de este metodo de este web service. Esto deberas adaptarlo
		 * al web service que estes integrando
		 **/
		result = result.consultarUltimoComprobanteAutorizadoReturn
 
		/**
		 * Checkeamos si devolvio error en el resultado.
		 * 
		 * arrayErrores es especifico de este web service. 
		 * Esto deberas adaptarlo al web service que estes integrando
		 **/
		if (typeof result.arrayErrores !== 'undefined') {
			err = Array.isArray(result.arrayErrores.codigoDescripcion) ? result.arrayErrores.codigoDescripcion[0] : result.arrayErrores.codigoDescripcion;

			throw new Error(`(${err.codigo}) ${err.descripcion}`, err.codigo);
		}
	 }
	 catch(error){
		/**
		 * Si hubo un error lo logeamos
		 **/
		console.error(error);
	 }
 
	/**
	 * Logeamos el resultado final
	 **/
	console.log(result);
})();
<?php

/**
 * URL al archivo WSDL de test
 * 
 * Esta URL la podes encontrar en el manual del web service
 **/
$WSDL_TEST = 'https://fwshomo.afip.gov.ar/wsct/CTService?wsdl';

/**
 * URL al archivo WSDL de produccion
 * 
 * Esta URL la podes encontrar en el manual del web service
 **/
$WSDL = 'https://serviciosjava.afip.gob.ar/wsct/CTService?wsdl';
 
/**
 * URL del Web service de produccion
 * 
 * Esta URL la podes encontrar en el manual del web service
 **/
$URL = 'https://serviciosjava.afip.gob.ar/wsct/CTService';

/**
 * URL del Web service de test
 * 
 * Esta URL la podes encontrar en el manual del web service
 **/
$URL_TEST = 'https://fwshomo.afip.gov.ar/wsct/CTService';

/**
 * Version de SOAP que requiere el web service
 * 
 * Si no estas seguro de que version necesitas proba 
 * con ambas opciones (SOAP_1_1 o SOAP_1_2)
 **/
$soap_version = SOAP_1_1;

/**
 * Nombre del web service.
 * 
 * El nombre por el cual se llama al web service en AFIP.
 * Esto lo podes encontrar en el manual correspondiente. 
 * Por ej. el de factura electronica se llama 'wsfe', el de
 * comprobantes T se llama 'wsct'  
 **/
$servicio = 'wsct';

/**
 * A partir de aca ya no debes cambiar ninguna variable
 **/

/**
 * Preparamos las opciones para el web service
 **/
$options = array(
	'WSDL' => $WSDL,
	'WSDL_TEST' => $WSDL_TEST,
	'URL' => $URL,
	'URL_TEST' => $URL_TEST,
	'soap_version' => $soap_version
);

/**
 * Creamos el web service
 **/
$generic_web_service = $afip->WebService($servicio, $options);


/**
 * Este es un ejemplo de como utilizar el wsct para
 * obtener el ultimo comprobante autorizado
 * 
 * Aqui veras como obtener un Token Authorizataion
 * para el web service que acabamos de crear y como 
 * ejecutar un request basico
 **/

/**
 * Obtenemos el Token Authorizataion
 **/
$ta = $generic_web_service->GetTokenAuthorization();

/**
 * Preparamos los datos que nos pide el web service
 * 
 * Este ejemplo es especifico para el wsct. En el manual
 * del web service que quieras utilizar encontraras que 
 * datos requiere cada metodo
 **/
$data = array(
	'authRequest' => array( 
		'token' => $ta->token,
		'sign' 	=> $ta->sign,
		'cuitRepresentada' 	=> $afip->CUIT
	),
	'codigoTipoComprobante' => 195,
	'numeroPuntoVenta' => 1
);

/**
 * Ejecutamos la request al web service
 * 
 * consultarUltimoComprobanteAutorizado es un metodo
 * de wsct, esto debes cambiarlo por el metodo que 
 * quieras utilizar
 **/
$result = $generic_web_service->ExecuteRequest('consultarUltimoComprobanteAutorizado', $data);

/**
 * Seteamos el resultado en nuestra variable.
 * 
 * consultarUltimoComprobanteAutorizadoReturn es especifico
 * de este metodo de este web service. Esto deberas adaptarlo
 * al web service que estes integrando
 **/
$result = $result->consultarUltimoComprobanteAutorizadoReturn;

/**
 * Checkeamos si devolvio error en el resultado.
 * 
 * arrayErrores es especifico de este web service. 
 * Esto deberas adaptarlo al web service que estes integrando
 **/
if (isset($result->arrayErrores)) {
	$err = is_array($result->arrayErrores->codigoDescripcion) ? $result->arrayErrores->codigoDescripcion[0] : $result->arrayErrores->codigoDescripcion;

	throw new Exception('('.$err->codigo.') '.$err->descripcion, $err->codigo);
}

/**
 * Mostramos por pantalla el resultado final
 **/
var_dump($result);
# URL al archivo WSDL de test
#
# Esta URL la podes encontrar en el manual del web service
WSDL_TEST = "https://fwshomo.afip.gov.ar/wsct/CTService?wsdl"

# URL al archivo WSDL de produccion
#
# Esta URL la podes encontrar en el manual del web service
WSDL = "https://serviciosjava.afip.gob.ar/wsct/CTService?wsdl"

# URL del Web service de produccion
#
# Esta URL la podes encontrar en el manual del web service
URL = "https://serviciosjava.afip.gob.ar/wsct/CTService"

# URL del Web service de test
#
# Esta URL la podes encontrar en el manual del web service
URL_TEST = "https://fwshomo.afip.gov.ar/wsct/CTService"

# Seterar en true si el web service requiere usar soap v1.2
#
# Si no estas seguro de que necesita v1.2 proba con ambas opciones
soapV1_2 = false

# Nombre del web service.
#
# El nombre por el cual se llama al web service en AFIP.
# Esto lo podes encontrar en el manual correspondiente.
# Por ej. el de factura electronica se llama "wsfe", el de
# comprobantes T se llama "wsct"
servicio = "wsct"

# A partir de aca ya no debes cambiar ninguna variable

# Preparamos las opciones para el web service
options = {
  "WSDL": WSDL,
  "WSDL_TEST": WSDL_TEST,
  "URL": URL,
  "URL_TEST": URL_TEST,
  "soapV1_2": soapV1_2
}

# Creamos el web service
genericWebService = afip.webService(servicio, options)

# Este es un ejemplo de como utilizar el wsct para
# obtener el ultimo comprobante autorizado
#
# Aqui veras como obtener un Token Authorizataion
# para el web service que acabamos de crear y como
# ejecutar un request basico

# Obtenemos el Token Authorizataion
ta = genericWebService.getTokenAuthorization

# Preparamos los datos que nos pide el web service
#
# Este ejemplo es especifico para el wsct. En el manual
# del web service que quieras utilizar encontraras que
# datos requiere cada metodo
data = {
  "authRequest": {
    "token": ta["token"],
    "sign": ta["sign"],
    "cuitRepresentada": afip.CUIT
  },
  "codigoTipoComprobante": 195,
  "numeroPuntoVenta": 1
}

begin
  # Ejecutamos la request al web service
  #
  # consultarUltimoComprobanteAutorizado es un metodo
  # de wsct, esto debes cambiarlo por el metodo que
  # quieras utilizar
  result = genericWebService.executeRequest("consultarUltimoComprobanteAutorizado", data)

  # Mostramos el resultado
  puts result unless result["arrayErrores"]

  # Checkeamos si devolvio error en el resultado.
  #
  # arrayErrores es especifico de este web service.
  # Esto deberas adaptarlo al web service que estes integrando
  err = result["arrayErrores"]["codigoDescripcion"].is_a?(Array) ? result["arrayErrores"]["codigoDescripcion"][0] : result["arrayErrores"]["codigoDescripcion"]

  raise "(#{err["codigo"]}) #{err["descripcion"]}"
rescue => e
  # Mostramos el error
  puts e
end
# URL al archivo WSDL de test
#
# Esta URL la podes encontrar en el manual del web service
WSDL_TEST = "https://fwshomo.afip.gov.ar/wsct/CTService?wsdl"

# URL al archivo WSDL de produccion
#
# Esta URL la podes encontrar en el manual del web service
WSDL = "https://serviciosjava.afip.gob.ar/wsct/CTService?wsdl"

# URL del Web service de produccion
#
# Esta URL la podes encontrar en el manual del web service
URL = "https://serviciosjava.afip.gob.ar/wsct/CTService"

# URL del Web service de test
#
# Esta URL la podes encontrar en el manual del web service
URL_TEST = "https://fwshomo.afip.gov.ar/wsct/CTService"

# Seterar en true si el web service requiere usar soap v1.2
#
# Si no estas seguro de que necesita v1.2 proba con ambas opciones
soapV1_2 = False

# Nombre del web service.
#
# El nombre por el cual se llama al web service en AFIP.
# Esto lo podes encontrar en el manual correspondiente.
# Por ej. el de factura electronica se llama "wsfe", el de
# comprobantes T se llama "wsct"
servicio = "wsct"

# A partir de aca ya no debes cambiar ninguna variable

# Preparamos las opciones para el web service
options = {
  "WSDL": WSDL,
  "WSDL_TEST": WSDL_TEST,
  "URL": URL,
  "URL_TEST": URL_TEST,
  "soapV1_2": soapV1_2
}

# Creamos el web service
genericWebService = afip.webService(servicio, options)

# Este es un ejemplo de como utilizar el wsct para
# obtener el ultimo comprobante autorizado
#
# Aqui veras como obtener un Token Authorizataion
# para el web service que acabamos de crear y como
# ejecutar un request basico

# Obtenemos el Token Authorizataion
ta = genericWebService.getTokenAuthorization()

# Preparamos los datos que nos pide el web service
#
# Este ejemplo es especifico para el wsct. En el manual
# del web service que quieras utilizar encontraras que
# datos requiere cada metodo
data = {
  "authRequest": {
    "token": ta["token"],
    "sign": ta["sign"],
    "cuitRepresentada": afip.CUIT
  },
  "codigoTipoComprobante": 195,
  "numeroPuntoVenta": 1
}

try:
  # Ejecutamos la request al web service
  #
  # consultarUltimoComprobanteAutorizado es un metodo
  # de wsct, esto debes cambiarlo por el metodo que
  # quieras utilizar
  result = genericWebService.executeRequest("consultarUltimoComprobanteAutorizado", data)['consultarUltimoComprobanteAutorizadoReturn']

  if result.get("arrayErrores"):

    # Checkeamos si devolvio error en el resultado.
    #
    # arrayErrores es especifico de este web service.
    # Esto deberas adaptarlo al web service que estes integrando
    err = result["arrayErrores"]["codigoDescripcion"][0] if type(result["arrayErrores"]["codigoDescripcion"]) in (tuple, list) else result["arrayErrores"]["codigoDescripcion"]

    raise Exception("(%s) %s" % (err["codigo"], err["descripcion"])) 

  # Mostramos el resultado
  print(result)

except Exception as e:
  # Mostramos el error
  print(e)

Es similar a llamar a otros web services pero debemos agregarle los siguientes parámetros

Body

Nombre
Tipo
Valor

url

string

URL del web service, la encuentran en el manual del web service. Recordar que la URL cambia entre test y produccion

wsdl

string

URL del WSDL, la encuentran en el manual del web service. Recordar que la URL cambia entre test y produccion

soap_v_1_2

boolean

true si el web service usa SOAP v1.2. Por lo general es false, pero si no sabes cual corresponde proba true y false

Endpoint

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

Ejemplo

{
    "environment": "dev",
    "method": "consultarUltimoComprobanteAutorizado",
    "wsid": "wsct",
    "url": "https://fwshomo.afip.gov.ar/wsct/CTService",
    "wsdl": "https://fwshomo.afip.gov.ar/wsct/CTService?wsdl",
    "soap_v_1_2": false,
    "params": {
        "authRequest": {
            "token": "{{token}}",
            "sign": "{{sign}}",
            "cuitRepresentada": "20409378472"
        },
        "codigoTipoComprobante": 195,
        "numeroPuntoVenta": 1
    }
}
AnteriorRemito cárnicoSiguienteTutoriales página de ARCA

Última actualización hace 9 meses

¿Te fue útil?

☁️
🛠️