PortalMipymeDteRecibidos
extends PortalMipymeDte
in package
Módulo para consultas de DTEs recibidos al Portal MIPYME del SII.
Para más información sobre la API, consulte la documentación completa de DTEs recibidos en el Portal MIPYME <https://developers.apigateway.cl/#24456c78-2c1d-4e91-a0b3-450eab612e7e>
_.
Cliente específico para gestionar DTE recibidos en el Portal Mipyme. Proporciona métodos para obtener documentos, PDF y XML de DTE recibidos.
Table of Contents
Constants
- ESTADO_ACEPTADO = 'RAC'
- Abreviatura: DTE aceptado por receptor
- ESTADO_ACEPTADO_LEY_19983 = 'RAL'
- Abreviatura: DTE aceptado Ley 19.983
- ESTADO_BORRADOR = 'PRV'
- Abreviatura: Borrador (pre-view) de documento
- ESTADO_CERTIFICADO_RECHAZADO = 'DCD'
- Abreviatura: Certificado rechazado
- ESTADO_DISCREPANCIAS = 'RAD'
- Abreviatura: DTE aceptado con discrepancias
- ESTADO_EMISOR_INVALIDO = 'DEI'
- Abreviatura: RUT emisor inválido
- ESTADO_EMITIDO = 'EMI'
- Abreviatura: Documento emitido
- ESTADO_FIRMA_RECHAZADA = 'DRF'
- Abreviatura: DTE rechazado por firma
- ESTADO_FIRMA_SIN_PERMISO = 'DPF'
- Abreviatura: Sin permiso de firma
- ESTADO_FOLIO_INVALIDO = 'DFI'
- Abreviatura: Folio DTE inválido
- ESTADO_INCOMPLETO = 'DIN'
- Abreviatura: Incompleto
- ESTADO_INICIALIZADO = 'INI'
- Abreviatura: DTE inicializado
- ESTADO_NO_RECIBIDO = 'RNR'
- Abreviatura: DTE no recibido por receptor
- ESTADO_RECEPTOR_INVALIDO = 'DRI'
- Abreviatura: RUT receptor inválido
- ESTADO_RECHAZADO_RECEPTOR = 'RRH'
- Abreviatura: DTE rechazado por receptor
- ESTADO_RECIBIDO = 'RRC'
- Abreviatura: DTE recibido por receptor
- ESTADO_REPETIDO = 'DRR'
- Abreviatura: Rechazado por repetido
- ESTADO_SIN_REPAROS = 'RSR'
- Abreviatura: Recibido sin reparos
Properties
- $auth : array<string|int, mixed>
- Arreglo que contendrá el diccionario de autenticación.
- $api_prefix : string
- El prefijo para las rutas de la API.
- $api_token : string|null
- El token de autenticación para la API.
- $api_url : string
- La URL base de la API de API Gateway.
- $api_version : string
- La versión de la API a utilizar.
- $last_response : ResponseInterface|null
- La última respuesta recibida de la API.
- $last_url : string|null
- La última URL utilizada en la solicitud HTTP.
Methods
- __construct() : mixed
- Base para los clientes específicos del Portal Mipyme.
- consume() : $this
- Realiza una solicitud HTTP a la API.
- delete() : ResponseInterface|null
- Realiza una solicitud DELETE a la API.
- descargarPdfDteRecibido() : ResponseInterface
- Obtiene el PDF de un DTE recibido.
- descargarXmlDteRecibido() : ResponseInterface
- Obtiene el XML de un DTE recibido.
- get() : ResponseInterface|null
- Realiza una solicitud GET a la API.
- getBody() : string
- Obtiene el cuerpo de la última respuesta HTTP.
- getBodyDecoded() : array<string|int, mixed>
- Obtiene el cuerpo de la última respuesta HTTP y lo decodifica de JSON.
- getCodigoDte() : string
- Obtiene el código correspondiente al tipo de DTE.
- getLastResponse() : ResponseInterface|null
- Obtiene la última respuesta recibida de la API.
- getLastUrl() : string|null
- Obtiene la última URL utilizada en la solicitud HTTP.
- obtenerDtesRecibidos() : ResponseInterface
- Obtiene documentos de DTE recibidos por un receptor.
- post() : ResponseInterface|null
- Realiza una solicitud POST a la API.
- put() : ResponseInterface|null
- Realiza una solicitud PUT a la API.
- setToken() : $this
- Establece el token de autenticación.
- setUrl() : $this
- Establece la URL base de la API.
- toArray() : array<string|int, mixed>
- Convierte la última respuesta HTTP en un arreglo asociativo.
- getAuthPass() : array<string|int, mixed>
- Obtiene la autenticación de tipo 'pass'.
- env() : string|null
- Obtiene el valor de una variable de entorno.
- getError() : object
- Extrae información detallada sobre un error a partir de la última respuesta HTTP.
- isAuthCertData() : bool
- Valida si una cadena tiene formato PEM válido.
- isAuthFileData() : bool
- Verifica si una cadena es una cadena codificada en Base64 válida.
- isAuthPass() : bool
- Valida la estructura de un RUT chileno utilizando una expresión regular.
- setupAuth() : void
- Configura la autenticación específica para la aplicación.
- throwException() : mixed
- Lanza una ApiException con los detalles del último error.
Constants
ESTADO_ACEPTADO
Abreviatura: DTE aceptado por receptor
protected
string
ESTADO_ACEPTADO
= 'RAC'
ESTADO_ACEPTADO_LEY_19983
Abreviatura: DTE aceptado Ley 19.983
protected
string
ESTADO_ACEPTADO_LEY_19983
= 'RAL'
ESTADO_BORRADOR
Abreviatura: Borrador (pre-view) de documento
protected
string
ESTADO_BORRADOR
= 'PRV'
ESTADO_CERTIFICADO_RECHAZADO
Abreviatura: Certificado rechazado
protected
string
ESTADO_CERTIFICADO_RECHAZADO
= 'DCD'
ESTADO_DISCREPANCIAS
Abreviatura: DTE aceptado con discrepancias
protected
string
ESTADO_DISCREPANCIAS
= 'RAD'
ESTADO_EMISOR_INVALIDO
Abreviatura: RUT emisor inválido
protected
string
ESTADO_EMISOR_INVALIDO
= 'DEI'
ESTADO_EMITIDO
Abreviatura: Documento emitido
protected
string
ESTADO_EMITIDO
= 'EMI'
ESTADO_FIRMA_RECHAZADA
Abreviatura: DTE rechazado por firma
protected
string
ESTADO_FIRMA_RECHAZADA
= 'DRF'
ESTADO_FIRMA_SIN_PERMISO
Abreviatura: Sin permiso de firma
protected
string
ESTADO_FIRMA_SIN_PERMISO
= 'DPF'
ESTADO_FOLIO_INVALIDO
Abreviatura: Folio DTE inválido
protected
string
ESTADO_FOLIO_INVALIDO
= 'DFI'
ESTADO_INCOMPLETO
Abreviatura: Incompleto
protected
string
ESTADO_INCOMPLETO
= 'DIN'
ESTADO_INICIALIZADO
Abreviatura: DTE inicializado
protected
string
ESTADO_INICIALIZADO
= 'INI'
ESTADO_NO_RECIBIDO
Abreviatura: DTE no recibido por receptor
protected
string
ESTADO_NO_RECIBIDO
= 'RNR'
ESTADO_RECEPTOR_INVALIDO
Abreviatura: RUT receptor inválido
protected
string
ESTADO_RECEPTOR_INVALIDO
= 'DRI'
ESTADO_RECHAZADO_RECEPTOR
Abreviatura: DTE rechazado por receptor
protected
string
ESTADO_RECHAZADO_RECEPTOR
= 'RRH'
ESTADO_RECIBIDO
Abreviatura: DTE recibido por receptor
protected
string
ESTADO_RECIBIDO
= 'RRC'
ESTADO_REPETIDO
Abreviatura: Rechazado por repetido
protected
string
ESTADO_REPETIDO
= 'DRR'
ESTADO_SIN_REPAROS
Abreviatura: Recibido sin reparos
protected
string
ESTADO_SIN_REPAROS
= 'RSR'
Properties
$auth
Arreglo que contendrá el diccionario de autenticación.
protected
array<string|int, mixed>
$auth
= []
$api_prefix
El prefijo para las rutas de la API.
private
string
$api_prefix
= '/api'
$api_token
El token de autenticación para la API.
private
string|null
$api_token
= null
$api_url
La URL base de la API de API Gateway.
private
string
$api_url
= 'https://apigateway.cl'
$api_version
La versión de la API a utilizar.
private
string
$api_version
= 'v1'
$last_response
La última respuesta recibida de la API.
private
ResponseInterface|null
$last_response
= null
$last_url
La última URL utilizada en la solicitud HTTP.
private
string|null
$last_url
= null
Methods
__construct()
Base para los clientes específicos del Portal Mipyme.
public
__construct(array<string|int, mixed> $credenciales[, string|null $token = null ][, string|null $url = null ]) : mixed
Parameters
- $credenciales : array<string|int, mixed>
-
Credenciales de autenticación.
- $token : string|null = null
-
Token de autenticación para la API.
- $url : string|null = null
-
URL base para la API.
consume()
Realiza una solicitud HTTP a la API.
public
consume(string $resource[, array<string|int, mixed> $data = [] ][, array<string|int, mixed> $headers = [] ][, string|null $method = null ][, array<string|int, mixed> $options = [] ]) : $this
Este método envía una solicitud HTTP a la API de API Gateway, utilizando los parámetros especificados y manejando la autenticación y la respuesta.
Parameters
- $resource : string
-
El recurso de la API al cual realizar la solicitud.
- $data : array<string|int, mixed> = []
-
Datos a enviar en la solicitud (para métodos POST y PUT).
- $headers : array<string|int, mixed> = []
-
Encabezados adicionales para incluir en la solicitud.
- $method : string|null = null
-
Método HTTP a utilizar (GET, POST, PUT, DELETE).
- $options : array<string|int, mixed> = []
-
Arreglo con las opciones de la solicitud HTTP.
Tags
Return values
$this —Instancia actual del cliente para encadenar llamadas.
delete()
Realiza una solicitud DELETE a la API.
public
delete(string $resource[, array<string|int, mixed> $headers = [] ][, array<string|int, mixed> $options = [] ]) : ResponseInterface|null
Parameters
- $resource : string
-
Recurso de la API al cual realizar la solicitud.
- $headers : array<string|int, mixed> = []
-
Encabezados adicionales para incluir en la solicitud.
- $options : array<string|int, mixed> = []
-
Arreglo con las opciones de la solicitud HTTP.
Return values
ResponseInterface|nulldescargarPdfDteRecibido()
Obtiene el PDF de un DTE recibido.
public
descargarPdfDteRecibido(string $receptor, string $emisor, string $dte[, string $folio = null ]) : ResponseInterface
Parameters
- $receptor : string
-
RUT del receptor.
- $emisor : string
-
RUT del emisor.
- $dte : string
-
Tipo de DTE o código del DTE recibido si no se pasa folio.
- $folio : string = null
-
Número de folio del DTE (opcional).
Return values
ResponseInterface —Contenido del PDF del DTE recibido.
descargarXmlDteRecibido()
Obtiene el XML de un DTE recibido.
public
descargarXmlDteRecibido(string $receptor, string $emisor, string $dte, string $folio) : ResponseInterface
Parameters
- $receptor : string
-
RUT del receptor.
- $emisor : string
-
RUT del emisor.
- $dte : string
-
Tipo de DTE.
- $folio : string
-
Número de folio del DTE.
Return values
ResponseInterface —Contenido del XML del DTE recibido.
get()
Realiza una solicitud GET a la API.
public
get(string $resource[, array<string|int, mixed> $headers = [] ][, array<string|int, mixed> $options = [] ]) : ResponseInterface|null
Parameters
- $resource : string
-
Recurso de la API al cual realizar la solicitud.
- $headers : array<string|int, mixed> = []
-
Encabezados adicionales para incluir en la solicitud.
- $options : array<string|int, mixed> = []
-
Arreglo con las opciones de la solicitud HTTP.
Return values
ResponseInterface|nullgetBody()
Obtiene el cuerpo de la última respuesta HTTP.
public
getBody() : string
Este método devuelve el cuerpo de la respuesta de la última solicitud HTTP realizada utilizando este cliente API.
Tags
Return values
string —El cuerpo de la respuesta HTTP.
getBodyDecoded()
Obtiene el cuerpo de la última respuesta HTTP y lo decodifica de JSON.
public
getBodyDecoded() : array<string|int, mixed>
Este método devuelve el cuerpo de la respuesta de la última solicitud HTTP realizada por este cliente API, decodificándolo de formato JSON a un arreglo asociativo de PHP.
Tags
Return values
array<string|int, mixed> —El cuerpo de la respuesta HTTP decodificado como un arreglo.
getCodigoDte()
Obtiene el código correspondiente al tipo de DTE.
public
getCodigoDte(string $tipo) : string
Parameters
- $tipo : string
-
Tipo de DTE.
Return values
string —Código del DTE.
getLastResponse()
Obtiene la última respuesta recibida de la API.
public
getLastResponse() : ResponseInterface|null
Return values
ResponseInterface|nullgetLastUrl()
Obtiene la última URL utilizada en la solicitud HTTP.
public
getLastUrl() : string|null
Return values
string|nullobtenerDtesRecibidos()
Obtiene documentos de DTE recibidos por un receptor.
public
obtenerDtesRecibidos(string $receptor[, array<string|int, mixed> $filtros = [] ]) : ResponseInterface
Parameters
- $receptor : string
-
RUT del receptor.
- $filtros : array<string|int, mixed> = []
-
Filtros adicionales para la consulta.
Return values
ResponseInterface —Documentos de DTE recibidos.
post()
Realiza una solicitud POST a la API.
public
post(string $resource, array<string|int, mixed> $data[, array<string|int, mixed> $headers = [] ][, array<string|int, mixed> $options = [] ]) : ResponseInterface|null
Parameters
- $resource : string
-
Recurso de la API al cual realizar la solicitud.
- $data : array<string|int, mixed>
-
Datos a enviar en la solicitud.
- $headers : array<string|int, mixed> = []
-
Encabezados adicionales para incluir en la solicitud.
- $options : array<string|int, mixed> = []
-
Arreglo con las opciones de la solicitud HTTP.
Return values
ResponseInterface|nullput()
Realiza una solicitud PUT a la API.
public
put(string $resource, array<string|int, mixed> $data[, array<string|int, mixed> $headers = [] ][, array<string|int, mixed> $options = [] ]) : ResponseInterface|null
Parameters
- $resource : string
-
Recurso de la API al cual realizar la solicitud.
- $data : array<string|int, mixed>
-
Datos a enviar en la solicitud.
- $headers : array<string|int, mixed> = []
-
Encabezados adicionales para incluir en la solicitud.
- $options : array<string|int, mixed> = []
-
Arreglo con las opciones de la solicitud HTTP.
Return values
ResponseInterface|nullsetToken()
Establece el token de autenticación.
public
setToken(string $token) : $this
Parameters
- $token : string
-
Token de autenticación.
Return values
$thissetUrl()
Establece la URL base de la API.
public
setUrl(string $url) : $this
Parameters
- $url : string
-
URL base.
Return values
$thistoArray()
Convierte la última respuesta HTTP en un arreglo asociativo.
public
toArray() : array<string|int, mixed>
Este método transforma la última respuesta HTTP recibida en un arreglo asociativo, que incluye información del estado HTTP, encabezados y el cuerpo de la respuesta, ya sea en formato de texto o decodificado de JSON.
Tags
Return values
array<string|int, mixed> —Arreglo asociativo con la información de la respuesta.
getAuthPass()
Obtiene la autenticación de tipo 'pass'.
protected
getAuthPass() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —Información de autenticación.
env()
Obtiene el valor de una variable de entorno.
private
env(string $name) : string|null
Parameters
- $name : string
-
Nombre de la variable de entorno.
Return values
string|null —Valor de la variable de entorno o null si no está definida.
getError()
Extrae información detallada sobre un error a partir de la última respuesta HTTP.
private
getError() : object
Este método analiza la última respuesta HTTP para extraer información detallada sobre un error que ocurrió durante la solicitud. Devuelve un objeto con los detalles del error, incluyendo el código y el mensaje.
Return values
object —Detalles del error con propiedades 'code' y 'message'.
isAuthCertData()
Valida si una cadena tiene formato PEM válido.
private
isAuthCertData(string $pemStr) : bool
El formato PEM debe cumplir con los siguientes criterios:
- Comienza con una línea "-----BEGIN [LABEL]-----"
- Termina con una línea "-----END [LABEL]-----"
- Contiene contenido Base64 válido entre las líneas BEGIN y END
Ejemplos de PEM Válidos:
```
-----BEGIN CERTIFICATE-----
MIIDdzCCAl+gAwIBAgIEbGzVnzANBgkqhkiG9w0BAQsFADBvMQswCQYDVQQGEwJV
...
-----END CERTIFICATE-----
```
Ejemplos de PEM Inválidos:
- Falta la línea de inicio o fin.
- Contenido no codificado en Base64.
- Etiquetas de BEGIN y END que no coinciden.
Parameters
- $pemStr : string
-
La cadena a validar.
Return values
bool —true si la cadena tiene formato PEM válido, false en caso contrario.
isAuthFileData()
Verifica si una cadena es una cadena codificada en Base64 válida.
private
isAuthFileData(string $firmaElectronicaBase64) : bool
Parameters
- $firmaElectronicaBase64 : string
-
La cadena a verificar.
Return values
bool —true si la cadena es válida en Base64, false en caso contrario.
isAuthPass()
Valida la estructura de un RUT chileno utilizando una expresión regular.
private
isAuthPass(string $rut) : bool
Este método verifica que el RUT cumpla con el formato estándar chileno, que incluye puntos como separadores de miles opcionales y un guion antes del dígito verificador. El dígito verificador puede ser un número o la letra 'K'.
Ejemplos de RUT válidos:
- 12.345.678-5
- 12345678-5
- 9.876.543-K
- 9876543-K
Ejemplos de RUT inválidos:
- 12.345.678-9 (dígito verificador incorrecto)
- 12345678- (falta dígito verificador)
- 12345-6 (formato incorrecto)
- 12.345.6785 (falta guion)
- abcdefgh-i (caracteres no permitidos)
Parameters
- $rut : string
-
El RUT a validar.
Return values
bool —true si el RUT tiene un formato válido,false en caso contrario.
setupAuth()
Configura la autenticación específica para la aplicación.
private
setupAuth(array<string|int, mixed> $credenciales) : void
Parameters
- $credenciales : array<string|int, mixed>
-
Parámetros de autenticación. Puede ser 'pass' o 'cert'.
Tags
throwException()
Lanza una ApiException con los detalles del último error.
private
throwException() : mixed
Este método utiliza la información obtenida del método getError() para lanzar una ApiException con un mensaje de error detallado y un código de error asociado. Se utiliza para manejar errores de la API de manera uniforme en toda la clase.