Saltearse al contenido

Refresh Token

Método: POST

Endpoint

https://api-sandbox.factus.com.co/oauth/token

Descripción

Este endpoint permite actualizar el token de acceso mediante el uso de un refresh token previamente generado.


Encabezados (Headers)

A continuación se describen los encabezados necesarios para realizar la solicitud:

EncabezadoValorDescripción
AuthorizationBearer TokenEste debe ser proporcionado previamente al realizar el inicio de sesión o autenticar al usuario.
Acceptapplication/jsonIndica que la respuesta debe estar en formato JSON.

Cuerpo de la Solicitud (Body)

La solicitud debe enviarse en formato form-data. A continuación se detallan los parámetros requeridos:

ParámetroDescripciónValor Ejemplo
grant_typeTipo de concesión, debe ser refresh_tokenrefresh_token
client_idID del cliente proporcionado por el serviciotu client id
client_secretSecreto del cliente proporcionado por el serviciotu client secret
refresh_tokenEl refresh token previamente generadotu refresh token

Ejemplo de Solicitud

A continuación, se muestra un ejemplo de cómo enviar una solicitud al endpoint:

Ventana de terminal
composer require guzzlehttp/guzzle
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
public function refreshToken()
{
// Crear una instancia del cliente Guzzle
$client = new Client();
// Definir los parámetros para la solicitud
$url = 'https://api-sandbox.factus.com.co/oauth/token';
$data = [
'form_params' => [
'grant_type' => 'refresh_token',
'client_id' => 'tu client id',
'client_secret' => 'tu client secret',
'refresh_token' => 'tu refresh token',
]
];
try {
// Realizar la solicitud POST
$response = $client->post($url, $data);
// Obtener el cuerpo de la respuesta
$responseBody = json_decode($response->getBody()->getContents(), true);
// Verificar que la respuesta contenga el token
if (isset($responseBody['access_token'])) {
$accessToken = $responseBody['access_token'];
$expiresIn = $responseBody['expires_in'];
// Aquí puedes hacer lo que necesites con el nuevo access token
return response()->json([
'access_token' => $accessToken,
'expires_in' => $expiresIn,
]);
}
// Si no se encuentra el token, devolver error
return response()->json([
'error' => 'No se pudo obtener el token',
], 400);
} catch (RequestException $e) {
// Manejar los errores de la solicitud (ej. conexión fallida)
return response()->json([
'error' => 'Error en la solicitud',
'message' => $e->getMessage(),
], 500);
}
}

Response Success

Status: 200 OK

{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "tu access token",
"refresh_token": "tu refresh token"
}