Ir al contenido



Foto

Consumir Web Service SUNAT - facturacion electronica

webservice sunat facturacion

  • Por favor identifícate para responder
3 respuestas en este tema

#1 oscarac

oscarac

    Newbie

  • Miembros
  • Pip
  • 6 mensajes

Escrito 24 octubre 2019 - 11:45

una mano por favor con este tema
intento leer el CDR de un documento
segun la documentacion del web services establece lo siguiente

Cita:
SERVICIO WEB CONSULTA DE FACTURAS Y NOTAS



1. La consulta es un servicio web

2. Esta versión sólo permite consultar facturas y notas de crédito y debito, que inicien con “F”

3. Para utilizar esta consulta, se tiene que construir un cliente que se conecte al servicio web.

La URL del servicio web es la siguiente:
https://www.sunat.go....ConsultService


4. El cliente envía una petición al servidor en formato XML; un ejemplo de esta petición es:


<soapenv:Envelope xmlns:ser="http://service.sunat.gob.pe"
xmlns:soapenv="http://schemas.xmlso...soap/envelope/"
xmlns:wsse="http://docs.oasis-op...ecext-1.0.xsd">
<soapenv:Header>
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username>20100066603MODDATOS</wsse:Username>
<wsse:Password>moddatos</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ser:getStatus>
<rucComprobante>1028308796</rucComprobante>
<tipoComprobante>01</tipoComprobante>
<serieComprobante>f213</serieComprobante>
<numeroComprobante>12345</numeroComprobante>
</ser:getStatus>
</soapenv:Body>
</soapenv:Envelope>


Donde:
- <wsse:Username>20100066603MODDATOS</wsse:Username>
20100066603MODDATOS = RUC contribuyente más usuario sol.

- <wsse:Password>moddatos</wsse:Password>
moddatos =clave sol del contribuyente

- <rucComprobante>1028308796</rucComprobante>
1028308796 = RUC del comprobante que se quiere consultar

- <tipoComprobante>01</tipoComprobante>
01 = tipo de comprobante que se quiere consultar (01:factura, 07: nota de crédito y 08:nota de debito)

- <serieComprobante>f213</serieComprobante>
f213 = número de serie del comprobante que se quiere consultar

- <numeroComprobante>12345</numeroComprobante>
12345 = numero del comprobante que se quiere consultar

5. La consulta es solo del estado del documento electrónico.

Ejemplo del XML de retorno del servidor.
 

ya descargue el archivo [url="https://www.sunat.gob.pe:443/ol-ti-it cpgem-beta/bill Service?wsdl"] y se convirtio en una unidad llamada billservice.pas
la cual analizandola tiene 3 funciones
 

Código Delphi [-]
  billService = interface(IInvokable)
  ['{3D02E3B8-C614-3CC3-895A-7695F0354EB7}']
    function  sendBill(const parameters: sendBill): sendBillResponse; stdcall;
    function  sendSummary(const parameters: sendSummary): sendSummaryResponse; stdcall;
    function  getStatus(const parameters: getStatus): getStatusResponse; stdcall;
  end;

SendBill enviar factura
sendSummary enviar resumen
getStatus obtener respuesta sobre el documento

este ultimo punto es el que me interesa desarrollar

ya tengo creado el XML con la estructura solicitada, ahora solo me falta entender como utilizo el httprio o si se podria usar otro componente para la lectura de los datos

alguien me echa una mano?


  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.988 mensajes
  • LocationMéxico

Escrito 24 octubre 2019 - 04:17

Hola oscarac
 
Lo que yo hago normalmente es lo siguiente:
 
 


delphi
  1. var
  2.   Servicio: billService;
  3.   parametros: getStatus;
  4.   Estatus: getStatusResponse;
  5. begin
  6.   Servicio := GetbillService (false, '', nil);
  7. //Creas la variable Parametros con los valores que necesites
  8.   Estatus := Servicio.getStatus(parametros);
  9.   // Ya puedes interactiar con la respuesta del método getStatus.
  10. end;

 
Lo he hecho de memoria pero esa es la idea. (y)
 
Saludos


  • 0

#3 oscarac

oscarac

    Newbie

  • Miembros
  • Pip
  • 6 mensajes

Escrito 24 octubre 2019 - 10:10

pues creo que tendras que explicarme mejor porque la vedad estoy recien en inicios sobre webservices y su aplicacion y consumo

 

Hola oscarac
 
Lo que yo hago normalmente es lo siguiente:
 
 


delphi
  1. var
  2.   Servicio: billService;
  3.   parametros: getStatus;
  4.   Estatus: getStatusResponse;
  5. begin
  6.   Servicio := GetbillService (false, '', nil);
  7. //Creas la variable Parametros con los valores que necesites
  8.   Estatus := Servicio.getStatus(parametros);
  9.   // Ya puedes interactiar con la respuesta del método getStatus.
  10. end;

 
Lo he hecho de memoria pero esa es la idea. (y)
 
Saludos


  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.988 mensajes
  • LocationMéxico

Escrito 25 octubre 2019 - 07:28

pues creo que tendras que explicarme mejor porque la vedad estoy recien en inicios sobre webservices y su aplicacion y consumo

 

Bueno, crear un proyecto nuevo. agregas la unidad que se creó con el "IMPORT WSDL" y en la unidad principal en un botón agregas ese código y agregando en el USES la unidad del WSDL.

 

Si te fijas, las variables (Servicio, parametros y Estatus) corresponden a las clases del WSDL y lo demás es para que consumas el método getStatus();

 

Saludos


  • 0