A valid request URL is required to generate request examples{
"key": "shopify",
"name": "Shopify",
"category": "ecommerce",
"enabled": true,
"config": {
"shopDomain": "acme.myshopify.com",
"accessToken": "••••••",
"syncStock": true
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Configure a connector (connecteur, intégration)
UPSERTS a connector by its key: MERGES the submitted config patch into the stored config, or CREATES the connector when the key is unknown (so a fresh, unseeded backend can be configured) — send name / category and they seed the created connector’s display identity (ignored when it already exists). Returns the connector (secrets re-masked). Only the fields you send are touched; omitted fields are left as they were. A field set to the mask sentinel (••••••) is SKIPPED — echoing a masked secret back keeps the stored one, so you never overwrite a credential you were never shown; send a real value only to change it. This operation STORES CREDENTIALS and can wire a LIVE external integration (it is the domain’s lowest agent tier): do not call it speculatively, and confirm the credentials with the operator first. 400 on a malformed config (a nested/non-primitive value). Requires pos.settings.manage.
A valid request URL is required to generate request examples{
"key": "shopify",
"name": "Shopify",
"category": "ecommerce",
"enabled": true,
"config": {
"shopDomain": "acme.myshopify.com",
"accessToken": "••••••",
"syncStock": true
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Authorizations
Authorization: Bearer <token>. Accepts EITHER a Keycloak access token (scopes-in-token) OR an opaque POS session token; both resolve to the same pos.* scope vocabulary the route guards enforce.
Path Parameters
The connector's stable key, e.g. shopify (from the connector list).
1Body
The config PATCH to merge; a field left at the •••••• mask sentinel is skipped.
Show child attributes
Show child attributes
Display name for a connector CREATED by this write (ignored if it exists).
1Family for a connector CREATED by this write (ignored if it exists).
payment, ecommerce, accounting, merchandising Response
The connector as persisted (secrets masked).

