Skip to content

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

GET /core/api/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

curl https://<host>/core/api/integrations \
  -H "Authorization: Bearer $TOKEN"

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

POST /core/api/integrations

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 - unknown provider. 422 - base_url is not an http(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_id is 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_KEY configured to store passwords; if it is missing the request fails with a 500.

Update an Integration

PATCH /core/api/integrations/{integration_id}

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_id alone does not trigger a re-test).
  • Errors: 404 not found / not yours, 400 unknown provider, 422 invalid base_url, and 401 / 502 when 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

DELETE /core/api/integrations/{integration_id}

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

POST /core/api/integrations/{integration_id}/test

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

GET /core/api/integrations/{integration_id}/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

POST /core/api/integrations/{integration_id}/gdbn/services/{service_id}/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)

[
  { "id": "wh-2", "url": "https://<host>/hooks/baseline", "event": "NEW_BASELINE" }
]

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

PATCH /core/api/integrations/{integration_id}/gdbn/webhooks/{webhook_id}

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

{ "detail": "updated" }

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

DELETE /core/api/integrations/{integration_id}/gdbn/webhooks/{webhook_id}

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

POST /core/api/integrations/{integration_id}/gdbn/webhooks/test

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)

{ "status": 200, "message": "OK" }

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

GET /core/api/integrations/{integration_id}/gdbn/services/{service_id}/auth

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

POST /core/api/integrations/{integration_id}/gdbn/services/{service_id}/auth

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)

{ "id": "auth-1", "type": "OAUTH2" }

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

PATCH /core/api/integrations/{integration_id}/gdbn/auth/{auth_method_id}

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

{ "detail": "updated" }

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

DELETE /core/api/integrations/{integration_id}/gdbn/services/{service_id}/auth

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

POST /core/api/integrations/{integration_id}/gdbn/auth/test

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)

{ "success": true }

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

PUT /core/api/communities/{community_id}/debug

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 null is left unchanged, so these values cannot be reset to null through 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).
  • 404 if the community does not exist, 403 for non-super-users, 422 for an invalid type or a non-numeric tolerance.
  • Use the regular Communities API for supported configuration changes; reserve this endpoint for support/debugging by platform staff.