Skip to content

Client Contact Details

PUT /api/clientes/contact-info

Completes the client profile with their contact details, location and communication preferences. It is the second step of the sign-up, after VLT Client Registration.

The operation replaces the whole block rather than patching it: that is why every field is required and none may be null.

Request

Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Public Endpoint

Publicly accessible. It does not require X-Client-Secret or any token. Protected by rate limiting (60 requests per minute per IP).

Body Parameters

All required and non-null.

ParameterTypeDescription
idintegerClient identifier in our system, the one registration returned
playerIdintegerPlayer identifier in the counterparty system
emailstringEmail address
phoneNumberstringContact phone number (max 20 chars)
addressstringResidential address
ubigeoCodestringGeographic location code (max 20 chars)
sendWhatsappbooleanConsent to receive WhatsApp communications
sendEmailbooleanConsent to receive email communications
sendSmsbooleanConsent to receive SMS communications

Request Example

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
  }'

Responses

Successful Update — 200 OK

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

Idempotent Update — 200 OK

If the payload holds exactly the information already persisted, the response is the same and no write takes place. Retrying after a network timeout is safe.

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

Error Responses

Branch on code, not on message

code is the stable part of the contract: it does not change. message is informative and may be reworded without notice — in fact ERR_MISSING_REQUIRED_FIELDS shares a single text across the three endpoints. When the response carries errors, the per-field detail is there.

HTTPcodeWhen
400ERR_MISSING_REQUIRED_FIELDSA field is missing, null or malformed
404ERR_PLAYER_NOT_FOUNDThe identifiers match no player
409ERR_IDENTITY_COLLISIONThe id belongs to one profile and the playerId to another
429Rate limit exceeded
503The target operator is not configured
500Internal error

404 Not Found Example

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

400 Bad Request Example

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

Try It

API PlaygroundPUT

Request Body

Request URL

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

Notes for the Integrator

  • Sending the request without ubigeoCode, without one of the boolean preferences, or with any of them as null, is rejected with 400. The per-field detail is in errors.
  • Both identifiers are validated together: they must point to the same profile. If each one points to a different client, the request is aborted without writing anything.
  • It may be called as often as needed; it is the way to update the contact details of an already registered client.

Client API Documentation