Request
curl -X POST https://sandbox.api.lendeasy.ai /v1/servicing/workers \
-H "Authorization: Bearer $TOKEN" \
-H "LendEasy-Tenant: $TENANT" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "Content-Type: application/json" \
-d '{
"workerCode": "COLLECTIONS_VOICE_PRIMARY",
"displayName": "Collections voice agent",
"adapterCode": "OUTBOUND_VOICE_V1",
"contractVersion": "1.0",
"credentialRef": "voice-agent-client",
"readinessEvidenceRef": "eval-2026-07-24",
"queueCodes": [
"COLLECTIONS"
],
"taskTypeCodes": [
"COLLECTIONS_OUTREACH"
],
"skills": [
"COLLECTIONS",
"VOICE"
],
"languages": [
"en"
],
"capacity": 20 ,
"factGroupGrants": [
"LOAN",
"OVERDUE",
"PAYMENT",
"PAYMENT_INSTRUMENT",
"CONTACT",
"RESTRICTION"
],
"toolGrants": [
"CHECK_CONTACT_ELIGIBILITY",
"SUBMIT_VOICE_DISPOSITION"
],
"eligibleActionCodes": [
"AR_002_CREATE_PROMISE_TO_PAY",
"AR_007_PREPARE_BORROWER_AUTHORIZED_PAYMENT"
],
"active": true
}' await fetch(`https://sandbox.api.lendeasy.ai /v1/servicing/workers` , {
method: "POST" ,
headers: { Authorization: `Bearer ${token}` , "LendEasy-Tenant" : tenant, "Idempotency-Key" : idempotencyKey, "Content-Type" : "application/json" },
body: JSON.stringify({
"workerCode": "COLLECTIONS_VOICE_PRIMARY",
"displayName": "Collections voice agent",
"adapterCode": "OUTBOUND_VOICE_V1",
"contractVersion": "1.0",
"credentialRef": "voice-agent-client",
"readinessEvidenceRef": "eval-2026-07-24",
"queueCodes": [
"COLLECTIONS"
],
"taskTypeCodes": [
"COLLECTIONS_OUTREACH"
],
"skills": [
"COLLECTIONS",
"VOICE"
],
"languages": [
"en"
],
"capacity": 20 ,
"factGroupGrants": [
"LOAN",
"OVERDUE",
"PAYMENT",
"PAYMENT_INSTRUMENT",
"CONTACT",
"RESTRICTION"
],
"toolGrants": [
"CHECK_CONTACT_ELIGIBILITY",
"SUBMIT_VOICE_DISPOSITION"
],
"eligibleActionCodes": [
"AR_002_CREATE_PROMISE_TO_PAY",
"AR_007_PREPARE_BORROWER_AUTHORIZED_PAYMENT"
],
"active": true
}),
});requests.post(
f"https://sandbox.api.lendeasy.ai /v1/servicing/workers" ,
headers={"Authorization" : f"Bearer {token}" , "LendEasy-Tenant" : tenant, "Idempotency-Key" : idempotency_key},
json={
"workerCode": "COLLECTIONS_VOICE_PRIMARY",
"displayName": "Collections voice agent",
"adapterCode": "OUTBOUND_VOICE_V1",
"contractVersion": "1.0",
"credentialRef": "voice-agent-client",
"readinessEvidenceRef": "eval-2026-07-24",
"queueCodes": [
"COLLECTIONS"
],
"taskTypeCodes": [
"COLLECTIONS_OUTREACH"
],
"skills": [
"COLLECTIONS",
"VOICE"
],
"languages": [
"en"
],
"capacity": 20 ,
"factGroupGrants": [
"LOAN",
"OVERDUE",
"PAYMENT",
"PAYMENT_INSTRUMENT",
"CONTACT",
"RESTRICTION"
],
"toolGrants": [
"CHECK_CONTACT_ELIGIBILITY",
"SUBMIT_VOICE_DISPOSITION"
],
"eligibleActionCodes": [
"AR_002_CREATE_PROMISE_TO_PAY",
"AR_007_PREPARE_BORROWER_AUTHORIZED_PAYMENT"
],
"active": true
},
)201 400 401 403 404 409
{
"workerId": 5101 ,
"workerCode": "COLLECTIONS_VOICE_PRIMARY",
"active": true ,
"resourceId": 5101
}{
"developerMessage": "Request was understood but rejected; inspect errors for field-level causes.",
"httpStatusCode": "400",
"defaultUserMessage": "The request could not be applied.",
"userMessageGlobalisationCode": "validation.msg.validation.errors.exist",
"errors": []
}{
"developerMessage": "Request was understood but rejected; inspect errors for field-level causes.",
"httpStatusCode": "401",
"defaultUserMessage": "The request could not be applied.",
"userMessageGlobalisationCode": "error.msg.not.authenticated",
"errors": []
}{
"developerMessage": "Request was understood but rejected; inspect errors for field-level causes.",
"httpStatusCode": "403",
"defaultUserMessage": "The request could not be applied.",
"userMessageGlobalisationCode": "error.msg.not.authorized",
"errors": []
}{
"developerMessage": "Request was understood but rejected; inspect errors for field-level causes.",
"httpStatusCode": "404",
"defaultUserMessage": "The request could not be applied.",
"userMessageGlobalisationCode": "error.msg.resource.not.found",
"errors": []
}{
"developerMessage": "Request was understood but rejected; inspect errors for field-level causes.",
"httpStatusCode": "409",
"defaultUserMessage": "The request could not be applied.",
"userMessageGlobalisationCode": "idempotency.request.in.flight",
"errors": []
}