Skip to content

TimboxIntegracion/Laravel-WebServiceAPI

Repository files navigation

Integración Laravel - Timbox Web Service API REST

En el presente documento se encuentra la documentación correspondiente a los snippets de código desarrollados utilizando el framework Laravel v8.5 así como también las librerías externas utilizadas para realizar las solicitudes HTTP correspondientes a la API REST del proyecto de Web Service de Timbox.

Los métodos desarrollados son los siguientes:

  • timbrar_cfdi
  • buscar_cfdi
  • buscar_acuses
  • recuperar_comprobante
  • obtener_consumo
  • consulta_lco
  • consulta_lrfc

Para realizar las solicitudes HTTP en laravel debe agregarse la siguiente línea:

use Illuminate\Support\Facades\Http;

Autenticación Básica:

Se requiere generar una API-KEY para poder hacer peticiones al servicio, por lo que deben proporcionar las credenciales requeridas, usuario y contraseña del dashboard de Timbox.

URL de autenticación: https://staging.ws.timbox.com.mx/api/auth

LLamando la siguiente función regresará un objeto del cual se puede extraer la API KEY.

private static function getApiKey($user, $password){
       try {
           return Http::withBasicAuth($user, $password)->get('https://staging.ws.timbox.com.mx/api/auth');
       } catch (\Throwable $th) {
           throw $th;
       }
   }

Todos los métodos siguientes se encuentran en app/models/ApiRest.php

Método Buscar_Acuse:

public static function buscarAcuse($user, $password){
       try {
           // Get Api Key
           $auth = ApiRest::getApiKey($user, $password);
           $APIKEY = $auth['api_key'];

           // Parámetros
           //  - Arreglo de UUIDs
           $uuid = "12345X12-0BEF-4919-9B44-7F8BFE44D451, 4455B22-56EF-4849-9B33-7F8GDR44F498";
           $params = "?parametros_acuse[uuids][uuid][]=".$uuid;

           // Buscar Acuse
           $res = Http::withHeaders([
               'x-api-key' => $APIKEY
           ])->get('https://staging.ws.timbox.com.mx/api/buscar_acuse_recepcion'.$params);
          
           // Respuesta
           echo $res;

       } catch (\Throwable $th) {
           throw $th;
       }
   }

Método Buscar_CFDI:

public static function buscarCfdi($user, $password){
       try {
           // Get Api Key
           $auth = ApiRest::getApiKey($user, $password);
           $APIKEY = $auth['api_key'];

           // Parámetros
           $uuid = "44235C12-0BEF-4919-9B44-7F8BFE44D451";
           $params = "?parametros_cfdis[uuid]=".$uuid;

           // Buscar Acuse
           $res = Http::withHeaders([
               'x-api-key' => $APIKEY
           ])->get('https://staging.ws.timbox.com.mx/api/buscar_cfdi'.$params);
          
           // Respuesta
           echo $res;

       } catch (\Throwable $th) {
           throw $th;
       }
   }

Método Obtener_Consumo:

public static function obtenerConsumo($user, $password){
       try {   
           // Get Api Key
           $auth = ApiRest::getApiKey($user, $password);
           $APIKEY = $auth['api_key'];
           // Buscar Acuse
           $res = Http::withHeaders([
               'x-api-key' => $APIKEY,
               'Content-Type' => "application/json"
           ])->get('https://staging.ws.timbox.com.mx/api/obtener_consumo');
           
           // Respuesta
           echo $res;

       } catch (\Throwable $th) {
           throw $th;
       }
   }

Método Recuperar_Comprobante:

public static function recuperarComprobante($user, $password){
       try {   
           // Get Api Key
           $auth = ApiRest::getApiKey($user, $password);
           $APIKEY = $auth['api_key'];
           // Buscar Acuse
           $res = Http::withHeaders([
               'x-api-key' => $APIKEY,
               'Content-Type' => "application/json"
           ])->get('https://staging.ws.timbox.com.mx/api/recuperar_comprobante');
           
           // Respuesta
           echo $res;

       } catch (\Throwable $th) {
           throw $th;
       }
   }

Método Consulta_RFC:

public static function consultaRfc($user, $password){
       try {   
           // Get Api Key
           $auth = ApiRest::getApiKey($user, $password);
           $APIKEY = $auth['api_key'];
           // Parámetros
           $rfc = "?rfc=ROPS670907FU1";

           $params = $rfc;
            // Buscar Acuse
            $res = Http::withHeaders([
                'x-api-key' => $APIKEY
            ])->get('https://staging.ws.timbox.com.mx/api/consulta_rfc'.$params);
           
            // Respuesta
            echo $res;

       } catch (\Throwable $th) {
           throw $th;
       }
   }

Método Consulta_LCO:

public static function consultaLco($user, $password){
       try {   
           // Get Api Key
           $auth = ApiRest::getApiKey($user, $password);
           $APIKEY = $auth['api_key'];
           // Parámetros
           $rfc = "?rfc=ROPS670907FU1";
           $n_cert = "no_certificado=00001000000407219892";

           $params = $rfc."&".$n_cert;
            // Buscar Acuse
            $res = Http::withHeaders([
                'x-api-key' => $APIKEY
            ])->get('https://staging.ws.timbox.com.mx/api/consulta_lco'.$params);
           
            // Respuesta
            echo $res;

       } catch (\Throwable $th) {
           throw $th;
       }
   }

Método Timbrar_CFDI:

public static function timbrarCfdi($user, $password){
       try {
           // Get Api Key
           $auth = ApiRest::getApiKey($user, $password);
           $APIKEY = $auth['api_key'];
 
           // Leer archivo CFDI
           $file = Storage::disk('Files')->get('cfdi_33.xml');
          
           // Convertir Cfdi a Base64
           $file_64 = base64_encode($file);
 
           // Buscar Acuse
           $res = Http::withHeaders([
               'x-api-key' => $APIKEY,
               'Content-Type' => "application/json"
           ])->post('https://staging.ws.timbox.com.mx/api/timbrar_cfdi',[
               'sxml' => $file_64
           ]);
           
           // Respuesta
           echo $res;
 
       } catch (\Throwable $th) {
           throw $th;
       }
   }

About

Consumo de API REST del Web Service de Timbox utilizando Laravel

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published