curl --request POST \
--url https://platform.swipelux.com/v3/customers/{customerId}/capabilities/{capabilityId} \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'X-API-Key: <api-key>' \
--data '
{
"institutions": [
"citibank",
"jpmorgan"
]
}
'{
"data": {
"id": "ach_pooled",
"customerId": "cus_7F3pL2nQ9xA5mW8kR1sT4v",
"method": "ach",
"accountType": "pooled",
"accountProvisioning": "not_started",
"status": "restricted",
"statusReason": {
"code": "tasks_due",
"resolution": "complete_tasks",
"message": "Additional customer information is required."
},
"openTaskIds": [
"tsk_8uL2nA7xQ5mR9pT4vZ1sWc"
],
"applications": [
{
"id": "apl_4Y9xQ8u3m2N7p6R5s1T0vZ",
"institution": {
"id": "jpmorgan",
"name": "JPMorgan Chase",
"bic": "CHASUS33"
},
"status": "in_review",
"statusReason": {
"code": "internal_review",
"message": "The submission is under internal review.",
"actor": "swipelux",
"retryable": true
},
"openTaskIds": [
"tsk_8uL2nA7xQ5mR9pT4vZ1sWc"
],
"submittedAt": "2026-06-22T10:15:30.000Z",
"createdAt": "2026-06-22T10:15:30.000Z",
"updatedAt": "2026-06-22T10:15:30.000Z"
}
],
"submittedAt": "2026-06-22T10:15:30.000Z",
"createdAt": "2026-06-22T10:15:30.000Z",
"updatedAt": "2026-06-22T10:15:30.000Z"
}
}{
"data": {
"id": "ach_pooled",
"customerId": "cus_7F3pL2nQ9xA5mW8kR1sT4v",
"method": "ach",
"accountType": "pooled",
"accountProvisioning": "not_started",
"status": "restricted",
"statusReason": {
"code": "tasks_due",
"resolution": "complete_tasks",
"message": "Additional customer information is required."
},
"openTaskIds": [
"tsk_8uL2nA7xQ5mR9pT4vZ1sWc"
],
"applications": [
{
"id": "apl_4Y9xQ8u3m2N7p6R5s1T0vZ",
"institution": {
"id": "jpmorgan",
"name": "JPMorgan Chase",
"bic": "CHASUS33"
},
"status": "in_review",
"statusReason": {
"code": "internal_review",
"message": "The submission is under internal review.",
"actor": "swipelux",
"retryable": true
},
"openTaskIds": [
"tsk_8uL2nA7xQ5mR9pT4vZ1sWc"
],
"submittedAt": "2026-06-22T10:15:30.000Z",
"createdAt": "2026-06-22T10:15:30.000Z",
"updatedAt": "2026-06-22T10:15:30.000Z"
}
],
"submittedAt": "2026-06-22T10:15:30.000Z",
"createdAt": "2026-06-22T10:15:30.000Z",
"updatedAt": "2026-06-22T10:15:30.000Z"
}
}{
"type": "https://docs.swipelux.com/errors/validation-error",
"title": "<string>",
"status": 400,
"code": "validation_error",
"detail": "<string>",
"correlationId": "<string>",
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"transferId": "<string>",
"retryable": true,
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}{
"type": "https://docs.swipelux.com/errors/unauthorized",
"title": "<string>",
"status": 401,
"code": "unauthorized",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/forbidden",
"title": "<string>",
"status": 403,
"code": "forbidden",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/customer-not-found",
"title": "<string>",
"status": 404,
"code": "customer_not_found",
"detail": "<string>",
"correlationId": "<string>",
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/capability-already-exists",
"title": "<string>",
"status": 409,
"code": "capability_already_exists",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"transferId": "<string>",
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}{
"type": "https://docs.swipelux.com/errors/capability-key-unsupported",
"title": "<string>",
"status": 422,
"code": "capability_key_unsupported",
"detail": "<string>",
"correlationId": "<string>",
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"retryable": false,
"transferId": "<string>",
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}{
"type": "https://docs.swipelux.com/errors/internal-error",
"title": "<string>",
"status": 500,
"code": "internal_error",
"detail": "<string>",
"correlationId": "<string>",
"retryable": true,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"transferId": "<string>",
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}{
"type": "https://docs.swipelux.com/errors/initial-application-owner-unavailable",
"title": "<string>",
"status": 503,
"code": "initial_application_owner_unavailable",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"transferId": "<string>",
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}Create capability
Requests a customer capability by its capability id. Requesting a canceled capability with a new idempotency key starts it again once current eligibility and routing checks pass. For bank-backed capabilities, an omitted or empty institutions list selects the default institutions; a non-empty list overrides them. When customer onboarding is incomplete, the capability is created as restricted with open tasks and its planned applications, and submission waits until those tasks are complete. Known ineligible variants fail instead of silently falling back. The response’s accountProvisioning reports account issuance separately from the capability status. Send Idempotency-Key for every POST; the same key and body replay the original response, except accountProvisioning, which is recalculated on every replay so it never reports stale issuance.
curl --request POST \
--url https://platform.swipelux.com/v3/customers/{customerId}/capabilities/{capabilityId} \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'X-API-Key: <api-key>' \
--data '
{
"institutions": [
"citibank",
"jpmorgan"
]
}
'{
"data": {
"id": "ach_pooled",
"customerId": "cus_7F3pL2nQ9xA5mW8kR1sT4v",
"method": "ach",
"accountType": "pooled",
"accountProvisioning": "not_started",
"status": "restricted",
"statusReason": {
"code": "tasks_due",
"resolution": "complete_tasks",
"message": "Additional customer information is required."
},
"openTaskIds": [
"tsk_8uL2nA7xQ5mR9pT4vZ1sWc"
],
"applications": [
{
"id": "apl_4Y9xQ8u3m2N7p6R5s1T0vZ",
"institution": {
"id": "jpmorgan",
"name": "JPMorgan Chase",
"bic": "CHASUS33"
},
"status": "in_review",
"statusReason": {
"code": "internal_review",
"message": "The submission is under internal review.",
"actor": "swipelux",
"retryable": true
},
"openTaskIds": [
"tsk_8uL2nA7xQ5mR9pT4vZ1sWc"
],
"submittedAt": "2026-06-22T10:15:30.000Z",
"createdAt": "2026-06-22T10:15:30.000Z",
"updatedAt": "2026-06-22T10:15:30.000Z"
}
],
"submittedAt": "2026-06-22T10:15:30.000Z",
"createdAt": "2026-06-22T10:15:30.000Z",
"updatedAt": "2026-06-22T10:15:30.000Z"
}
}{
"data": {
"id": "ach_pooled",
"customerId": "cus_7F3pL2nQ9xA5mW8kR1sT4v",
"method": "ach",
"accountType": "pooled",
"accountProvisioning": "not_started",
"status": "restricted",
"statusReason": {
"code": "tasks_due",
"resolution": "complete_tasks",
"message": "Additional customer information is required."
},
"openTaskIds": [
"tsk_8uL2nA7xQ5mR9pT4vZ1sWc"
],
"applications": [
{
"id": "apl_4Y9xQ8u3m2N7p6R5s1T0vZ",
"institution": {
"id": "jpmorgan",
"name": "JPMorgan Chase",
"bic": "CHASUS33"
},
"status": "in_review",
"statusReason": {
"code": "internal_review",
"message": "The submission is under internal review.",
"actor": "swipelux",
"retryable": true
},
"openTaskIds": [
"tsk_8uL2nA7xQ5mR9pT4vZ1sWc"
],
"submittedAt": "2026-06-22T10:15:30.000Z",
"createdAt": "2026-06-22T10:15:30.000Z",
"updatedAt": "2026-06-22T10:15:30.000Z"
}
],
"submittedAt": "2026-06-22T10:15:30.000Z",
"createdAt": "2026-06-22T10:15:30.000Z",
"updatedAt": "2026-06-22T10:15:30.000Z"
}
}{
"type": "https://docs.swipelux.com/errors/validation-error",
"title": "<string>",
"status": 400,
"code": "validation_error",
"detail": "<string>",
"correlationId": "<string>",
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"transferId": "<string>",
"retryable": true,
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}{
"type": "https://docs.swipelux.com/errors/unauthorized",
"title": "<string>",
"status": 401,
"code": "unauthorized",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/forbidden",
"title": "<string>",
"status": 403,
"code": "forbidden",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/customer-not-found",
"title": "<string>",
"status": 404,
"code": "customer_not_found",
"detail": "<string>",
"correlationId": "<string>",
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/capability-already-exists",
"title": "<string>",
"status": 409,
"code": "capability_already_exists",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"transferId": "<string>",
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}{
"type": "https://docs.swipelux.com/errors/capability-key-unsupported",
"title": "<string>",
"status": 422,
"code": "capability_key_unsupported",
"detail": "<string>",
"correlationId": "<string>",
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"retryable": false,
"transferId": "<string>",
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}{
"type": "https://docs.swipelux.com/errors/internal-error",
"title": "<string>",
"status": 500,
"code": "internal_error",
"detail": "<string>",
"correlationId": "<string>",
"retryable": true,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"transferId": "<string>",
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}{
"type": "https://docs.swipelux.com/errors/initial-application-owner-unavailable",
"title": "<string>",
"status": 503,
"code": "initial_application_owner_unavailable",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"transferId": "<string>",
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}Authorizations
Your Swipelux API key. Obtain this from the Swipelux Dashboard.
Headers
Required for effectful v3 requests (POST, PATCH, PUT, DELETE). Reuse the same key with the same body to replay the cached response.
1 - 255Body
Public institution ids returned by GET /v3/customers/{customerId}/capabilities/supported. Omitted or empty institutions lists select applicable defaults; a non-empty list explicitly overrides defaults.
Opaque public institution id.
["jpmorgan"]
Response
Canceled capability requested again, or the request resolved to an application case the customer already had
Capability.
- Option 1
- Option 2
Show child attributes
Show child attributes
The application case this request selected: the customer's existing case at the chosen institution, or the one this request opened. Present only for case-backed capabilities once shared applications are active.