List the rows of a payout run
curl --request GET \
--url https://api.lightspark.com/grid/2025-10-13/payout-runs/{payoutRunId}/rows \
--header 'Authorization: Basic <encoded-value>'const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.lightspark.com/grid/2025-10-13/payout-runs/{payoutRunId}/rows', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));val client = OkHttpClient()
val request = Request.Builder()
.url("https://api.lightspark.com/grid/2025-10-13/payout-runs/{payoutRunId}/rows")
.get()
.addHeader("Authorization", "Basic <encoded-value>")
.build()
val response = client.newCall(request).execute(){
"data": [
{
"id": "PayoutRunRow:019542f5-b3e7-1d02-0000-000000000002",
"payoutRunId": "PayoutRun:019542f5-b3e7-1d02-0000-000000000001",
"clientRowId": "contractor-0042",
"rowIndex": 41,
"state": "PENDING",
"lockedCurrencySide": "SENDING",
"lockedCurrencyAmount": 125000,
"destination": {
"destinationType": "EXTERNAL_ACCOUNT",
"externalAccountId": "ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123"
},
"createdAt": "2026-11-04T22:00:00Z",
"updatedAt": "2026-11-05T02:14:00Z",
"description": "October invoice",
"purposeOfPayment": "GIFT",
"quoteId": "Quote:019542f5-b3e7-1d02-0000-000000000006",
"transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000005",
"claimablePayoutId": "ClaimablePayout:019542f5-b3e7-1d02-0000-000000000007",
"failureCode": "INSUFFICIENT_FUNDS",
"failureReason": "Insufficient balance on the source account."
}
],
"hasMore": true,
"nextCursor": "<string>",
"totalCount": 123
}{
"code": "INVALID_INPUT",
"reason": "<string>",
"details": {
"errors": [
{
"field": "identifier",
"constraint": {
"format": "email",
"pattern": "^\\d{5}(-\\d{4})?$",
"enum": [
"SSN",
"ITIN",
"NON_US_TAX_ID"
],
"minLength": 1,
"maxLength": 500
},
"message": "Value is not one of the allowed enum members."
}
],
"missingRequirements": [
"SUPPORTING_PROOF"
],
"refusalReason": "AGENT_POLICY_DENIED",
"missingFields": [
"PHONE_NUMBER"
]
}
}{
"code": "UNAUTHORIZED",
"reason": "<string>",
"details": {}
}{
"code": "FORBIDDEN",
"reason": "<string>",
"details": {
"refusalReason": "AGENT_POLICY_DENIED",
"permission": "ISSUE_CARDS",
"policyDenialReason": "DAILY_LIMIT_EXCEEDED"
}
}{
"code": "TRANSACTION_NOT_FOUND",
"reason": "<string>",
"details": {}
}{
"code": "GRID_SWITCH_ERROR",
"reason": "<string>",
"details": {}
}Payout Runs
List the rows of a payout run
The run’s rows in the order they were submitted, rejected rows included.
GET
/
payout-runs
/
{payoutRunId}
/
rows
List the rows of a payout run
curl --request GET \
--url https://api.lightspark.com/grid/2025-10-13/payout-runs/{payoutRunId}/rows \
--header 'Authorization: Basic <encoded-value>'const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.lightspark.com/grid/2025-10-13/payout-runs/{payoutRunId}/rows', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));val client = OkHttpClient()
val request = Request.Builder()
.url("https://api.lightspark.com/grid/2025-10-13/payout-runs/{payoutRunId}/rows")
.get()
.addHeader("Authorization", "Basic <encoded-value>")
.build()
val response = client.newCall(request).execute(){
"data": [
{
"id": "PayoutRunRow:019542f5-b3e7-1d02-0000-000000000002",
"payoutRunId": "PayoutRun:019542f5-b3e7-1d02-0000-000000000001",
"clientRowId": "contractor-0042",
"rowIndex": 41,
"state": "PENDING",
"lockedCurrencySide": "SENDING",
"lockedCurrencyAmount": 125000,
"destination": {
"destinationType": "EXTERNAL_ACCOUNT",
"externalAccountId": "ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123"
},
"createdAt": "2026-11-04T22:00:00Z",
"updatedAt": "2026-11-05T02:14:00Z",
"description": "October invoice",
"purposeOfPayment": "GIFT",
"quoteId": "Quote:019542f5-b3e7-1d02-0000-000000000006",
"transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000005",
"claimablePayoutId": "ClaimablePayout:019542f5-b3e7-1d02-0000-000000000007",
"failureCode": "INSUFFICIENT_FUNDS",
"failureReason": "Insufficient balance on the source account."
}
],
"hasMore": true,
"nextCursor": "<string>",
"totalCount": 123
}{
"code": "INVALID_INPUT",
"reason": "<string>",
"details": {
"errors": [
{
"field": "identifier",
"constraint": {
"format": "email",
"pattern": "^\\d{5}(-\\d{4})?$",
"enum": [
"SSN",
"ITIN",
"NON_US_TAX_ID"
],
"minLength": 1,
"maxLength": 500
},
"message": "Value is not one of the allowed enum members."
}
],
"missingRequirements": [
"SUPPORTING_PROOF"
],
"refusalReason": "AGENT_POLICY_DENIED",
"missingFields": [
"PHONE_NUMBER"
]
}
}{
"code": "UNAUTHORIZED",
"reason": "<string>",
"details": {}
}{
"code": "FORBIDDEN",
"reason": "<string>",
"details": {
"refusalReason": "AGENT_POLICY_DENIED",
"permission": "ISSUE_CARDS",
"policyDenialReason": "DAILY_LIMIT_EXCEEDED"
}
}{
"code": "TRANSACTION_NOT_FOUND",
"reason": "<string>",
"details": {}
}{
"code": "GRID_SWITCH_ERROR",
"reason": "<string>",
"details": {}
}Authorizations
API token authentication using format <api token id>:<api client secret>
Path Parameters
System-generated unique payout run identifier
Query Parameters
Only rows in this state State of one row of a payout run.
| State | Description |
|---|---|
PENDING | Accepted, not started. |
PENDING_CLAIM | Addressed to a contact. On a platform's run, held and not paid by the run. On an agent's run, its claimable payout was sent and waits for the recipient to claim it: see claimablePayoutId. |
PROCESSING | Its payment has started. |
COMPLETED | Its transaction completed. |
FAILED | Rejected at validation, refused when paid, or its transaction failed. See failureCode. |
SKIPPED | Not paid, because the run was cancelled or another row was rejected under allOrNothing. On an agent's run, failureCode says why: CANCELLED, APPROVAL_REJECTED or APPROVAL_EXPIRED. |
Available options:
PENDING, PENDING_CLAIM, PROCESSING, COMPLETED, FAILED, SKIPPED Maximum number of results to return (default 100, max 200)
Required range:
1 <= x <= 200Cursor for pagination (returned from previous request)
Response
Successful operation