API documentation | API docs for agents | OpenAPI 3.1
POST /api/v1/billing/factoring/activities/records
ark.record_factoring_activity
Record Factoring Activity through the authoritative Billing application boundary.
- Availability
- Expanded preview
- Scopes
loads:readbilling:write- ARK permissions
canViewLoadscanViewBillingcanMakeAdjustments- Team visibility
- Required and enforced
- Idempotency-Key
- Required for this write
- Approval
- No MCP approval on REST API-token calls
- Rate limit
- API credential and organization budgets
Parameters
Idempotency-Keyheaderstringrequired- Stable key for safe replay of this exact operation input.
- min length: 8; max length: 200
Request body
reasonstringdefault: "Billing workbench action"; min length: 1; max length: 1000
queueQuickBooksSyncbooleandefault: false
targetsarray<object>requiredmin items: 1; max items: 1
factoringAgreementVersionIdstringrequiredformat: uuid
factoringAssignmentVersionIdstringrequiredformat: uuid
factoringExpectedAssignmentVersionintegerrequiredmax: 9007199254740991
factoringEffectiveDatestringrequiredfactoringReferencestringrequiredmin length: 1; max length: 200
factoringCurrencyCodestringrequiredfactoringAdvanceMinorstringrequiredfactoringGrossCollectionMinorstringrequiredfactoringReserveHoldMinorstringrequiredfactoringReserveReleaseMinorstringrequiredfactoringFeeMinorstringrequiredfactoringFeeSourcestring | nullrequiredfactoringActivityKindstringrequiredone of: funding, customer_collection, reserve_release, fee, mixed
factoringPreparationFingerprintstringrequiredfactoringPreviewHashstringrequiredfactoringVarianceAcknowledgedbooleandefault: false
factoringVarianceNotestring | nullfactoringEvidenceDocumentIdstringformat: uuid
factoringEvidenceSourceVersionIdstringformat: uuid
factoringEvidenceSha256stringExample request
Shell
curl -X POST 'https://arktms.com/api/v1/billing/factoring/activities/records' \
-H "Authorization: Bearer $ARK_API_TOKEN" \
-H "Idempotency-Key: <unique-key>" \
-H "Content-Type: application/json" \
-d '{
"targets": [
{
"obligationId": "<obligationId>",
"expectedWorkflowVersion": 1,
"expectedBalanceVersion": 1
}
],
"factoringAgreementVersionId": "<factoringAgreementVersionId>",
"factoringAssignmentVersionId": "<factoringAssignmentVersionId>",
"factoringExpectedAssignmentVersion": 1,
"factoringEffectiveDate": "<factoringEffectiveDate>",
"factoringReference": "<factoringReference>",
"factoringCurrencyCode": "<factoringCurrencyCode>",
"factoringAdvanceMinor": "<factoringAdvanceMinor>",
"factoringGrossCollectionMinor": "<factoringGrossCollectionMinor>",
"factoringReserveHoldMinor": "<factoringReserveHoldMinor>",
"factoringReserveReleaseMinor": "<factoringReserveReleaseMinor>",
"factoringFeeMinor": "<factoringFeeMinor>",
"factoringFeeSource": "reserve",
"factoringActivityKind": "funding",
"factoringPreparationFingerprint": "<factoringPreparationFingerprint>",
"factoringPreviewHash": "<factoringPreviewHash>"
}'Success response
Operation result.
objectstringrequiredokbooleanrequiredapi_versionstringrequiredrequest_idstringrequireddataobjectrequireddata.okbooleanrequireddata.actionstringrequireddata.updatedCountintegerrequiredmin: 0
data.messagestringrequireddata.failuresarray<object>requireddata.resultnull | boolean | number | string | array<any> | objectAction-specific JSON-safe result, including current versions and fingerprints.
Errors
HTTP 400- Invalid request
HTTP 401- Authentication required
HTTP 403- Permission, scope, team, or entitlement denied
HTTP 404- Resource not found
HTTP 409- Idempotency conflict or in-progress retry