Skip to content

Datos Complementarios del Cliente

PUT /api/clientes/contact-info

Completa el perfil del cliente con su contacto, ubicación y preferencias de comunicación. Es el segundo paso del alta, después de Registro de Cliente VLT.

La operación sustituye el bloque completo, no lo parchea: por eso todos los campos son obligatorios y no admiten nulos.

Solicitud

Headers

HeaderValorRequerido
Content-Typeapplication/json
Acceptapplication/json

Endpoint Público

Acceso público. No requiere X-Client-Secret ni token. Protegido por rate limit (60 solicitudes por minuto por IP).

Parámetros del Body

Todos requeridos y no nulos.

ParámetroTipoDescripción
idintegerIdentificador del cliente en nuestro sistema, el que devolvió el registro
playerIdintegerIdentificador del jugador en el sistema de la contraparte
emailstringCorreo electrónico
phoneNumberstringTeléfono de contacto (máx. 20 caracteres)
addressstringDirección de residencia
ubigeoCodestringCódigo de ubicación geográfica (máx. 20 caracteres)
sendWhatsappbooleanConsentimiento para comunicaciones por WhatsApp
sendEmailbooleanConsentimiento para comunicaciones por correo
sendSmsbooleanConsentimiento para comunicaciones por SMS

Ejemplo de Solicitud

bash
curl -X PUT 'https://api.syssoft1.com/api/clientes/contact-info' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "id": 1024,
    "playerId": 1,
    "email": "test-mail@test.com",
    "phoneNumber": "999999999",
    "address": "Lima",
    "ubigeoCode": "23006",
    "sendWhatsapp": true,
    "sendEmail": true,
    "sendSms": true
  }'

Respuestas

Actualización Exitosa — 200 OK

json
{
  "id": 1024,
  "playerId": 1
}

Actualización Idempotente — 200 OK

Si el payload contiene exactamente la misma información ya persistida, se responde igual y no se realiza ninguna escritura. Reintentar tras un timeout de red es seguro.

json
{
  "id": 1024,
  "playerId": 1
}

Respuestas de Error

Ramifique por code, no por message

code es la parte estable del contrato: no cambia. message es informativo y puede reformularse sin previo aviso — de hecho ERR_MISSING_REQUIRED_FIELDS comparte un único texto en los tres endpoints. Cuando la respuesta trae errors, ahí está el detalle por campo.

HTTPcodeCuándo
400ERR_MISSING_REQUIRED_FIELDSFalta un campo, viene nulo o no cumple el formato
404ERR_PLAYER_NOT_FOUNDLos identificadores no corresponden a ningún jugador
409ERR_IDENTITY_COLLISIONEl id pertenece a un perfil y el playerId a otro
429Rate limit excedido
503El sistema no tiene configurado el operador destino
500Error interno

Ejemplo 404 Not Found

json
{
  "code": "ERR_PLAYER_NOT_FOUND",
  "message": "Jugador no encontrado"
}

Ejemplo 400 Bad Request

json
{
  "code": "ERR_MISSING_REQUIRED_FIELDS",
  "message": "Faltan campos obligatorios para actualizar el perfil",
  "errors": {
    "ubigeoCode": ["The ubigeo code field is required."]
  }
}

Pruébelo

API PlaygroundPUT

Cuerpo de la petición

URL de Petición

https://api.syssoft1.com/api/clientes/contact-info

Notas para el Integrador

  • Enviar el request sin ubigeoCode, sin alguna preferencia booleana, o con cualquiera de ellos en null, se rechaza con 400. El detalle por campo viene en errors.
  • Los dos identificadores se validan juntos: deben corresponder al mismo perfil. Si cada uno apunta a un cliente distinto, la petición se aborta sin escribir nada.
  • Puede llamarse tantas veces como haga falta; es la vía para actualizar el contacto de un cliente ya registrado.

Documentación de la API para Clientes