affiliations
Version 0.1.09 operations
Affiliations of the organisation with masked credentials
GET/organisations/{organisationId}/affiliationsAPI key
Parameters
organisationIdstringpathrequired
Responses
200
idstring (uuid)requiredorganisationIdstring (uuid)requiredproviderstringrequired- enum: "clictopay", "flouci", "izi", "mpgs_poste", "pluxee", "kashy", "enda_tao"
providerNamestringrequiredlabelstringrequiredenvironmentstringrequired- enum: "sandbox", "production"
statusstringrequired- enum: "draft", "verifying", "active", "suspended", "revoked"
publicIdentifierstring | nullrequiredNever a secret
credentialsobjectrequiredNon-secret fields in full, secret fields as **** plus their last four characters; never a value usable at the provider
credentialVersionnumberrequiredCurrent credential version, 1 for the first credentials
verifiedAtstring (date-time) | nullrequiredlastUsedAtstring (date-time) | nullrequiredlastVerificationErrorstring | nullrequiredReadable, never a secret
revokedAtstring (date-time) | nullrequiredpaymentAccountsRoutedPaymentAccountDto[]requiredPayment accounts whose routing uses this affiliation; they lose it on revoke
idstring (uuid)requirednamestringrequiredstatusstringrequired- enum: "active", "paused", "archived"
createdAtstring (date-time)requiredupdatedAtstring (date-time)required
Code samples
curl -X GET "$KONNECT_API_URL/organisations/org_01J9Z3K4EXAMPLE0000000000/affiliations" \
-H "x-api-key: $KONNECT_API_KEY"Example: 200
[
{
"id": "id",
"organisationId": "org_01J9Z3K4EXAMPLE0000000000",
"provider": "clictopay",
"providerName": "ClicToPay",
"label": "default",
"environment": "sandbox",
"status": "draft",
"publicIdentifier": "publicIdentifier",
"credentials": {},
"credentialVersion": 1,
"verifiedAt": "2026-10-01T09:30:00.000Z",
"lastUsedAt": "2026-10-01T09:30:00.000Z",
"lastVerificationError": "lastVerificationError",
"revokedAt": "2026-10-01T09:30:00.000Z",
"paymentAccounts": [
{
"id": "id",
"name": "name",
"status": "active"
}
],
"createdAt": "2026-10-01T09:30:00.000Z",
"updatedAt": "2026-10-01T09:30:00.000Z"
}
]Add provider credentials: validated, encrypted, then verified through the connector
POST/organisations/{organisationId}/affiliationsAPI key
Ends active with a publicIdentifier when the provider accepts the credentials, stays verifying with a readable lastVerificationError otherwise. Sessions need a re-authentication in the last 10 minutes (403 reauth_required).
Parameters
organisationIdstringpathrequired
Request body application/json
providerstringrequired- enum: "clictopay", "flouci", "izi", "mpgs_poste", "pluxee", "kashy", "enda_tao"
labelstringLowercase letters, digits, - and _; unique per organisation and provider
environmentstringrequired- enum: "sandbox", "production"
credentialsobjectrequiredOne value per field of the provider credentialSchema (GET /providers/:code)
Responses
201
idstring (uuid)requiredorganisationIdstring (uuid)requiredproviderstringrequired- enum: "clictopay", "flouci", "izi", "mpgs_poste", "pluxee", "kashy", "enda_tao"
providerNamestringrequiredlabelstringrequiredenvironmentstringrequired- enum: "sandbox", "production"
statusstringrequired- enum: "draft", "verifying", "active", "suspended", "revoked"
publicIdentifierstring | nullrequiredNever a secret
credentialsobjectrequiredNon-secret fields in full, secret fields as **** plus their last four characters; never a value usable at the provider
credentialVersionnumberrequiredCurrent credential version, 1 for the first credentials
verifiedAtstring (date-time) | nullrequiredlastUsedAtstring (date-time) | nullrequiredlastVerificationErrorstring | nullrequiredReadable, never a secret
revokedAtstring (date-time) | nullrequiredpaymentAccountsRoutedPaymentAccountDto[]requiredPayment accounts whose routing uses this affiliation; they lose it on revoke
idstring (uuid)requirednamestringrequiredstatusstringrequired- enum: "active", "paused", "archived"
createdAtstring (date-time)requiredupdatedAtstring (date-time)required
400invalid_credentials (with the field names) or provider_not_available
403reauth_required or permission_denied
409affiliation_label_taken
Code samples
curl -X POST "$KONNECT_API_URL/organisations/org_01J9Z3K4EXAMPLE0000000000/affiliations" \
-H "x-api-key: $KONNECT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "clictopay",
"label": "default",
"environment": "sandbox",
"credentials": {}
}'Example: request body
{
"provider": "clictopay",
"label": "default",
"environment": "sandbox",
"credentials": {}
}Example: 201
{
"id": "id",
"organisationId": "org_01J9Z3K4EXAMPLE0000000000",
"provider": "clictopay",
"providerName": "ClicToPay",
"label": "default",
"environment": "sandbox",
"status": "draft",
"publicIdentifier": "publicIdentifier",
"credentials": {},
"credentialVersion": 1,
"verifiedAt": "2026-10-01T09:30:00.000Z",
"lastUsedAt": "2026-10-01T09:30:00.000Z",
"lastVerificationError": "lastVerificationError",
"revokedAt": "2026-10-01T09:30:00.000Z",
"paymentAccounts": [
{
"id": "id",
"name": "name",
"status": "active"
}
],
"createdAt": "2026-10-01T09:30:00.000Z",
"updatedAt": "2026-10-01T09:30:00.000Z"
}One affiliation with masked credentials
GET/organisations/{organisationId}/affiliations/{affiliationId}API key
Parameters
organisationIdstringpathrequiredaffiliationIdstringpathrequired
Responses
200
idstring (uuid)requiredorganisationIdstring (uuid)requiredproviderstringrequired- enum: "clictopay", "flouci", "izi", "mpgs_poste", "pluxee", "kashy", "enda_tao"
providerNamestringrequiredlabelstringrequiredenvironmentstringrequired- enum: "sandbox", "production"
statusstringrequired- enum: "draft", "verifying", "active", "suspended", "revoked"
publicIdentifierstring | nullrequiredNever a secret
credentialsobjectrequiredNon-secret fields in full, secret fields as **** plus their last four characters; never a value usable at the provider
credentialVersionnumberrequiredCurrent credential version, 1 for the first credentials
verifiedAtstring (date-time) | nullrequiredlastUsedAtstring (date-time) | nullrequiredlastVerificationErrorstring | nullrequiredReadable, never a secret
revokedAtstring (date-time) | nullrequiredpaymentAccountsRoutedPaymentAccountDto[]requiredPayment accounts whose routing uses this affiliation; they lose it on revoke
idstring (uuid)requirednamestringrequiredstatusstringrequired- enum: "active", "paused", "archived"
createdAtstring (date-time)requiredupdatedAtstring (date-time)required
Code samples
curl -X GET "$KONNECT_API_URL/organisations/org_01J9Z3K4EXAMPLE0000000000/affiliations/affiliationId" \
-H "x-api-key: $KONNECT_API_KEY"Example: 200
{
"id": "id",
"organisationId": "org_01J9Z3K4EXAMPLE0000000000",
"provider": "clictopay",
"providerName": "ClicToPay",
"label": "default",
"environment": "sandbox",
"status": "draft",
"publicIdentifier": "publicIdentifier",
"credentials": {},
"credentialVersion": 1,
"verifiedAt": "2026-10-01T09:30:00.000Z",
"lastUsedAt": "2026-10-01T09:30:00.000Z",
"lastVerificationError": "lastVerificationError",
"revokedAt": "2026-10-01T09:30:00.000Z",
"paymentAccounts": [
{
"id": "id",
"name": "name",
"status": "active"
}
],
"createdAt": "2026-10-01T09:30:00.000Z",
"updatedAt": "2026-10-01T09:30:00.000Z"
}Run the credential check again
POST/organisations/{organisationId}/affiliations/{affiliationId}/verifyAPI key
Parameters
organisationIdstringpathrequiredaffiliationIdstringpathrequired
Responses
200
idstring (uuid)requiredorganisationIdstring (uuid)requiredproviderstringrequired- enum: "clictopay", "flouci", "izi", "mpgs_poste", "pluxee", "kashy", "enda_tao"
providerNamestringrequiredlabelstringrequiredenvironmentstringrequired- enum: "sandbox", "production"
statusstringrequired- enum: "draft", "verifying", "active", "suspended", "revoked"
publicIdentifierstring | nullrequiredNever a secret
credentialsobjectrequiredNon-secret fields in full, secret fields as **** plus their last four characters; never a value usable at the provider
credentialVersionnumberrequiredCurrent credential version, 1 for the first credentials
verifiedAtstring (date-time) | nullrequiredlastUsedAtstring (date-time) | nullrequiredlastVerificationErrorstring | nullrequiredReadable, never a secret
revokedAtstring (date-time) | nullrequiredpaymentAccountsRoutedPaymentAccountDto[]requiredPayment accounts whose routing uses this affiliation; they lose it on revoke
idstring (uuid)requirednamestringrequiredstatusstringrequired- enum: "active", "paused", "archived"
createdAtstring (date-time)requiredupdatedAtstring (date-time)required
409affiliation_revoked or invalid_transition
Code samples
curl -X POST "$KONNECT_API_URL/organisations/org_01J9Z3K4EXAMPLE0000000000/affiliations/affiliationId/verify" \
-H "x-api-key: $KONNECT_API_KEY"Example: 200
{
"id": "id",
"organisationId": "org_01J9Z3K4EXAMPLE0000000000",
"provider": "clictopay",
"providerName": "ClicToPay",
"label": "default",
"environment": "sandbox",
"status": "draft",
"publicIdentifier": "publicIdentifier",
"credentials": {},
"credentialVersion": 1,
"verifiedAt": "2026-10-01T09:30:00.000Z",
"lastUsedAt": "2026-10-01T09:30:00.000Z",
"lastVerificationError": "lastVerificationError",
"revokedAt": "2026-10-01T09:30:00.000Z",
"paymentAccounts": [
{
"id": "id",
"name": "name",
"status": "active"
}
],
"createdAt": "2026-10-01T09:30:00.000Z",
"updatedAt": "2026-10-01T09:30:00.000Z"
}Replace the credentials (rotation): the previous version stays until the new one verifies
PUT/organisations/{organisationId}/affiliations/{affiliationId}/credentialsAPI key
Parameters
organisationIdstringpathrequiredaffiliationIdstringpathrequired
Request body application/json
credentialsobjectrequiredThe replacement credentials, one value per field of the credentialSchema
Responses
200
idstring (uuid)requiredorganisationIdstring (uuid)requiredproviderstringrequired- enum: "clictopay", "flouci", "izi", "mpgs_poste", "pluxee", "kashy", "enda_tao"
providerNamestringrequiredlabelstringrequiredenvironmentstringrequired- enum: "sandbox", "production"
statusstringrequired- enum: "draft", "verifying", "active", "suspended", "revoked"
publicIdentifierstring | nullrequiredNever a secret
credentialsobjectrequiredNon-secret fields in full, secret fields as **** plus their last four characters; never a value usable at the provider
credentialVersionnumberrequiredCurrent credential version, 1 for the first credentials
verifiedAtstring (date-time) | nullrequiredlastUsedAtstring (date-time) | nullrequiredlastVerificationErrorstring | nullrequiredReadable, never a secret
revokedAtstring (date-time) | nullrequiredpaymentAccountsRoutedPaymentAccountDto[]requiredPayment accounts whose routing uses this affiliation; they lose it on revoke
idstring (uuid)requirednamestringrequiredstatusstringrequired- enum: "active", "paused", "archived"
createdAtstring (date-time)requiredupdatedAtstring (date-time)required
403reauth_required or permission_denied
422credentials_rejected: the provider refused the new credentials, the current ones stay
errorstringrequiredreasonstringrequiredReadable reason from the connector, never a secret
Code samples
curl -X PUT "$KONNECT_API_URL/organisations/org_01J9Z3K4EXAMPLE0000000000/affiliations/affiliationId/credentials" \
-H "x-api-key: $KONNECT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"credentials": {}
}'Example: request body
{
"credentials": {}
}Example: 200
{
"id": "id",
"organisationId": "org_01J9Z3K4EXAMPLE0000000000",
"provider": "clictopay",
"providerName": "ClicToPay",
"label": "default",
"environment": "sandbox",
"status": "draft",
"publicIdentifier": "publicIdentifier",
"credentials": {},
"credentialVersion": 1,
"verifiedAt": "2026-10-01T09:30:00.000Z",
"lastUsedAt": "2026-10-01T09:30:00.000Z",
"lastVerificationError": "lastVerificationError",
"revokedAt": "2026-10-01T09:30:00.000Z",
"paymentAccounts": [
{
"id": "id",
"name": "name",
"status": "active"
}
],
"createdAt": "2026-10-01T09:30:00.000Z",
"updatedAt": "2026-10-01T09:30:00.000Z"
}Example: 422
{
"error": "credentials_rejected",
"reason": "reason"
}Suspend an active affiliation
POST/organisations/{organisationId}/affiliations/{affiliationId}/suspendAPI key
Parameters
organisationIdstringpathrequiredaffiliationIdstringpathrequired
Responses
200
idstring (uuid)requiredorganisationIdstring (uuid)requiredproviderstringrequired- enum: "clictopay", "flouci", "izi", "mpgs_poste", "pluxee", "kashy", "enda_tao"
providerNamestringrequiredlabelstringrequiredenvironmentstringrequired- enum: "sandbox", "production"
statusstringrequired- enum: "draft", "verifying", "active", "suspended", "revoked"
publicIdentifierstring | nullrequiredNever a secret
credentialsobjectrequiredNon-secret fields in full, secret fields as **** plus their last four characters; never a value usable at the provider
credentialVersionnumberrequiredCurrent credential version, 1 for the first credentials
verifiedAtstring (date-time) | nullrequiredlastUsedAtstring (date-time) | nullrequiredlastVerificationErrorstring | nullrequiredReadable, never a secret
revokedAtstring (date-time) | nullrequiredpaymentAccountsRoutedPaymentAccountDto[]requiredPayment accounts whose routing uses this affiliation; they lose it on revoke
idstring (uuid)requirednamestringrequiredstatusstringrequired- enum: "active", "paused", "archived"
createdAtstring (date-time)requiredupdatedAtstring (date-time)required
409invalid_transition
Code samples
curl -X POST "$KONNECT_API_URL/organisations/org_01J9Z3K4EXAMPLE0000000000/affiliations/affiliationId/suspend" \
-H "x-api-key: $KONNECT_API_KEY"Example: 200
{
"id": "id",
"organisationId": "org_01J9Z3K4EXAMPLE0000000000",
"provider": "clictopay",
"providerName": "ClicToPay",
"label": "default",
"environment": "sandbox",
"status": "draft",
"publicIdentifier": "publicIdentifier",
"credentials": {},
"credentialVersion": 1,
"verifiedAt": "2026-10-01T09:30:00.000Z",
"lastUsedAt": "2026-10-01T09:30:00.000Z",
"lastVerificationError": "lastVerificationError",
"revokedAt": "2026-10-01T09:30:00.000Z",
"paymentAccounts": [
{
"id": "id",
"name": "name",
"status": "active"
}
],
"createdAt": "2026-10-01T09:30:00.000Z",
"updatedAt": "2026-10-01T09:30:00.000Z"
}Resume a suspended affiliation
POST/organisations/{organisationId}/affiliations/{affiliationId}/resumeAPI key
Parameters
organisationIdstringpathrequiredaffiliationIdstringpathrequired
Responses
200
idstring (uuid)requiredorganisationIdstring (uuid)requiredproviderstringrequired- enum: "clictopay", "flouci", "izi", "mpgs_poste", "pluxee", "kashy", "enda_tao"
providerNamestringrequiredlabelstringrequiredenvironmentstringrequired- enum: "sandbox", "production"
statusstringrequired- enum: "draft", "verifying", "active", "suspended", "revoked"
publicIdentifierstring | nullrequiredNever a secret
credentialsobjectrequiredNon-secret fields in full, secret fields as **** plus their last four characters; never a value usable at the provider
credentialVersionnumberrequiredCurrent credential version, 1 for the first credentials
verifiedAtstring (date-time) | nullrequiredlastUsedAtstring (date-time) | nullrequiredlastVerificationErrorstring | nullrequiredReadable, never a secret
revokedAtstring (date-time) | nullrequiredpaymentAccountsRoutedPaymentAccountDto[]requiredPayment accounts whose routing uses this affiliation; they lose it on revoke
idstring (uuid)requirednamestringrequiredstatusstringrequired- enum: "active", "paused", "archived"
createdAtstring (date-time)requiredupdatedAtstring (date-time)required
409invalid_transition
Code samples
curl -X POST "$KONNECT_API_URL/organisations/org_01J9Z3K4EXAMPLE0000000000/affiliations/affiliationId/resume" \
-H "x-api-key: $KONNECT_API_KEY"Example: 200
{
"id": "id",
"organisationId": "org_01J9Z3K4EXAMPLE0000000000",
"provider": "clictopay",
"providerName": "ClicToPay",
"label": "default",
"environment": "sandbox",
"status": "draft",
"publicIdentifier": "publicIdentifier",
"credentials": {},
"credentialVersion": 1,
"verifiedAt": "2026-10-01T09:30:00.000Z",
"lastUsedAt": "2026-10-01T09:30:00.000Z",
"lastVerificationError": "lastVerificationError",
"revokedAt": "2026-10-01T09:30:00.000Z",
"paymentAccounts": [
{
"id": "id",
"name": "name",
"status": "active"
}
],
"createdAt": "2026-10-01T09:30:00.000Z",
"updatedAt": "2026-10-01T09:30:00.000Z"
}Revoke (terminal): the row stays, the credentials and their data keys are destroyed
POST/organisations/{organisationId}/affiliations/{affiliationId}/revokeAPI key
Parameters
organisationIdstringpathrequiredaffiliationIdstringpathrequired
Responses
200
idstring (uuid)requiredorganisationIdstring (uuid)requiredproviderstringrequired- enum: "clictopay", "flouci", "izi", "mpgs_poste", "pluxee", "kashy", "enda_tao"
providerNamestringrequiredlabelstringrequiredenvironmentstringrequired- enum: "sandbox", "production"
statusstringrequired- enum: "draft", "verifying", "active", "suspended", "revoked"
publicIdentifierstring | nullrequiredNever a secret
credentialsobjectrequiredNon-secret fields in full, secret fields as **** plus their last four characters; never a value usable at the provider
credentialVersionnumberrequiredCurrent credential version, 1 for the first credentials
verifiedAtstring (date-time) | nullrequiredlastUsedAtstring (date-time) | nullrequiredlastVerificationErrorstring | nullrequiredReadable, never a secret
revokedAtstring (date-time) | nullrequiredpaymentAccountsRoutedPaymentAccountDto[]requiredPayment accounts whose routing uses this affiliation; they lose it on revoke
idstring (uuid)requirednamestringrequiredstatusstringrequired- enum: "active", "paused", "archived"
createdAtstring (date-time)requiredupdatedAtstring (date-time)required
409affiliation_revoked
Code samples
curl -X POST "$KONNECT_API_URL/organisations/org_01J9Z3K4EXAMPLE0000000000/affiliations/affiliationId/revoke" \
-H "x-api-key: $KONNECT_API_KEY"Example: 200
{
"id": "id",
"organisationId": "org_01J9Z3K4EXAMPLE0000000000",
"provider": "clictopay",
"providerName": "ClicToPay",
"label": "default",
"environment": "sandbox",
"status": "draft",
"publicIdentifier": "publicIdentifier",
"credentials": {},
"credentialVersion": 1,
"verifiedAt": "2026-10-01T09:30:00.000Z",
"lastUsedAt": "2026-10-01T09:30:00.000Z",
"lastVerificationError": "lastVerificationError",
"revokedAt": "2026-10-01T09:30:00.000Z",
"paymentAccounts": [
{
"id": "id",
"name": "name",
"status": "active"
}
],
"createdAt": "2026-10-01T09:30:00.000Z",
"updatedAt": "2026-10-01T09:30:00.000Z"
}Audit events of one affiliation, newest first (the owner and Konnect support)
GET/organisations/{organisationId}/affiliations/{affiliationId}/auditDashboard session
Parameters
organisationIdstringpathrequiredaffiliationIdstringpathrequiredcursoranyquerylimitintegerquery- max: 200
- default: 50
actionanyquery
Responses
200
itemsAffiliationAuditEventDto[]requiredidstring (uuid)requiredactorUserIdstring (uuid) | nullorganisationIdstring (uuid) | nullaffiliationIdstring (uuid) | nullactionstringrequiredipstring | nulldetailsobjectrequiredcreatedAtstring (date-time)required
nextCursorstring | nullrequired
Code samples
curl -X GET "$KONNECT_API_URL/organisations/org_01J9Z3K4EXAMPLE0000000000/affiliations/affiliationId/audit" \
-H "Cookie: konnect_session=$KONNECT_SESSION"Example: 200
{
"items": [
{
"id": "id",
"actorUserId": "actorUserId",
"organisationId": "org_01J9Z3K4EXAMPLE0000000000",
"affiliationId": "affiliationId",
"action": "affiliation.credentials_read",
"ip": "ip",
"details": {},
"createdAt": "2026-10-01T09:30:00.000Z"
}
],
"nextCursor": "nextCursor"
}