Integrations & Debug API¶
Base paths: /core/api/integrations and /core/api/communities/{community_id}/debug
This page covers two small groups of endpoints:
- Integrations - lets a RECreation user register credentials for an external partner platform
(currently the GDBN flexibility-market platform, in its v2 and legacy v1 flavours), check that the
connection works, and manage the partner-side webhooks and service authentication methods that
GDBN uses to call back into RECreation. The
/gdbn/...routes are thin authenticated proxies: RECreation logs in to GDBN with the stored credentials and forwards the request. - Debug - a single, internal, super-user-only endpoint for overriding community flags.
For the data-exchange side of the GDBN integration (setpoints and flexibility offers that GDBN pushes into RECreation) see GDBN BeFlexible. Authentication of the calls on this page follows Authentication; paths are relative to the base URL described in Base URL & Conventions.
Endpoint summary¶
| Method | Path | Purpose |
|---|---|---|
GET |
/core/api/integrations |
List the caller's integrations |
POST |
/core/api/integrations |
Create an integration (tests the login first) |
PATCH |
/core/api/integrations/{integration_id} |
Update an integration (re-tests when credentials change) |
DELETE |
/core/api/integrations/{integration_id} |
Delete an integration |
POST |
/core/api/integrations/{integration_id}/test |
Re-test the stored credentials |
GET |
/core/api/integrations/{integration_id}/gdbn/services |
List the partner's services (with their webhooks) |
POST |
/core/api/integrations/{integration_id}/gdbn/services/{service_id}/webhooks |
Create webhooks on a service |
PATCH |
/core/api/integrations/{integration_id}/gdbn/webhooks/{webhook_id} |
Change a webhook URL |
DELETE |
/core/api/integrations/{integration_id}/gdbn/webhooks/{webhook_id} |
Delete a webhook |
POST |
/core/api/integrations/{integration_id}/gdbn/webhooks/test |
Send a test call to a webhook URL |
GET |
/core/api/integrations/{integration_id}/gdbn/services/{service_id}/auth |
Get a service's auth method |
POST |
/core/api/integrations/{integration_id}/gdbn/services/{service_id}/auth |
Create a service's auth method |
PATCH |
/core/api/integrations/{integration_id}/gdbn/auth/{auth_method_id} |
Update an auth method |
DELETE |
/core/api/integrations/{integration_id}/gdbn/services/{service_id}/auth |
Delete a service's auth method |
POST |
/core/api/integrations/{integration_id}/gdbn/auth/test |
Test an auth method definition |
PUT |
/core/api/communities/{community_id}/debug |
Internal - override community debug fields (super user) |
Concepts¶
Ownership. An integration belongs to the user who created it. Every route that takes {integration_id}
only finds integrations owned by the caller; someone else's integration (or a non-existent one) returns 404.
There is no admin override.
Providers. The provider field selects the partner API dialect:
provider |
Partner API | Notes |
|---|---|---|
GDBN |
GDBN v2 (/api/v2/...), e.g. https://gdbn.example/backendv2 |
Services listed per company |
GDBN_V1 |
Legacy GDBN v1 (/api/v1/...), e.g. https://gdbn.eu/backend |
Services listed per account owner |
The /gdbn/... routes work with both providers; any other provider returns 404 Not a GDBN integration.
The request and response shapes are the same for both - only the upstream paths differ.
Status. status is one of pending, connected or error. It becomes connected (and
last_connected_at is set) after a successful login test, and error (with status_detail) after a failed
POST .../test or after any proxied call that GDBN rejects with 401.
Stored credentials. The partner password is encrypted at rest (Fernet, key INTEGRATIONS_ENCRYPTION_KEY) and
is never returned by the API; responses only expose base_url and email.
Integration object¶
All of the endpoints below that return an integration use this shape.
| Field | Type | Description |
|---|---|---|
id |
UUID | Integration id |
provider |
string | GDBN or GDBN_V1 |
base_url |
string | Partner API base URL |
email |
string | Partner login e-mail |
community_id |
UUID | null | Optional linked RECreation community |
status |
string | pending, connected or error |
status_detail |
string | null | Last error message, when status is error |
last_connected_at |
datetime | null | Last successful login test (UTC) |
created_at |
datetime | Creation time (UTC) |
Upstream mapping¶
For reference, this is what each proxy route calls on the partner platform. The call is authenticated with a
bearer accessToken obtained from the partner login; on a partner 401 RECreation logs in again and retries once.
| Operation | GDBN (v2) upstream |
GDBN_V1 (legacy) upstream |
|---|---|---|
| Login | POST /api/v2/auth/login |
POST /api/v1/users/login |
| List services | GET /api/v2/company/service-offerings |
GET /api/v1/services/users/{owner} |
| Create webhooks | POST /api/v2/service-offerings/{service_id}/webhooks |
POST /api/v1/services/{service_id}/webhooks |
| Update webhook | PATCH /api/v2/webhooks/{webhook_id} |
PATCH /api/v1/webhooks/{webhook_id} |
| Delete webhook | DELETE /api/v2/webhooks/{webhook_id} |
DELETE /api/v1/webhooks/{webhook_id} |
| Test webhook | POST /api/v2/webhooks/test |
POST /api/v1/webhooks/test |
| Get auth method | GET /api/v2/service-auth/services/{service_id} |
GET /api/v1/auth-methods/services/{service_id} |
| Create auth method | POST /api/v2/service-offerings/{service_id}/auth |
POST /api/v1/services/{service_id}/auth-methods |
| Update auth method | PATCH /api/v2/service-auth/{auth_method_id} |
PATCH /api/v1/auth-methods/{auth_method_id} |
| Delete auth method | DELETE /api/v2/service-offerings/{service_id}/auth |
DELETE /api/v1/services/{service_id}/auth-methods |
| Test auth method | POST /api/v2/service-auth/test |
POST /api/v1/auth-methods/test |
Errors from the partner¶
Failures reaching or authenticating against the partner are mapped to HTTP errors with a detail message:
| Status | When |
|---|---|
401 |
Partner rejected the credentials (Invalid GDBN credentials) or the retried call |
400 / 403 / 404 |
Partner answered with that status (GDBN error: <partner message>) |
502 |
Partner unreachable, timed out (15 s), returned 5xx, any other 4xx, or an invalid response |
Warning
A 401 on these routes can mean the partner rejected the stored credentials, not that your RECreation
token is invalid. Check status_detail on the integration (GET /core/api/integrations) to tell them apart.
Integrations¶
List Integrations¶
Returns every integration owned by the calling user, ordered by creation time (oldest first).
Auth / permissions: any authenticated user. Only the caller's own integrations are returned.
No parameters.
Example
Response (abridged)
[
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"provider": "GDBN",
"base_url": "https://gdbn.example/backendv2",
"email": "manager@example.com",
"community_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "connected",
"status_detail": null,
"last_connected_at": "2026-03-10T09:30:00Z",
"created_at": "2026-03-10T09:30:00Z"
}
]
Tip
The list is not paginated. Passwords are never included. An empty list ([]) means the caller has no
integrations yet.
Create an Integration¶
Registers credentials for a partner platform. RECreation first performs a real login against the partner
(base_url + provider login path); only if that succeeds is the integration stored, with status connected.
Auth / permissions: any authenticated user. The integration is owned by the caller.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
provider |
body | string | Yes | GDBN or GDBN_V1 |
base_url |
body | string | Yes | Partner API base URL; must be http(s)://... with a host. A trailing / is ignored |
email |
body | string | Yes | Partner login e-mail |
password |
body | string | Yes | Partner password (stored encrypted, never returned) |
community_id |
body | UUID | No | Link the integration to a RECreation community |
Example
curl -X POST https://<host>/core/api/integrations \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"provider": "GDBN",
"base_url": "https://gdbn.example/backendv2",
"email": "manager@example.com",
"password": "s3cret",
"community_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
}'
Response (201 Created, abridged)
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"provider": "GDBN",
"base_url": "https://gdbn.example/backendv2",
"email": "manager@example.com",
"community_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "connected",
"status_detail": null,
"last_connected_at": "2026-03-10T09:30:00Z",
"created_at": "2026-03-10T09:30:00Z"
}
Tip
400- unknownprovider.422-base_urlis not anhttp(s)URL, or the body is invalid.401/502- the preflight login failed (invalid partner credentials / partner unreachable). Nothing is saved in that case.community_idis stored as given; the router does not check that the community exists or that the caller has access to it.- The server needs
INTEGRATIONS_ENCRYPTION_KEYconfigured to store passwords; if it is missing the request fails with a500.
Update an Integration¶
Changes any subset of the integration's fields. If the provider, base_url, email or password changes,
the connection is re-tested (against the new provider when provider changes) before anything is saved.
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration to update |
provider |
body | string | No | GDBN or GDBN_V1 |
base_url |
body | string | No | New partner base URL (http(s)://...) |
email |
body | string | No | New partner e-mail |
password |
body | string | No | New partner password. If omitted, the stored password is reused for the re-test |
community_id |
body | UUID | null | No | Link to a community; send null explicitly to unlink |
Example
curl -X PATCH https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6 \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"base_url": "https://gdbn.example/backendv2", "password": "new-s3cret"}'
Response (abridged)
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"provider": "GDBN",
"base_url": "https://gdbn.example/backendv2",
"email": "manager@example.com",
"community_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "connected",
"status_detail": null,
"last_connected_at": "2026-03-11T14:02:10Z",
"created_at": "2026-03-10T09:30:00Z"
}
Tip
- Only fields present in the body are changed (
community_idalone does not trigger a re-test). - Errors:
404not found / not yours,400unknown provider,422invalidbase_url, and401/502when the re-test fails - in which case the changes are not saved. - Changing the provider while keeping the old stored password re-tests with that password against the new platform.
Delete an Integration¶
Deletes the integration and its stored (encrypted) credentials from RECreation.
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration to delete |
Example
curl -X DELETE https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6 \
-H "Authorization: Bearer $TOKEN"
Response: 204 No Content (empty body).
Tip
Only the local record is removed. Webhooks and auth methods already configured on the partner platform are
not deleted - remove them first with the /gdbn/... routes if needed. Integrations are also removed
automatically when their owner user is deleted; deleting the linked community only clears community_id.
Test an Integration¶
Logs in to the partner with the stored credentials and updates the integration's status accordingly.
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration to test |
Example
curl -X POST https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6/test \
-H "Authorization: Bearer $TOKEN"
Response (abridged, failed test)
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"provider": "GDBN",
"base_url": "https://gdbn.example/backendv2",
"email": "manager@example.com",
"community_id": null,
"status": "error",
"status_detail": "Invalid GDBN credentials",
"last_connected_at": "2026-03-10T09:30:00Z",
"created_at": "2026-03-10T09:30:00Z"
}
Tip
Unlike create/update, a failed test is not an HTTP error: the call returns 200 with status: "error"
and the reason in status_detail. A success sets status: "connected", clears status_detail and
refreshes last_connected_at. Only 404 (not found / not yours) is returned as an error.
GDBN Services¶
These routes proxy to the partner platform and require an integration whose provider is GDBN or GDBN_V1
(otherwise 404 Not a GDBN integration). {service_id} is the partner-side service identifier (a string
returned by the list call). See Errors from the partner for the statuses they can return.
List GDBN Services¶
Returns the services (service offerings) the partner account has, as returned by GDBN, typically including each service's webhooks.
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration id (provider GDBN or GDBN_V1) |
Example
curl https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6/gdbn/services \
-H "Authorization: Bearer $TOKEN"
Response (abridged; the body is passed through from GDBN)
[
{
"id": "svc-1",
"name": "Flex service",
"webhooks": [
{ "id": "wh-1", "url": "https://recreation.example/hooks/baseline", "event": "NEW_BASELINE" }
]
}
]
Tip
The exact fields come from GDBN and are not validated or reshaped by RECreation. Use the returned service
id as {service_id} and each webhook id as {webhook_id} in the routes below. For GDBN_V1, the account
owner id obtained at login is used to list the services.
GDBN Webhooks¶
Create GDBN Webhooks¶
Registers one or more webhooks on a partner service, so GDBN calls the given URL when the event occurs. The body is a JSON array, so several events can be registered in one call.
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration id |
service_id |
path | string | Yes | Partner service id |
[].url |
body | string | Yes | URL GDBN will call |
[].event |
body | string | Yes | GDBN event name, e.g. NEW_BASELINE, BID_AGREEMENT, NEW_FLEXIBILITY_REQUEST, BID_SELECTION, BID_ACTIVATION, QUALIFICATION |
Example
curl -X POST https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6/gdbn/services/svc-1/webhooks \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '[
{"url": "https://<host>/core/api/communities/7c9e6679-7425-40de-944b-e07fc1f90ae7/energy_management/offers/external/GDBN_BEFLEXIBLE", "event": "NEW_FLEXIBILITY_REQUEST"},
{"url": "https://<host>/hooks/baseline", "event": "NEW_BASELINE"}
]'
Response (201 Created, abridged; passed through from GDBN)
Tip
event is not validated by RECreation (it is any string); the six values above are the events the
integration code knows about, and GDBN decides whether others are accepted. The response status is always 201 when
GDBN accepts the request. 422 if the body is not an array of {url, event} objects.
Update a GDBN Webhook¶
Changes the URL of an existing webhook.
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration id |
webhook_id |
path | string | Yes | Partner webhook id |
url |
body | string | Yes | New URL |
Example
curl -X PATCH https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6/gdbn/webhooks/wh-2 \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"url": "https://<host>/hooks/baseline-v2"}'
Response
Tip
The partner's own response body is discarded; RECreation always answers {"detail": "updated"} on success.
Only the URL can be changed - to change the event, delete and re-create the webhook.
Delete a GDBN Webhook¶
Deletes a webhook on the partner platform.
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration id |
webhook_id |
path | string | Yes | Partner webhook id |
Example
curl -X DELETE https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6/gdbn/webhooks/wh-2 \
-H "Authorization: Bearer $TOKEN"
Response: 204 No Content (empty body).
Tip
Deletion happens on GDBN, not in RECreation's database. Partner errors (for example an unknown webhook_id)
are returned as the mapped 403 / 404 / 502 described above.
Test a GDBN Webhook¶
Asks GDBN to send a test request to a webhook URL, to verify that the endpoint is reachable and that the service authentication works, optionally with a custom body.
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration id |
url |
body | string | Yes | Webhook URL to test |
body |
body | object | No | Optional JSON payload GDBN should send; omitted from the proxied call when not provided |
Example
curl -X POST https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6/gdbn/webhooks/test \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"url": "https://<host>/hooks/baseline", "body": {"ping": true}}'
Response (illustrative; the body is whatever GDBN returns)
Tip
The result shape is defined by GDBN. This route is declared with POST .../webhooks/test; it is
distinct from PATCH/DELETE .../webhooks/{webhook_id} (different HTTP method), so test is never
interpreted as a webhook id.
GDBN Service Authentication¶
The auth method tells GDBN how to authenticate against your webhook endpoints (for example, how to obtain
a token from RECreation before posting setpoints/offers). Two types are supported: JWT_TOKEN (GDBN logs in at
a URL and then sends the token) and OAUTH2 (client credentials against a token URI). The same body schema is
used to create, update and test.
Auth method body¶
| Field | Type | Used by | Description |
|---|---|---|---|
type |
string | both (required) | JWT_TOKEN or OAUTH2 |
loginUrl |
string | JWT_TOKEN |
URL GDBN calls to log in |
usernameField |
string | JWT_TOKEN |
Name of the username field in the login body |
username |
string | JWT_TOKEN |
Username |
passwordField |
string | JWT_TOKEN |
Name of the password field in the login body |
password |
string | JWT_TOKEN |
Password |
tokenField |
string | JWT_TOKEN |
Name of the token field in the login response |
tokenUri |
string | OAUTH2 |
OAuth2 token endpoint |
clientId |
string | OAUTH2 |
Client id |
clientSecret |
string | OAUTH2 |
Client secret |
Fields that are not sent (or are null) are dropped before the request is forwarded, so GDBN only receives the
variant's own keys.
Get a GDBN Auth Method¶
Reads the auth method configured for a partner service.
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration id |
service_id |
path | string | Yes | Partner service id |
Example
curl https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6/gdbn/services/svc-1/auth \
-H "Authorization: Bearer $TOKEN"
Response (abridged; passed through from GDBN)
{
"id": "auth-1",
"type": "OAUTH2",
"tokenUri": "https://<keycloak-host>/realms/<your-realm>/protocol/openid-connect/token",
"clientId": "gdbn-client"
}
Tip
The response is exactly what GDBN returns; whether secrets are masked is decided by GDBN. Use the returned
id as {auth_method_id} for updates. If the service has no auth method, GDBN's error is mapped as described above (typically 404).
Create a GDBN Auth Method¶
Creates the auth method for a partner service.
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration id |
service_id |
path | string | Yes | Partner service id |
type |
body | string | Yes | JWT_TOKEN or OAUTH2 |
| other fields | body | string | Per type | See Auth method body |
Example
curl -X POST https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6/gdbn/services/svc-1/auth \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "OAUTH2",
"tokenUri": "https://<keycloak-host>/realms/<your-realm>/protocol/openid-connect/token",
"clientId": "gdbn-client",
"clientSecret": "s3cret"
}'
Response (201 Created, abridged; passed through from GDBN)
Tip
type is a free string in RECreation (not validated against JWT_TOKEN/OAUTH2); GDBN performs the real
validation and its 400 is passed through. Whether a service can have more than one auth method is decided by GDBN.
See Authentication for how the credentials GDBN will use against RECreation are obtained.
Update a GDBN Auth Method¶
Updates an existing auth method, addressed by its own id (not the service id).
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration id |
auth_method_id |
path | string | Yes | Partner auth method id |
type |
body | string | Yes | JWT_TOKEN or OAUTH2 |
| other fields | body | string | Per type | See Auth method body |
Example
curl -X PATCH https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6/gdbn/auth/auth-1 \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"type": "OAUTH2", "clientId": "gdbn-client", "clientSecret": "rotated-secret"}'
Response
Tip
type is required even for a partial update, because the body uses the same schema as create. The
partner's response body is discarded and {"detail": "updated"} is returned on success.
Delete a GDBN Auth Method¶
Removes the auth method of a partner service (addressed by the service id).
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration id |
service_id |
path | string | Yes | Partner service id |
Example
curl -X DELETE https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6/gdbn/services/svc-1/auth \
-H "Authorization: Bearer $TOKEN"
Response: 204 No Content (empty body).
Tip
Create and delete are addressed by {service_id}, update by {auth_method_id}. Without an auth method, GDBN
will no longer be able to authenticate its callbacks to your webhooks.
Test a GDBN Auth Method¶
Asks GDBN to try an auth method definition (without saving it) to check that the login / token request works.
Auth / permissions: any authenticated user, owner of the integration only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
integration_id |
path | UUID | Yes | Integration id |
type |
body | string | Yes | JWT_TOKEN or OAUTH2 |
| other fields | body | string | Per type | See Auth method body |
Example
curl -X POST https://<host>/core/api/integrations/3fa85f64-5717-4562-b3fc-2c963f66afa6/gdbn/auth/test \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "JWT_TOKEN",
"loginUrl": "https://<host>/core/api/auth/login",
"usernameField": "username",
"username": "gdbn-service",
"passwordField": "password",
"password": "s3cret",
"tokenField": "access_token"
}'
Response (illustrative; the body is whatever GDBN returns)
Tip
The result shape is defined by GDBN. The route is POST .../gdbn/auth/test; it does not collide with
PATCH .../gdbn/auth/{auth_method_id} since the HTTP methods differ.
Debug (internal)¶
Override Community Debug Fields¶
Internal - not for production use
This endpoint is intended for debugging only. It is excluded from the generated OpenAPI schema
(include_in_schema=False), is restricted to super users, and its own description states that
using it may result in community data corruption. Do not use it in integrations or automated workflows.
Directly overwrites the type and/or transaction_adjustment_tolerance columns of a community and returns the
updated community.
Auth / permissions: platform super user only (verified account with the SUPER_USER role). Any other caller receives 403 Super users only.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
community_id |
path | UUID | Yes | Community to modify |
type |
body | string | No | Community type: PROD, DEMO, SIMULATION, CUSTOM or TEST (see CommunityType) |
transaction_adjustment_tolerance |
body | float | No | Tolerance used in transaction adjustment corrections |
Example
curl -X PUT https://<host>/core/api/communities/7c9e6679-7425-40de-944b-e07fc1f90ae7/debug \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"type": "TEST", "transaction_adjustment_tolerance": 0.001}'
Response (abridged; CommunityResponseSchema)
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "REC Matosinhos",
"identifier": "rec-matosinhos",
"type": "TEST",
"status": "ACTIVE",
"transaction_adjustment_tolerance": 0.001,
"method_alloc_coeff": "FIXED",
"start_date": "2026-01-01",
"end_date": null
}
Tip
- Only non-null fields are applied: a field that is omitted or
nullis left unchanged, so these values cannot be reset tonullthrough this endpoint. - The change is written straight to the community row; it does not create a new configuration version
or use
start_date/effective_at, unlike the regular community update (see Business Validity). 404if the community does not exist,403for non-super-users,422for an invalidtypeor a non-numeric tolerance.- Use the regular Communities API for supported configuration changes; reserve this endpoint for support/debugging by platform staff.