Hola, alguien resolvió el tema de iva receptor yo lo estoy probando y por alguna razón no me lo toma me sale error 10242
Ese error indica que el valor del campo CondicionIVAReceptorId no es válido. ¿Como lo estás enviando? ¿Es en homologación o producción?
hola Mediasolutions, segun dice las instruciones entendi que seria asiok = WSFEv1.CrearFactura(concepto, tipo_doc, nro_doc, tipo_cbte, punto_vta,; cbt_desde, cbt_hasta, imp_total, imp_tot_conc, imp_neto,; imp_iva, imp_trib, imp_op_ex, fecha_cbte, fecha_venc_pago,; fecha_serv_desde, fecha_serv_hasta,0,0,; moneda_id, moneda_ctz, caea, fecha_hs_gen,; cancela_misma_moneda_ext, condicion_iva_receptor_id)
ok = wsfev1.EstablecerCampoFactura("cancela_misma_moneda_ext", "N") ok = wsfev1.EstablecerCampoFactura("condicion_iva_receptor_id", condicion_iva_receptor_id) como el que estoy probando es un responsable inscripto es ID=1
es produccion
Eso no es Afip SDK, yo no sabria decirte como agregarlo ahi, en la guia de Afip SDK lo tenes al parametro https://afipsdk.com/blog/crear-factura-electronica-de-afip-en-vfp/
Hola Ivan, ejecutando el metodo para obtener el ultimo comprobante aprobado, me tira esto
{"FECompUltimoAutorizadoResult":{"PtoVta":0,"CbteTipo":0,"CbteNro":0,"Errors":{"Err":[{"Code":600,"Msg":"ValidacionDeToken: Error al verificar hash: VerificacionDeHash: Error al convertir de Base64 al token: {{PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pgo8c3NvIHZlcnNpb249IjIuMCI+CiAgICA8aWQgc3JjPSJDTj13c2FhaG9tbywgTz1BRklQLCBDPUFSLCBTRVJJQUxOV
estoy probando con mi certificado de homolagacion propio, no con el de AFIPSDK
Fijate de quitarle las llaves "{{}}" cuando poner el token y sign en la request
Okk
si si, era eso
Ivan, para pasar a prduccion, ademas de asociar los certificados y claves de prod, y cambiar el ambiente a prod en los reques, debo agregar el tag access_token=" " que obtuve, en el request de obtencion de la TA ?
y otr preguntonta, el access token, no lleva la palabra bearer adelante o si ?
Debes agregarlo al header, al igual que el header de Content-Type, no al body. Asi:
loHttp.setRequestHeader("Content-Type", "application/json")
lsAccessToken = "AQUI_TU_ACCESS_TOKEN"
loHttp.setRequestHeader("Authorization", 'Bearer ' + lsAccessToken)
Estimados. Yo trabajo en visualfox y deseo implementar la facturación electrónica para una entidad. Navegando por Internet encontré la posibilidad de usar SDK de Arca. Existe algún tutorial o manual que ayude a poner en funcionamiento un sistema de facturación por esta vía. Si alguien tiene datos al respecto se lo agradecería.
Buenos días! Estoy haciendo las primeras pruebas para luego utilizarlo de forma definitiva en mis proyectos. Con los datos de prueba sale lo siguiente: Response: {"consultarUltimoComprobanteAutorizadoReturn":{"arrayErroresFormato":{"codigoDescripcionString":[{"codigo":"cvc-complex-type.2.4.a","descripcion":"Se encontró contenido inválido en el elemento 'cuitRepresentada'. Se espera '{token}'."}]}}}
probando con el método consultarUltimoComprobanteAutorizado, devuelve error 400
Reemplazaste el token y sign? que codigo estas ejecutando?
Me guio de acá https://afipsdk.com/blog/usar-web-services-de-arca-en-vfp/ En el paso 1 se obtiene token y sign (lo hace boien) ; en el paso 2 llama al método
En el click de un button agregué el procedimiento que llama al json, después pegué paso 1 y luego paso 2. Agregué el access token y ejecuté
Está modificada la ruta del json (SET PROCEDURE TO "d:\json.prg" ADDITIVE)
Podes pegarlo aca al codigo como te quedo? (quitando el accesss token)
@user como andas? tanto tiempo 🙂 Adjunto el error que tiene Joel: ` SET PROCEDURE TO "d:\json.prg" ADDITIVE * PASO 1 - Pedir autorizacion LOCAL loHttp, loResponse, lcJson, lcAuthUrl, loAuthData, loAuthDataObject, loAuthResponse, lcAccessToken loHttp = CREATEOBJECT("Msxml2.XMLHTTP")
lcAuthUrl = "https://app.afipsdk.com/api/v1/afip/auth"
lcAccessToken = "XXX"
loAuthDataObject = CREATEOBJECT("JSONObject")
loAuthDataObject.set("environment", "dev")
loAuthDataObject.set("tax_id", "20409378472")
loAuthDataObject.set("wsid", "wsct")
loAuthData = json_encode(loAuthDataObject)
loHttp.Open("POST", lcAuthUrl, .F.)
loHttp.setRequestHeader("Content-Type", "application/json")
loHttp.setRequestHeader("Authorization", "Bearer " + lcAccessToken)
loHttp.Send(loAuthData)
IF loHttp.Status <> 200
? "Error en la autorizacion: " + STR(loHttp.Status)
RETURN
ENDIF
loResponse = loHttp.responseText
loAuthResponse = json_decode(loResponse)
lcToken = loAuthResponse._token
lcSign = loAuthResponse._sign
* PASO 2 - Llamar al web service
LOCAL loHttp, loResponse, lcRequestUrl, loRequestData, loRequestDataObject, loRequestResponse, lcAccessToken
loHttp = CREATEOBJECT("Msxml2.XMLHTTP")
lcRequestUrl = "https://app.afipsdk.com/api/v1/afip/requests"
lcAccessToken = "XXX"
loRequestDataObject = CREATEOBJECT("JSONObject")
loRequestDataObject.set("environment", "dev")
loRequestDataObject.set("method", "consultarUltimoComprobanteAutorizado")
*loRequestDataObject.set("method", "FEParamGetTiposCbte")
loRequestDataObject.set("wsid", "wsct")
* Params
LOCAL params
params = CREATEOBJECT("JSONObject")
loRequestDataObject.set("params", params)
* authRequest
LOCAL authRequest
authRequest = CREATEOBJECT("JSONObject")
params.set("authRequest", authRequest)
authRequest.set("token", lcToken)
authRequest.set("sign", lcSign)
authRequest.set("cuitRepresentada", "20409378472")
params.set("codigoTipoComprobante", 195)
params.set("numeroPuntoVenta", 1)
loRequestData = json_encode(loRequestDataObject)
loHttp.Open("POST", lcRequestUrl, .F.)
loHttp.setRequestHeader("Content-Type", "application/json")
loHttp.setRequestHeader("Authorization", "Bearer " + lcAccessToken)
loHttp.Send(loRequestData)
IF loHttp.Status <> 200
thisform.text1.Value= "Error al consultar el ultimo comprobante: " + STR(loHttp.Status)
RETURN
ENDIF
loResponse = loHttp.responseText
loRequestResponse = json_decode(loResponse)
thisform.text1.Value= "Response: " + loResponse
`
SI notamos que al llamar al paso 2 poniendo fijo el token y sign, da error 500
Con que mensaje de respuesta?
"{"code":"Internal","message":"Error: ns3: Receiver: [wscommon_007] La firma no corresponde al token enviado."}"
Hola, tengo la siguiente duda: mi intención es consultar una liquidación que le han hecho a mi cliente. Mi cliente es el productor que vendió al consignatario un lote de vacas y fue receptor de una liquidación. Yo tengo .crt y .key de mi cliente. Es posible conseguir la informacion de la liquidación con algun web services o automatización?
Podrias probar este metodo https://afipsdk.com/docs/api-reference/web-services/wslsp/consultarLiquidacionPorNroComprobante/prod/vfp/
Usar el metodo consultarLiquidacionPorNroComprobante del web service Liquidación Sector Pecuario con Visual FoxPro
Ese metodo permite consultar a quien emite la liquidacion. En este caso yo intento obtener los datos sin tener credenciales de quien la emite, tengo las credenciales (crt y key) de quien es receptor
Saludos a todos. ¿Alguno ha hecho NC con visual fox afipsdk? ¿donde estan los ejemplos?
https://docs.afipsdk.com/siguientes-pasos/web-services/factura-electronica/nota-de-credito-a Ee la pestaña api podes encontrar los datos de ejemplo para NC, es cuestion de cambiar los datos del ejemplo de la referencia de api por esos https://afipsdk.com/docs/api-reference/web-services/wsfe/FECAESolicitar/dev/vfp/
Usar el metodo FECAESolicitar del web service Factura Electrónica con Visual FoxPro
¡¡Gracias mil Ivan!! en el primer enlace tengo como poner los comprobantes asociados. Ahora a probar!!
Hola. ¿Alguien me podria dar como se carga las opcionales para una factura de credito. Debo tener algo mal en mi codigo porque solo obtengo el error 10162 haga lo que haga. Si parece que logre poner fecha de vencimiento con FECAEDetRequest.set("FchVtoPago","20260210") pero de ahi no logre pasar
Aca tenes el ejemplo de VFP https://afipsdk.com/docs/api-reference/web-services/wsfe/FECAESolicitar/prod/vfp/factura-de-credito-electronica-a/
Ejemplo de Factura de Crédito electrónica A con Visual FoxPro
Buenos días. Encantado de estar en este grupo. Necesito de alguien que me oriente para conectar mi software hecho en VFP9 con Afip Sdk. Si a alguien le interesa el trabajo les paso mi teléfono 2615901947 Mil gracias
Hola, te comparto el paso a paso para poder integrarlo en Visual Fox Pro https://afipsdk.com/blog/usar-web-services-de-arca-en-vfp/
Estimados, ya logré la conexión y obtuve el último número de comprobante. En donde encuentro la documentación para generar un comprobante ?
Aca esta una guia para obtener el CAE https://afipsdk.com/blog/crear-factura-electronica-de-afip-en-vfp/
Y luego para emitir el PDF https://afipsdk.com/docs/pdfs/invoice-b/vfp/
Gracias Ivan
Les cuento que me pasa: El flujo funciona correctamente hasta la emisión del comprobante:
- Obtengo correctamente el access_token de AfipSDK.
- Genero Token y Sign sin problemas.
- Consulto FECompUltimoAutorizado y obtengo respuesta correcta (por ejemplo: último comprobante 56).
Sin embargo, al intentar ejecutar FECAESolicitar recibo la siguiente respuesta:
Code: 600
Message: "Validación de Token: no apareció CUIT en lista de relaciones"
CUIT utilizado: 33708226209
Dispongo del certificado correspondiente a ese CUIT (.crt y .key) y estoy trabajando en ambiente de homologación.
¿Podrían indicarme si el problema puede deberse a:
- falta de relación del certificado con WSFEv1 en AFIP?
- generación del Token con un CUIT diferente al del certificado?
- alguna validación adicional requerida en AfipSDK?
Si necesitan puedo enviarles el request JSON que estoy utilizando.
Muchas gracias.
Fijate de estar usando el mismo CUIT en FECompUltimoAutorizado y FECAESolicitar, ya que si te esta dejando usar bien FECompUltimoAutorizado y con FECAESolicitar te da error "Validación de Token: no apareció CUIT en lista de relaciones" probablemente no estas seteando correctamente el cuit en la ultima.
Gracias !!!! Era eso. Ya obtuve mi primer CAE
Ahora estoy adaptando mi software para enviar por AfipSdk las facturas de mis clientes. Una vez que quede funcionando, ¿Tengo que informar los CUIT’s de cada cliente para empezar a hacerlo en producción?
Debes poner el CUIT correspondiente al hacer las request, no hay que agregarlo en algun otro lado
Gracias Ivan. Solo se agregan cuando genero comprobantes en producción?
Gracias Ivan. Los certificados.key y .crt de cada cuit, en donde se hacen mención ?
Los access token tienen vencimiento? Me da en test ERROR AUTH expiración 2026-03-17 …
No, el access_token no tiene vencimiento. Si el token y sign que obtenes con el cert y key, eso debes obrtenerlo antes de cada request.
Gracias!!!!
Buenos días. Donde puedo encontrar la documentación para obtener CAE de facturas de crédito (FCE) para VFP9?
En la barra de navegacion derecha tenes todos los ejemplos
Ejemplo de Factura de Crédito electrónica A con Visual FoxPro
Buenos días, hay alguna forma o método para saber con qué fecha se grabó una factura FCE en modo test ???
Usar el metodo FECompConsultar del web service Factura Electrónica con Visual FoxPro
Gracias !!!!
Buenas tardes, como proceder con aquellas empresas que son nuevas y se les autoriza la habilitación para la emisión de comprobantes clase A, con leyenda operación sujeta a retención, como debería enviar los datos para su facturación ?
Para activar dicha leyenda en los parametros del temoplate debes enviar invoice_a_legend: 'operation_subject_to_withholding' en la docu pdes encontrar todos los parametros https://afipsdk.com/docs/pdfs/invoice-a/vfp/
Emitir PDF de Factura A con Visual FoxPro
Muchas gracias Ivan
Me refería a este tipo de factura con código 51
Está la hice directamente por Afip
Y tiene abajo de la letra la leyenda que comenté y el código 51 Como debo enviar los datos a AfipSdk ?
Emitir PDF de Factura A con leyenda "Operación Sujeta a Retención" con Node.js
Buenas tardes, tendrán la documentación para una nota de crédito MiPyme?
Me da error y creo que tengo mal estructurado el JSON. Si me pueden ayudar por favor
me pasas un ejemplo del json asi lo vemos?
decime tambien el error que te tira
Hola Lucas, ya lo solucione, eran los datos adicionales que debía informar (CBU y ALIAS) para anular una Factura de Crédito MiPyme. Justamente el error decía que debo informar esos datos. Gracias
Buenas tardes, ya tengo todo para pasar a producción. La pregunta es ¿solo tengo que cambiar el entorno de “dev” a “prod”? Las URL son las mismas ?
Hola te paso la documentacion para pasar a PROD. Las urls son las mismas https://docs.afipsdk.com/siguientes-pasos/ir-a-produccion
Perfecto. Los clientes que he integrado a AfipSdk ya tenían certificados y están actualmente trabajando con ellos. Aún están vigentes (vencen el 26/09/2026). Las pruebas en “dev” funcionaron bien con un certificado de homologación de una de estas empresas, por lo que que me resta es pasar el entorno a “prod” y creo que empezaría a facturar sin problemas en producción
Gracias Lucas !!!
Hola Lucas quisiera preguntar en dónde está el error en un cliente con código 51 (es nuevo y Afip le dio la posibilidad de facturar pero con leyenda “operación sujeta a retención) CUIT emisor: 30-71909273-6 Entorno: producción CbteTipo: 1 (Factura A) Error AFIP: 10000
NO AUTORIZADO A EMITIR COMPROBANTES - LA CUIT INFORMADA NO SE ENCUENTRA AUTORIZADA A EMITIR COMPROBANTES CLASE 'A'
Este es el JSON
ahora reviso tu consulta, te borre el mensaje por contener informacion sensible. Si queres mostrarme ejemplo de codigo sensible siempre podes mandarme un email a [email protected]
Perfecto Lucas
Estuve viendo y tu cliente (o su contador) debe comunicarse con ARCA para ver si tiene algo pendiente que resolver con ellos. No es algo relacionado a Afip SDK sino mas de ARCA.
Bien. El código estaría bien ?
que seria "cliente con codigo 51"? de donde obtuviste los valores para agregar al request?
Esta es la foto de una factura de ellos
Fijate de En CbteTipo poner 51, ahora por lo que envias estas usando CbteTipo: 1
Y no va en los campos adicionales el 51 ?
En que campos?
Fíjate que en el JSON que te envié, que lo borraste, dice en campos adicionales 51 y una “S”. Justamente ahora no estoy con la computadora
Te lo muestro apenas llegue a casa
"Cuit": XXXXX }, "FeCAEReq": { "FeCabReq": { "CantReg": 1, "PtoVta": 3, "CbteTipo": 1 }, "FeDetReq": { "FECAEDetRequest": { "Concepto": 1, "DocTipo": 80, "DocNro": 30718403460, "CbteDesde": 1, "CbteHasta": 1, "CbteFch": 20260526, "ImpTotal": 12.10, "ImpTotConc": 0.00, "ImpNeto": 10.00, "ImpOpEx": 0.00, "ImpIVA": 2.10, "ImpTrib": 0.00, "MonId": "PES", "MonCotiz": 1.00, "CondicionIVAReceptorId": 1,"Iva":{"AlicIva":[{"Id":5,"BaseImp":10.00,"Importe":2.10}]},"Opcionales":{"Opcional":[{"Id":"51","Valor":"S"}]} } } } } }
Donde dice opcionales
Al final
De donde lo sacaste eso? No veo existencia de ese campo opcional, va en CbteTipo nomas
No recuerdo si me lo pasaron ustedes o lo encontré en Afip en los manuales.
Perfecto, lo coloco en donde me dices y te comento
Ivan, y si fuera factura B, iría cbtetipo: 52 ?
Y si fuera nota de débito o nota de crédito que códigos habría que informar ?