Tokenización
Almacenamiento tokenizado de tarjetas y pagos card-on-file en Cobru.
Esta superficie viene de materiales legacy de Cobru y todavía necesita una validación fresca en sandbox. Trátala como contrato beta hasta contar con el export oficial de OpenAPI o una nueva verificación endpoint por endpoint.
Para qué sirve esta capability
Usa tokenización cuando tu integración necesite:
- registrar una tarjeta una sola vez y cobrarla después
- evitar recolectar PAN completo en cada flujo de pago
- listar tarjetas guardadas de la cuenta autenticada
- eliminar tarjetas almacenadas cuando el usuario lo solicite
Flujo Cobru
Obtén la llave pública RSA desde GET /base/get_constants_key_public/.
Encripta los campos sensibles de la tarjeta en el cliente o en un servicio con alcance PCI.
Registra la tarjeta con POST /register_tc/.
Consulta tarjetas con GET /list_tc/ y cobra con POST /tc_payment/.
Mapa de endpoints
| Endpoint | Propósito | Estado |
|---|---|---|
GET /base/get_constants_key_public/ | Obtener la llave pública RSA | Legacy doc |
POST /register_tc/ | Registrar un token de tarjeta | Legacy doc |
GET /list_tc/ | Listar tarjetas guardadas o consultar una por card_uuid | Legacy doc |
POST /tc_payment/ | Pagar con una tarjeta guardada o tokenizada | Legacy doc |
DELETE /delete_tc/ | Eliminar una tarjeta almacenada | Legacy doc |
Modelo de autenticación
Los exports de Spotlight sugieren que los endpoints de tokenización son superficies autenticadas del usuario. Hasta completar una nueva validación en sandbox, asume que:
- aplican los headers estándar de autenticación Cobru
- las requests deben salir de un backend confiable o de servicios con alcance PCI
x-api-keynunca debe vivir en frontend público
Ejemplo: obtener la llave pública
curl -X GET https://dev.cobru.co/base/get_constants_key_public/ \
-H "x-api-key: $COBRU_API_KEY" \
-H "Authorization: Bearer $COBRU_ACCESS_TOKEN"const response = await fetch('https://dev.cobru.co/base/get_constants_key_public/', {
method: 'GET',
headers: {
'x-api-key': process.env.COBRU_API_KEY!,
Authorization: `Bearer ${accessToken}`,
},
});
const payload = await response.json();
console.log(payload.data.text_long_value);import requests
response = requests.get(
"https://dev.cobru.co/base/get_constants_key_public/",
headers={
"x-api-key": COBRU_API_KEY,
"Authorization": f"Bearer {access_token}",
},
)
print(response.json())<?php
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('GET', 'https://dev.cobru.co/base/get_constants_key_public/', [
'headers' => [
'x-api-key' => getenv('COBRU_API_KEY'),
'Authorization' => 'Bearer ' . $accessToken,
],
]);
$payload = json_decode((string) $response->getBody(), true, 512, JSON_THROW_ON_ERROR);
var_dump($payload);