![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola a todos,
Muchas gracias por leer estas líneas, le escribo desde Perú, La administración tributaria de Perú (SUNAT) ya exige las guías de remisión electrónicas, para ello tenemos un sistema de almacén que emite las guías y a traves de un servicio (OSCE) de proveedor externo este se comunica con la SUNAT y envia la información. Lo que se quiere es que nuestro sistema envíe la información directamente a los servidores de SUNAT. mi programa emite un archivo de texto, que le doy forma de una archivo .json y esto le enviaba al servidor OSCE ahora quiereo convertirlo al formato XML y enviarlo al servidor de la SUNAT. Es aquí donde estoy un poco perdido, por que solo tengo el archivo .json Si pudieran darme algunas luces para resolver este problema se los voy agradecer bastante, muchas gracias por su atención. Código:
{ "guiaRemision":{ "IDE":{ "numeracion" : "T001-00000813", "fechaEmision" : "2024-09-12", "horaEmision" : "03:18:23 ", "notasCaso" : "", "codTipoDocumento" : "09" }, "EMI":{ "tipoDocId": "6", "numeroDocId": "20351060736", "nombreComercial": "FAMICOTTOM S.A.", "razonSocial": "FAMICOTTOM S.A.", "ubigeo": "150115", "direccion": "AV. LOS CANARIOS MZ.E2 LOTE 3 SANTA MARIA DE HUACHIPA", "provincia": "LIMA", "departamento": "LIMA", "distrito": "LURIGANCGHO", "codigoPais": "PE", "telefono": "371-0562", "correoElectronico": "" }, "DDE":{ "tipoDocId": "6", "numeroDocId": "2051833995", "nombreComercial": "LLUVISOL TEXTIL", "razonSocial": "LLUVISOL TEXTIL SAC", "ubigeo": "", "direccion": " AV. LOS CANARIOS MZ 3 2LOTE 3", "departamento": "LIMA", "provincia": "LIMA", "distrito": "HUACHIPA", "codigoPais": "", "correoElectronico": "" }, "GRC":{ "idTraslado": "SUNAT_Envio", "motivoTraslado": "08", "descripcionMotivoTraslado": " RECOJO DE BIENES TRANSFORMADOS", "pesoBrutoBienes": "2755.350", "unidadMedidaPesoBruto": "KGM", "modalidadTraslado": "01", "fechaInicioTraslado": "2024-09-12", "tipoDocIdeConductor": "6", "numeroDocIdeConductor": "12345679801", "denominacionTransportador": "JUAN PERES TUDELA", "numeroPlacaVehiculo": "ATJ-418", "ubigeoPuntoLlegada": "", "direccionPuntoLlegada": " AV. LOS CANARIOS MZ 3 2LOTE 3 URB. EL CLUB II ETAPA SANTA MARIA LIMA LIMA HUACHIPA", "ubigeoPuntoPartida": "150115", "direccionPuntoPartida": "AV. LOS CANARIOS MZ.E2 LOTE 3 SANTA MARIA DE HUACHIPA" }, "GCA":{ "tipoConductor": "Principal", "nomConductor": "JUAN", "apeConductor": "PERES TUDELA", "numLicCondConductor": "Q09785215" }, "GRD":[ { "numeroOrdenItem": "1", "codigoItem": "230", "descripcionItem": "JERSEY 24/1 ALG UPLAND DESG", "nombreItem": "JERSEY 24/1 ALG UPLAND DESG", "cantidadItem": "1006.450", "unidadMedidaItem": "KGM", "codProductoSunat": "11161704" }, { "numeroOrdenItem": "2", "codigoItem": "230", "descripcionItem": "JERSEY 24/1 ALG UPLAND DESG", "nombreItem": "JERSEY 24/1 ALG UPLAND DESG", "cantidadItem": "662.5000", "unidadMedidaItem": "KGM", "codProductoSunat": "11161704" }, { "numeroOrdenItem": "3", "codigoItem": "230", "descripcionItem": "JERSEY 24/1 ALG UPLAND DESG", "nombreItem": "JERSEY 24/1 ALG UPLAND DESG", "cantidadItem": "990.7500", "unidadMedidaItem": "KGM", "codProductoSunat": "11161704" }, { "numeroOrdenItem": "4", "codigoItem": "231", "descripcionItem": "RIB 24/1 ALG UPLAND TUB", "nombreItem": "RIB 24/1 ALG UPLAND TUB", "cantidadItem": "35.95000", "unidadMedidaItem": "KGM", "codProductoSunat": "11161704" }, { "numeroOrdenItem": "5", "codigoItem": "231", "descripcionItem": "RIB 24/1 ALG UPLAND TUB", "nombreItem": "RIB 24/1 ALG UPLAND TUB", "cantidadItem": "23.85000", "unidadMedidaItem": "KGM", "codProductoSunat": "11161704" }, { "numeroOrdenItem": "6", "codigoItem": "231", "descripcionItem": "RIB 24/1 ALG UPLAND TUB", "nombreItem": "RIB 24/1 ALG UPLAND TUB", "cantidadItem": "35.85000", "unidadMedidaItem": "KGM", "codProductoSunat": "11161704" } ] } } |
#2
|
||||
|
||||
Cita:
Veo 2 partes en esto que planteas: 1) Generación del archivo XML. 2) Envío del fichero. Sobre ambas das poca información, así que es difícil concretar. En la generación de un fichero XML (1), hablas de convertir un JSON, pero yo creo que es más sencillo y más práctico que generes el fichero directamente (de forma similar a como generas el JSON). Seguramente debes tener un formato para enviar ese fichero (pero no hablas sobre él). Deberías seguir la documentación para generarlo con la estructura que te pidan. En cuanto al envío pasa lo mismo. Hay desde Delphi varias formas de realizar el envío dependiendo de dónde tengas que enviarlo. Tampoco comentas nada de lo que te piden. Deberías revisar la documentación. Deben enviarlo vía REST, SOAP, FTP,...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
![]() Muchas gracias por la respuestas:
Esto es lo que explica la administración tributaria de Perú: ********* Los servicios web utilizan la autenticación basada en tokens. Para hacer uso de los servicios, el usuario debe seguir los siguientes pasos: a) Generación de credenciales En el menú SOL, debe inscribir la aplicación que usará los servicios REST y generar sus credenciales (client_id y client_secret). Este paso se realizará por única vez. La ubicación de la opción en el menú sol es la siguiente: Credenciales de API SUNAT/ Credenciales de API SUNAT/ Credenciales de API SUNAT/ Credenciales de API SUNAT. b) Generación del token Con las credenciales generadas en el punto anterior, generará un token a través de un servicio que pondrá disponible SUNAT para tal fin. Este token tendrá una vigencia la cual se indica en el retorno del servicio (actualmente es de 1 hora) y dentro de este periodo, podrá utilizarse las veces que requiera invocar los servicios. Se deberá acceder a la siguiente URL, como “POST”: https://api-seguridad.sunat.gob.pe/v1/clientessol/<client_id>/oauth2/token/ Donde: - <client_id>: Es el client_id generado en menú SOL - La URI colocada es referencial En la cabecera (Header) se debe enviar el siguiente parámetro: Content-Type Application/json El cuerpo (Body) de la consulta deberá ser de tipo “x-www-form-urlencoded” y se debe enviar los siguientes parámetros: grant_type password 5 PLATAFORMA DE CONFIRMACIÓN NUEVA GRE scope https://api-cpe.sunat.gob.pe client_id <client_id> generado en menú SOL client_secret <client_secret> generado en menú SOL username <Número de RUC> + <Usuario SOL> password <Contraseña SOL> Donde: - El parámetro grant_type tiene valor fijo Y como datos de respuesta se tendrá: access_token (token generado) token_type (tipo de token) expires_in (tiempo de expiración del token - El tiempo de expiración es en segundos. Concluido el tiempo podrá generar un nuevo token) A continuación, se muestra un ejemplo del JSON para la generación de token usando la herramienta REST “POSTMAN”1 : 6 PLATAFORMA DE CONFIRMACIÓN NUEVA GRE (*) Los datos de la imagen son referenciales 1 Disponible para los sistemas operativos: Windows, Mac y Linux. Respuesta de la consulta: 7 PLATAFORMA DE CONFIRMACIÓN NUEVA GRE c) Uso del token Para el uso de los servicios, se deberá haber generado previamente el token en la sección anterior. El token se usará de la siguiente forma en la invocación del servicio: En las Cabeceras (Headers) se deberá enviar lo siguiente: Authorization Bearer + token Se debe enviar la palabra “Bearer” concatenado con un espacio y luego el token generado. ********************** esta parte es para conectarse con los servicios rest y post. Yo ya tengo el archivo json, mi pregunta es si puedo convertir ese .json en xml para enviarlo? no sería mas facil ya que el archivo ya esta hecho? muchas gracias. |
#4
|
||||
|
||||
Revisa este manual a ver si es lo que necesitas:
https://cpe.sunat.gob.pe/sites/defau...vicios_GRE.pdf Has puesto toda la información, pero no concretas lo que necesitas. Si realmente quieres convertir un JSON a XML, se puede hacer, pero por experiencia no va a funcionar. Si realmente necesitas un XML, es mejor que lo crees desde cero.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
Gracias por responder Neftali,
Como podría generar el XML, que componentes tendría que usar, yo estoy programando en XE8? |
#6
|
|||
|
|||
Gracias nuevamente Neftalí, te comento tambien que es una aplicación de escritorio la que usamos, he revisado los que piden en el manual, y sale de ejemplo un dominio, por ejemplo: www.miguia.com, en mi caso que es una aplicación de escritorio, como podríamos hacer?.
|
#7
|
||||
|
||||
Para generar el XML, puedes usar los componentes que trae delphi para ello. XMLDocument o importar el XSD y que e genere estructura para generarlo.
Si buscas en los foros sobre generar XML verás que hay muchos ejemplos. Por ejemplo esta: https://www.clubdelphi.com/foros/showthread.php?t=81137 Aquí también tienes varias entradas sobre cómo trabajar con XML: https://delphiallimite.blogspot.com/...os-xml-ii.html Para el tema del envío, lo más fácil en versiones nuevas como la tuya es que uses componentes REST que también vienen con Delphi. TRESTRequest, TRESTClient, TRESTResponse En la docWiki de Embarcadero tienes toda la información sobre estos tres componentes (aunque ahora mismo parece que está caída): https://docwiki.embarcadero.com/RADS...Client_Library Si buscas en los foros sobre cómo usar estos tres componentes también encontrarás muchos hilos con código de ejemplo. En esta entrada de mi blog también tienes una explicación de cómo usar esos tres componentes para hacer peticiones a una web: https://neftali.clubdelphi.com/35-ge...ice-en-delphi/
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
|||
|
|||
Muchísimas gracias Neftalí,
Me pongo a trabajar con esta información. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
firmar documento xml firma electrónica Perú, SUNAT | oscarac | OOP | 1 | 11-12-2023 09:30:04 |
Facturacion Electronica PERU | oscarac | Varios | 20 | 25-03-2020 07:30:01 |
Facturación electrónica Perú SUNAT | wilcg | Internet | 5 | 29-10-2018 18:46:01 |
Verificación de RUC Peru. | F3niX | Varios | 7 | 26-05-2017 04:36:50 |
Terremoto en Peru | FGarcia | La Taberna | 8 | 20-09-2007 20:26:01 |
![]() |
|