LibreDTE

¡facturación electrónica libre para Chile!

Herramientas de usuario

Herramientas del sitio


sowerphp:integracion:procesar_intercambio

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
sowerphp:integracion:procesar_intercambio [2020/05/22 19:48]
delaf borrado
— (actual)
Línea 1: Línea 1:
-====== Procesar intercambio de DTE ====== 
  
-Este servicio se consultará para saber si se debe procesar de manera automática un intercambio recibido indicando si se recibe o reclama el contenido. 
- 
-  * Recurso: https://​example.com/​api/​intercambios/​procesar 
- 
-  * Método: POST 
- 
-  * La solicitud contendrá el archivo XML de intercambio codificado en base64. Ejemplo: 
- 
-  { 
-    "​xml":"​aWRfcGFnbwo="​ 
-  } 
- 
-===== Respuesta esperada ===== 
- 
-El servicio puede entregar múltiples tipos de respuestas, las cuales harán diferentes cosas. A continuación se detallan todas las posibilidades. Están en PHP, pero la respuesta es en JSON en estricto rigor. 
- 
-Recibir todo el intercambio (estado ERM): 
- 
-<code php> 
-true 
-</​code>​ 
- 
-Reclamar todo el intercambio (estado RCD): 
- 
-<code php> 
-false 
-</​code>​ 
- 
-No procesar el intercambio (se deberá procesar manualmente):​ 
- 
-<code php> 
-'​null'​ 
-</​code>​ 
- 
-Si el intercambio tiene más de un DTE se puede indicar qué documentos se deben recibir o reclamar: 
- 
-<code php> 
-[ 
-    '​recibir'​ => [ 
-        [ 
-            '​TipoDTE'​ => 33, 
-            '​Folio'​ => 1 
-        ] 
-    ], 
-    '​reclamar'​ => [ 
-        [ 
-            '​TipoDTE'​ => 33, 
-            '​Folio'​ => 2 
-        ] 
-    ] 
-] 
-</​code>​ 
- 
-Los índices recibir y reclamar son arreglos de arreglos (objetos) que pueden tener los siguientes índices: 
- 
-<code php> 
-// esto no es una respuesta válida, es sólo un ejemplo de como asignar datos de un DTE 
-[ 
-    '​TipoDTE'​ => 31, 
-    '​Folio'​ => 1, 
-    '​FchEmis'​ => '​2018-05-21',​ 
-    '​RUTEmisor'​ => '​76192083-9',​ 
-    '​RUTRecep'​ => '​88777666-5',​ 
-    '​MntTotal'​ => 1000, 
-    '​EstadoRecepDTE'​ => '​ERM',​ // código SII 
-    '​RecepDTEGlosa'​ => '​Otorga recibo de mercaderías o servicios',​ 
-] 
-</​code>​ 
- 
-Si bien sólo los índices TipoDTE y Folio son obligatorios,​ si el intercambio incluye más de un DTE se recomienda incluir el RUTEmisor. Además los índices EstadoRecepDTE y RecepDTEGlosa permiten definir los estados que se asignarán (por defecto es ERM para recibidos y RCD para reclamados). 
- 
-También es posible pasar un sólo arreglo con todos los documentos, independiente el estado, en este caso es obligatorio que se indique EstadoRecepDTE y RecepDTEGlosa:​ 
- 
-<code php> 
-[ 
-    [ 
-        '​TipoDTE'​ => 31, 
-        '​Folio'​ => 1, 
-        '​EstadoRecepDTE'​ => '​ERM',​ 
-        '​RecepDTEGlosa'​ => '​Otorga recibo de mercaderías o servicios',​ 
-    ], 
-    [ 
-        '​TipoDTE'​ => 31, 
-        '​Folio'​ => 2, 
-        '​EstadoRecepDTE'​ => '​RCD',​ 
-        '​RecepDTEGlosa'​ => '​Reclamo al contenido del documento',​ 
-    ], 
-] 
-</​code>​ 
- 
-Si se quieren especificar campos generales para todos los documentos como sucursal que recibe el DTE o el período donde se debe asignar se deberá hacer de la siguiente forma: 
- 
-<code php> 
-[ 
-    '​accion'​ => true, // =true o cualquiera de las posibles respuestas antes vistas 
-    '​config'​ => [ 
-        '​NmbContacto'​ => '​Esteban',​ // nombre de contacto por dudas 
-        '​MailContacto'​ => '​[email protected]',​ // correo de contacto por dudas 
-        '​sucursal'​ => 0, // =0 para casa matriz o código de sucursal del SII 
-        '​Recinto'​ => 'Casa matriz',​ 
-        '​responder_a'​ => '​[email protected]',​ // correo del proveedor (se recomienda no asignar) 
-        '​periodo'​ => date('​Ym'​),​ // debería ser siempre el actual 
-    ], 
-] 
-</​code>​ 
- 
-En el índice config, todos los campos son opcionales, si no se indica alguno será determinado automáticamente por el sistema.