{
"outcome": "VERSION_CREATED",
"resourceId": "customer_resource_example_01",
"versionId": "customer_version_example_01",
"currentVersionId": "customer_version_example_01"
}{
"outcome": "CREATED",
"resourceId": "customer_resource_example_01",
"versionId": "customer_version_example_01",
"currentVersionId": "customer_version_example_01"
}{
"type": "https://karsa.app/problems/invalid-request",
"title": "Ingestion Rejected",
"status": 400,
"detail": "The request did not match the ingestion schema",
"code": "INVALID_REQUEST",
"requestId": "req_example_01"
}{
"type": "https://karsa.app/problems/authentication-required",
"title": "Ingestion Rejected",
"status": 401,
"detail": "A source-bound bearer credential is required",
"code": "AUTHENTICATION_REQUIRED",
"requestId": "req_example_01"
}{
"type": "https://karsa.app/problems/resource-not-found",
"title": "Ingestion Rejected",
"status": 404,
"detail": "A referenced source resource was not found",
"code": "RESOURCE_NOT_FOUND",
"requestId": "req_example_01"
}{
"type": "https://karsa.app/problems/source-identity-conflict",
"title": "Ingestion Rejected",
"status": 409,
"detail": "The source identity is already bound",
"code": "SOURCE_IDENTITY_CONFLICT",
"requestId": "req_example_01"
}{
"type": "https://karsa.app/problems/future-effective-at",
"title": "Ingestion Rejected",
"status": 422,
"detail": "Future-effective scheduling is not supported",
"code": "FUTURE_EFFECTIVE_AT",
"requestId": "req_example_01"
}{
"type": "https://karsa.app/problems/rate-limited",
"title": "Ingestion Rejected",
"status": 429,
"detail": "The ingestion source exceeded its configured rate",
"code": "RATE_LIMITED",
"requestId": "req_example_01"
}{
"type": "https://karsa.app/problems/ingestion-internal-error",
"title": "Ingestion Unavailable",
"status": 500,
"detail": "The ingestion request could not be completed",
"code": "INGESTION_INTERNAL_ERROR",
"requestId": "req_example_01"
}Customers
Create a customer
Creates or versions exactly one complete Customer and its document links. Set type to INDIVIDUAL or BUSINESS.
POST
/
api
/
ingestion
/
customers
{
"outcome": "VERSION_CREATED",
"resourceId": "customer_resource_example_01",
"versionId": "customer_version_example_01",
"currentVersionId": "customer_version_example_01"
}{
"outcome": "CREATED",
"resourceId": "customer_resource_example_01",
"versionId": "customer_version_example_01",
"currentVersionId": "customer_version_example_01"
}{
"type": "https://karsa.app/problems/invalid-request",
"title": "Ingestion Rejected",
"status": 400,
"detail": "The request did not match the ingestion schema",
"code": "INVALID_REQUEST",
"requestId": "req_example_01"
}{
"type": "https://karsa.app/problems/authentication-required",
"title": "Ingestion Rejected",
"status": 401,
"detail": "A source-bound bearer credential is required",
"code": "AUTHENTICATION_REQUIRED",
"requestId": "req_example_01"
}{
"type": "https://karsa.app/problems/resource-not-found",
"title": "Ingestion Rejected",
"status": 404,
"detail": "A referenced source resource was not found",
"code": "RESOURCE_NOT_FOUND",
"requestId": "req_example_01"
}{
"type": "https://karsa.app/problems/source-identity-conflict",
"title": "Ingestion Rejected",
"status": 409,
"detail": "The source identity is already bound",
"code": "SOURCE_IDENTITY_CONFLICT",
"requestId": "req_example_01"
}{
"type": "https://karsa.app/problems/future-effective-at",
"title": "Ingestion Rejected",
"status": 422,
"detail": "Future-effective scheduling is not supported",
"code": "FUTURE_EFFECTIVE_AT",
"requestId": "req_example_01"
}{
"type": "https://karsa.app/problems/rate-limited",
"title": "Ingestion Rejected",
"status": 429,
"detail": "The ingestion source exceeded its configured rate",
"code": "RATE_LIMITED",
"requestId": "req_example_01"
}{
"type": "https://karsa.app/problems/ingestion-internal-error",
"title": "Ingestion Unavailable",
"status": 500,
"detail": "The ingestion request could not be completed",
"code": "INGESTION_INTERNAL_ERROR",
"requestId": "req_example_01"
}Authorizations
Source-bound WorkOS API key or configured machine OIDC token. OIDC webhook management requires karsa:webhooks:manage.
Headers
Stable source submission identifier, unique for this source and route
Required string length:
1 - 200Example:
"01J9ZQ2YD15Y2YZ5H0W3J7D3E2"
Body
application/json
- Option 1
- Option 2
Required string length:
1 - 200Available options:
PENDING, ACTIVE, SUSPENDED, CLOSED Available options:
BUSINESS Hide child attributes
Hide child attributes
Required string length:
1 - 300Required array length:
1 - 20 elementsRequired string length:
1 - 500Hide child attributes
Hide child attributes
Required string length:
1 - 500Required array length:
1 - 10 elementsHide child attributes
Hide child attributes
Pattern:
^[A-Z]{2}$Available options:
EIN, TIN, VAT, CNPJ, RFC, NIT, NTN, BIN, TRN, OTHER Required string length:
1 - 500Required string length:
1 - 200Hide child attributes
Hide child attributes
Required array length:
1 - 6 elementsRequired string length:
1 - 500Required string length:
1 - 500Required string length:
1 - 500Required string length:
1 - 500Required string length:
1 - 40Pattern:
^[A-Z]{2}$Maximum string length:
320Maximum string length:
2000Hide child attributes
Hide child attributes
Required array length:
1 - 6 elementsRequired string length:
1 - 500Required string length:
1 - 500Required string length:
1 - 500Required string length:
1 - 500Required string length:
1 - 40Pattern:
^[A-Z]{2}$Required string length:
1 - 2000Hide child attributes
Hide child attributes
Available options:
NAICS, NACE, ISIC, MCC, OTHER Required string length:
1 - 500Required string length:
1 - 80Required string length:
1 - 500Required string length:
1 - 2000Hide child attributes
Hide child attributes
Required array length:
1 - 7 elementsAvailable options:
OPERATING_REVENUE, OWNER_OR_SHAREHOLDER_FUNDS, INVESTMENT_OR_CAPITAL, LOAN_OR_CREDIT, ASSET_SALE, GRANT_OR_DONATION, OTHER Required string length:
1 - 2000Required array length:
1 - 50 elementsPattern:
^[A-Z]{2}$Required array length:
1 - 25 elementsHide child attributes
Hide child attributes
Required string length:
1 - 500Available options:
MONEY_TRANSMISSION, PAYMENT_SERVICES, VIRTUAL_ASSET_SERVICES, CUSTODY, EXCHANGE_OR_TRADING, LENDING, BANKING, BROKER_DEALER, OTHER Pattern:
^[A-Z]{2}$Available options:
LICENCE, REGULATORY_REGISTRATION, ACCEPTED_EXEMPTION Required string length:
1 - 500Required string length:
1 - 500Available options:
AUTHORIZED, PENDING, EXEMPT, NOT_AUTHORIZED Maximum string length:
2000Required string length:
1 - 200Pattern:
^\+[1-9]\d{1,14}$Required string length:
1 - 2000Required string length:
1 - 2000