<?php

$endpoint = "https://vpfe-hab.dian.gov.co/WcfDianCustomerServices.sv";
$action = "http://wcf.dian.colombia/IWcfDianCustomerServices/SendBillSync";


$options = [
    'body'    => $soap,
    'headers' => [
        "Content-Type" => "application/soap+xml",
        "accept" => "*/*",
        "accept-encoding" => "gzip, deflate",
        'action' => $action
    ]
];

// libreria para request http 
$client = new GuzzleHttp\Client();

// hacer el request
$res = $client->request(
    'POST',
    $endpoint,
    $options
);

$response = new DOMDocument;
// formar un XMl con la respuesta
$response->loadXML($res->getBody()->getContents());
// extraer el codigo de respuesta 
// 00 para aceptado
// 99 para rechazado
$code = $response->getElementsByTagName('StatusCode');
// extraer errores, es null si no hay  
$errors = $response->getElementsByTagName('ErrorMessage')[0];
// guardar codigo de respuesta y errores en base de datos 