API documentation | API docs for agents | OpenAPI 3.1
POST /api/v1/loads/{loadId}/dispatches/{dispatchId}/billing/carrier-payment/record
ark.record_carrier_payment
Records a ready or invoiced carrier payment as paid for a visible load dispatch, assigning or reusing its settlement number and saving paid date/reference details.
- 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
loadIdpathstringrequired- format: uuid
dispatchIdpathstringrequired- format: uuid
Idempotency-Keyheaderstringrequired- Required for external write operations. Reuse the same key only for exact retries of the same request body.
- min length: 1; max length: 200
Request body
carrierPaymentIdstringOptional carrier payment ID. Omit to use the carrier payment for the load dispatch.
format: uuid
referenceNumberstring | nullOptional payment reference number.
max length: 100
paidDatestringrequiredPayment date in YYYY-MM-DD format.
Example request
Shell
curl -X POST 'https://arktms.com/api/v1/loads/<loadId>/dispatches/<dispatchId>/billing/carrier-payment/record' \
-H "Authorization: Bearer $ARK_API_TOKEN" \
-H "Idempotency-Key: <unique-key>" \
-H "Content-Type: application/json" \
-d '{
"paidDate": "<paidDate>"
}'Success response
Recorded carrier payment
objectstringrequiredokbooleanrequiredapi_versionstringrequiredrequest_idstringrequireddataobjectrequireddata.loadIdstringrequiredformat: uuid
data.dispatchIdstringrequiredformat: uuid
data.carrierPaymentIdstringrequiredformat: uuid
data.loadobjectrequireddata.statusstringrequiredone of: PAID
data.paidDatestringrequiredformat: date
data.referenceNumberstring | nullrequireddata.paymentAmountstring | nullrequireddata.dueDatestring | nullrequiredformat: date-time
data.settlementNumberinteger | nullrequireddata.factoringIdstring | nullrequiredformat: uuid
data.currencystringrequireddata.messagestringrequiredErrors
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
HTTP 422- Invalid request