LibreDTE

¡facturación electrónica libre para Chile!

Herramientas de usuario

Herramientas del sitio


sowerphp:integracion:procesar_intercambio

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.

  • 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):

true

Reclamar todo el intercambio (estado RCD):

false

No procesar el intercambio (se deberá procesar manualmente):

'null'

Si el intercambio tiene más de un DTE se puede indicar qué documentos se deben recibir o reclamar:

[
    'recibir' => [
        [
            'TipoDTE' => 33,
            'Folio' => 1
        ]
    ],
    'reclamar' => [
        [
            'TipoDTE' => 33,
            'Folio' => 2
        ]
    ]
]

Los índices recibir y reclamar son arreglos de arreglos (objetos) que pueden tener los siguientes índices:

// 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',
]

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:

[
    [
        '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',
    ],
]

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:

[
    '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
    ],
]

En el índice config, todos los campos son opcionales, si no se indica alguno será determinado automáticamente por el sistema.

sowerphp/integracion/procesar_intercambio.txt · Última modificación: 2018/05/21 14:08 por delaf