Generar un código de compra
const url = 'https://partner-pcode-dev.tsp.workers.dev/api/partner/v1/pcode';const options = { method: 'POST', headers: {'x-gw': '<x-gw>', 'Content-Type': 'application/json'}, body: '{"productCode":"FV00","external_reference_id":"example","force_new":false}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://partner-pcode-dev.tsp.workers.dev/api/partner/v1/pcode \ --header 'Content-Type: application/json' \ --header 'x-gw: <x-gw>' \ --data '{ "productCode": "FV00", "external_reference_id": "example", "force_new": false }'Si se envía external_reference_id y ya existe un código de compra vigente (sin usar, sin bloquear, dentro de su plazo de 14 días) para esa misma referencia, se devuelve ESE mismo código de compra (reused: true) en vez de crear uno nuevo — a menos que se pase force_new: true, que además anula cualquier código de compra anterior con esa referencia.
Authorizations
Sección titulada «Authorizations»Request Bodyrequired
Sección titulada «Request Bodyrequired»object
FV00=6 meses, FV01=1 año, FV02=2 años, FV03=3 años.
Identificador propio del partner, para idempotencia.
Responses
Sección titulada « Responses »Código de compra creado (o reutilizado — ver data.reused).
object
object
Example
{ "success": true, "data": { "status": "ACTIVE" }}ProductCode inválido/faltante, o el partner no tiene ese producto habilitado (partner_config.allowed_products — si esa columna es NULL o no existe fila de config, no hay restricción y cualquier productCode válido pasa).
object
Example
{ "success": false}API Key inválida.
Rate limit excedido (60 requests/60s por partner).