Overview

Base URL, response format, and error handling for the Call+ Simulation API.

The Call+ Simulation API lets you run financial simulations for the Call+ stock option plan and generate PDF reports for beneficiaries.

This is the sandbox environment — it behaves identically to production but uses test data. Use it to build and validate your integration before going live.

Base URL

https://sandbox-api.callplus.be/api/v1

Endpoints

MethodPathDescription
POST/simulationsRun a simulation
GET/simulations/{id}/pdfDownload the PDF report

Response format

Every response follows the same envelope structure:

{
  "success": true,
  "requestId": "550e8400-e29b-41d4-a716-446655440000",
  "data": { ... },
  "_meta": {
    "timestamp": "2024-01-15T10:30:00.123Z",
    "environment": "sandbox"
  }
}
FieldTypeDescription
successbooleantrue on success, false on error
requestIdstringUnique ID for tracing — include this when contacting support
dataobjectResponse payload (only on success)
errorobjectError details (only on failure)
_metaobjectTimestamp and environment identifier

Error format

When success is false, the error object contains:

{
  "success": false,
  "requestId": "550e8400-e29b-41d4-a716-446655440000",
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "The request contains invalid parameters.",
    "details": [
      {
        "field": "benefitInKind",
        "code": "VALUE_TOO_LARGE",
        "message": "Value exceeds maximum allowed",
        "received": 150000,
        "constraint": { "max": 100000, "inclusive": true }
      }
    ]
  },
  "_meta": {
    "timestamp": "2024-01-15T10:30:00.123Z",
    "environment": "sandbox"
  }
}

Error codes

CodeHTTPWhat to do
VALIDATION_ERROR400Check the details array for specific field issues
INVALID_REQUEST400Fix malformed JSON, unknown fields, or type mismatches
UNAUTHORIZED401Verify the X-API-Key header is present and correct
FORBIDDEN403Contact support — account may be suspended
NOT_FOUND404Verify the simulation ID
RATE_LIMIT_EXCEEDED429Wait for Retry-After seconds and retry
INTERNAL_ERROR500Retry later or contact support with requestId

Request ID

Every response includes an X-Request-Id header and a requestId in the body. Always log this value — it's the fastest way to debug issues with the Call+ team.