> For the complete documentation index, see [llms.txt](https://docs.podplay.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.podplay.app/api/payments/payouts.md).

# Payouts

Payouts to coaches, instructors, and partners.

## GET /payouts/{stripeAccountId}

> List all payouts

```json
{"openapi":"3.0.0","info":{"title":"PodPlay Inc API","version":"2.0"},"tags":[{"name":"Payouts","description":"Payouts to coaches, instructors, and partners."}],"servers":[{"url":"/apis/v2","description":"Current Server"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"PayoutCollectionDto":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PayoutDto"}},"_pagination":{"$ref":"#/components/schemas/PaginationDto"},"_links":{"$ref":"#/components/schemas/LinksDto"}},"required":["items","_pagination","_links"]},"PayoutDto":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"stripePayout":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"stripeAccount":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"amount":{"type":"number","readOnly":true,"description":"Payout amount in dollars"},"currency":{"type":"string","readOnly":true,"description":"Three letter currency code (e.g., USD)"},"arrivalDate":{"format":"date-time","type":"string","readOnly":true,"description":"Expected arrival date of the payout"},"status":{"readOnly":true,"description":"Current status of the payout","allOf":[{"$ref":"#/components/schemas/PayoutStatusDto"}]},"method":{"type":"string","readOnly":true,"description":"Payout method (e.g., standard, instant)"},"balanceTransaction":{"readOnly":true,"nullable":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"createdAt":{"format":"date-time","type":"string","readOnly":true},"updatedAt":{"format":"date-time","type":"string","readOnly":true},"reconciliationStatus":{"type":"string","enum":["PENDING","IN_PROGRESS","SUCCESS","SUCCESS_WITH_ISSUES","FAILED","PARTIAL"],"nullable":true,"description":"Reconciliation status of this payout"},"reconciledAt":{"format":"date-time","type":"string","readOnly":true,"nullable":true},"reconciliation":{"oneOf":[{"$ref":"#/components/schemas/ItemRefDto"},{"$ref":"#/components/schemas/PayoutReconciliationSummaryDto"}],"readOnly":true,"nullable":true},"_links":{"type":"object"}},"required":["id","stripePayout","stripeAccount","amount","currency","arrivalDate","status","method","balanceTransaction","createdAt","updatedAt","_links"]},"ItemRefDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the resource"}},"required":["id"]},"PayoutStatusDto":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"value":{"type":"string","readOnly":true},"displayName":{"type":"string","readOnly":true}},"required":["id","value","displayName"]},"PayoutReconciliationSummaryDto":{"type":"object","properties":{"status":{"type":"string","description":"Reconciliation status","enum":["PENDING","IN_PROGRESS","SUCCESS","SUCCESS_WITH_ISSUES","FAILED","PARTIAL"]},"reconciledAt":{"format":"date-time","type":"string","nullable":true,"description":"When the payout was last reconciled"},"issuesSummary":{"description":"Summary of reconciliation issues (if any)","allOf":[{"$ref":"#/components/schemas/ReconciliationIssuesSummaryDto"}]},"unmatchedTransactions":{"description":"Balance transactions that could not be matched to settlements (from last reconciliation run)","type":"array","items":{"$ref":"#/components/schemas/UnmatchedTransactionDto"}}},"required":["status","reconciledAt","issuesSummary"]},"ReconciliationIssuesSummaryDto":{"type":"object","properties":{"unmatchedCount":{"type":"number","description":"Number of unmatched balance transactions"},"netMismatchCount":{"type":"number","description":"Number of net mismatches detected"},"totalNetDifference":{"type":"number","description":"Total net difference across mismatches (in dollars)"},"totalNetReconciled":{"type":"number","description":"Total net reconciled across all processed transactions (in dollars)"},"errorsCount":{"type":"number","description":"Number of processing errors"},"severity":{"type":"string","enum":["low","medium","high","critical"]}},"required":["unmatchedCount","netMismatchCount","totalNetDifference","errorsCount","severity"]},"UnmatchedTransactionDto":{"type":"object","properties":{"transactionId":{"type":"string","description":"Unique identifier for the Stripe balance transaction"},"type":{"type":"string","description":"Type of the balance transaction","enum":["payment","transfer","payment_refund"]},"amount":{"type":"number","description":"Transaction amount in cents"},"currency":{"type":"string","description":"Three-letter ISO currency code"},"created":{"format":"date-time","type":"string","description":"Date when the transaction was created"},"description":{"type":"string","description":"Optional description of the transaction"},"sourceId":{"type":"string","description":"Optional source ID (charge, refund, etc.) that created this transaction"},"reason":{"type":"string","description":"Reason why this transaction could not be matched to a settlement"}},"required":["transactionId","type","amount","currency","created","reason"]},"PaginationDto":{"type":"object","properties":{"page":{"type":"number"},"ipp":{"type":"number"},"count":{"type":"number"},"total":{"type":"number"}},"required":["page","ipp","count","total"]},"LinksDto":{"type":"object","properties":{"self":{"description":"A `LinkDto` to the resource itself","allOf":[{"$ref":"#/components/schemas/LinkDto"}]}},"required":["self"]},"LinkDto":{"type":"object","properties":{"href":{"type":"string","description":"A URL"}},"required":["href"]}}},"paths":{"/payouts/{stripeAccountId}":{"get":{"operationId":"PayoutsController_findAll","summary":"List all payouts","parameters":[{"name":"stripeAccountId","required":true,"in":"path","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by payout status","schema":{"enum":["pending","in_transit","paid","failed","canceled"],"type":"string"}},{"name":"arrivalDateFrom","required":false,"in":"query","description":"Filter by arrival date (from)","schema":{"format":"date-time","type":"string"}},{"name":"arrivalDateTo","required":false,"in":"query","description":"Filter by arrival date (to)","schema":{"format":"date-time","type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number (default: 1)","schema":{"type":"number"}},{"name":"ipp","required":false,"in":"query","description":"Items per page (default: 30)","schema":{"type":"number"}}],"responses":{"200":{"description":"Returns a PayoutCollectionDto","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutCollectionDto"}}}},"403":{"description":"Forbidden"}},"tags":["Payouts"]}}}}
```

## GET /payouts/{stripeAccountId}/{payoutId}

> Get a payout by ID

```json
{"openapi":"3.0.0","info":{"title":"PodPlay Inc API","version":"2.0"},"tags":[{"name":"Payouts","description":"Payouts to coaches, instructors, and partners."}],"servers":[{"url":"/apis/v2","description":"Current Server"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"PayoutDto":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"stripePayout":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"stripeAccount":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"amount":{"type":"number","readOnly":true,"description":"Payout amount in dollars"},"currency":{"type":"string","readOnly":true,"description":"Three letter currency code (e.g., USD)"},"arrivalDate":{"format":"date-time","type":"string","readOnly":true,"description":"Expected arrival date of the payout"},"status":{"readOnly":true,"description":"Current status of the payout","allOf":[{"$ref":"#/components/schemas/PayoutStatusDto"}]},"method":{"type":"string","readOnly":true,"description":"Payout method (e.g., standard, instant)"},"balanceTransaction":{"readOnly":true,"nullable":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"createdAt":{"format":"date-time","type":"string","readOnly":true},"updatedAt":{"format":"date-time","type":"string","readOnly":true},"reconciliationStatus":{"type":"string","enum":["PENDING","IN_PROGRESS","SUCCESS","SUCCESS_WITH_ISSUES","FAILED","PARTIAL"],"nullable":true,"description":"Reconciliation status of this payout"},"reconciledAt":{"format":"date-time","type":"string","readOnly":true,"nullable":true},"reconciliation":{"oneOf":[{"$ref":"#/components/schemas/ItemRefDto"},{"$ref":"#/components/schemas/PayoutReconciliationSummaryDto"}],"readOnly":true,"nullable":true},"_links":{"type":"object"}},"required":["id","stripePayout","stripeAccount","amount","currency","arrivalDate","status","method","balanceTransaction","createdAt","updatedAt","_links"]},"ItemRefDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the resource"}},"required":["id"]},"PayoutStatusDto":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"value":{"type":"string","readOnly":true},"displayName":{"type":"string","readOnly":true}},"required":["id","value","displayName"]},"PayoutReconciliationSummaryDto":{"type":"object","properties":{"status":{"type":"string","description":"Reconciliation status","enum":["PENDING","IN_PROGRESS","SUCCESS","SUCCESS_WITH_ISSUES","FAILED","PARTIAL"]},"reconciledAt":{"format":"date-time","type":"string","nullable":true,"description":"When the payout was last reconciled"},"issuesSummary":{"description":"Summary of reconciliation issues (if any)","allOf":[{"$ref":"#/components/schemas/ReconciliationIssuesSummaryDto"}]},"unmatchedTransactions":{"description":"Balance transactions that could not be matched to settlements (from last reconciliation run)","type":"array","items":{"$ref":"#/components/schemas/UnmatchedTransactionDto"}}},"required":["status","reconciledAt","issuesSummary"]},"ReconciliationIssuesSummaryDto":{"type":"object","properties":{"unmatchedCount":{"type":"number","description":"Number of unmatched balance transactions"},"netMismatchCount":{"type":"number","description":"Number of net mismatches detected"},"totalNetDifference":{"type":"number","description":"Total net difference across mismatches (in dollars)"},"totalNetReconciled":{"type":"number","description":"Total net reconciled across all processed transactions (in dollars)"},"errorsCount":{"type":"number","description":"Number of processing errors"},"severity":{"type":"string","enum":["low","medium","high","critical"]}},"required":["unmatchedCount","netMismatchCount","totalNetDifference","errorsCount","severity"]},"UnmatchedTransactionDto":{"type":"object","properties":{"transactionId":{"type":"string","description":"Unique identifier for the Stripe balance transaction"},"type":{"type":"string","description":"Type of the balance transaction","enum":["payment","transfer","payment_refund"]},"amount":{"type":"number","description":"Transaction amount in cents"},"currency":{"type":"string","description":"Three-letter ISO currency code"},"created":{"format":"date-time","type":"string","description":"Date when the transaction was created"},"description":{"type":"string","description":"Optional description of the transaction"},"sourceId":{"type":"string","description":"Optional source ID (charge, refund, etc.) that created this transaction"},"reason":{"type":"string","description":"Reason why this transaction could not be matched to a settlement"}},"required":["transactionId","type","amount","currency","created","reason"]}}},"paths":{"/payouts/{stripeAccountId}/{payoutId}":{"get":{"operationId":"PayoutsController_findOne","summary":"Get a payout by ID","parameters":[{"name":"stripeAccountId","required":true,"in":"path","schema":{"type":"string"}},{"name":"payoutId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Returns a PayoutDto","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutDto"}}}},"403":{"description":"Forbidden"},"404":{"description":"Payout not found"}},"tags":["Payouts"]}}}}
```

## GET /payouts/{stripeAccountId}/{payoutId}/reconciliation

> Get reconciliation summary for a payout

```json
{"openapi":"3.0.0","info":{"title":"PodPlay Inc API","version":"2.0"},"tags":[{"name":"Payouts","description":"Payouts to coaches, instructors, and partners."}],"servers":[{"url":"/apis/v2","description":"Current Server"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"PayoutReconciliationSummaryDto":{"type":"object","properties":{"status":{"type":"string","description":"Reconciliation status","enum":["PENDING","IN_PROGRESS","SUCCESS","SUCCESS_WITH_ISSUES","FAILED","PARTIAL"]},"reconciledAt":{"format":"date-time","type":"string","nullable":true,"description":"When the payout was last reconciled"},"issuesSummary":{"description":"Summary of reconciliation issues (if any)","allOf":[{"$ref":"#/components/schemas/ReconciliationIssuesSummaryDto"}]},"unmatchedTransactions":{"description":"Balance transactions that could not be matched to settlements (from last reconciliation run)","type":"array","items":{"$ref":"#/components/schemas/UnmatchedTransactionDto"}}},"required":["status","reconciledAt","issuesSummary"]},"ReconciliationIssuesSummaryDto":{"type":"object","properties":{"unmatchedCount":{"type":"number","description":"Number of unmatched balance transactions"},"netMismatchCount":{"type":"number","description":"Number of net mismatches detected"},"totalNetDifference":{"type":"number","description":"Total net difference across mismatches (in dollars)"},"totalNetReconciled":{"type":"number","description":"Total net reconciled across all processed transactions (in dollars)"},"errorsCount":{"type":"number","description":"Number of processing errors"},"severity":{"type":"string","enum":["low","medium","high","critical"]}},"required":["unmatchedCount","netMismatchCount","totalNetDifference","errorsCount","severity"]},"UnmatchedTransactionDto":{"type":"object","properties":{"transactionId":{"type":"string","description":"Unique identifier for the Stripe balance transaction"},"type":{"type":"string","description":"Type of the balance transaction","enum":["payment","transfer","payment_refund"]},"amount":{"type":"number","description":"Transaction amount in cents"},"currency":{"type":"string","description":"Three-letter ISO currency code"},"created":{"format":"date-time","type":"string","description":"Date when the transaction was created"},"description":{"type":"string","description":"Optional description of the transaction"},"sourceId":{"type":"string","description":"Optional source ID (charge, refund, etc.) that created this transaction"},"reason":{"type":"string","description":"Reason why this transaction could not be matched to a settlement"}},"required":["transactionId","type","amount","currency","created","reason"]}}},"paths":{"/payouts/{stripeAccountId}/{payoutId}/reconciliation":{"get":{"operationId":"PayoutsController_getReconciliationSummary","summary":"Get reconciliation summary for a payout","parameters":[{"name":"stripeAccountId","required":true,"in":"path","schema":{"type":"string"}},{"name":"payoutId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutReconciliationSummaryDto"}}}},"403":{"description":"Forbidden"},"404":{"description":"Payout not found"}},"tags":["Payouts"]}}}}
```

## POST /payouts/{stripeAccountId}/{payoutId}/reconciliation

> Reconcile a payout with settlements

```json
{"openapi":"3.0.0","info":{"title":"PodPlay Inc API","version":"2.0"},"tags":[{"name":"Payouts","description":"Payouts to coaches, instructors, and partners."}],"servers":[{"url":"/apis/v2","description":"Current Server"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"PayoutReconciliationDto":{"type":"object","properties":{"payout":{"description":"The payout that was reconciled with Stripe balance transactions","allOf":[{"$ref":"#/components/schemas/PayoutDto"}]},"reconciliationStats":{"description":"Detailed statistics and results from the reconciliation process","allOf":[{"$ref":"#/components/schemas/ReconciliationStatsDto"}]}},"required":["payout","reconciliationStats"]},"PayoutDto":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"stripePayout":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"stripeAccount":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"amount":{"type":"number","readOnly":true,"description":"Payout amount in dollars"},"currency":{"type":"string","readOnly":true,"description":"Three letter currency code (e.g., USD)"},"arrivalDate":{"format":"date-time","type":"string","readOnly":true,"description":"Expected arrival date of the payout"},"status":{"readOnly":true,"description":"Current status of the payout","allOf":[{"$ref":"#/components/schemas/PayoutStatusDto"}]},"method":{"type":"string","readOnly":true,"description":"Payout method (e.g., standard, instant)"},"balanceTransaction":{"readOnly":true,"nullable":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"createdAt":{"format":"date-time","type":"string","readOnly":true},"updatedAt":{"format":"date-time","type":"string","readOnly":true},"reconciliationStatus":{"type":"string","enum":["PENDING","IN_PROGRESS","SUCCESS","SUCCESS_WITH_ISSUES","FAILED","PARTIAL"],"nullable":true,"description":"Reconciliation status of this payout"},"reconciledAt":{"format":"date-time","type":"string","readOnly":true,"nullable":true},"reconciliation":{"oneOf":[{"$ref":"#/components/schemas/ItemRefDto"},{"$ref":"#/components/schemas/PayoutReconciliationSummaryDto"}],"readOnly":true,"nullable":true},"_links":{"type":"object"}},"required":["id","stripePayout","stripeAccount","amount","currency","arrivalDate","status","method","balanceTransaction","createdAt","updatedAt","_links"]},"ItemRefDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the resource"}},"required":["id"]},"PayoutStatusDto":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"value":{"type":"string","readOnly":true},"displayName":{"type":"string","readOnly":true}},"required":["id","value","displayName"]},"PayoutReconciliationSummaryDto":{"type":"object","properties":{"status":{"type":"string","description":"Reconciliation status","enum":["PENDING","IN_PROGRESS","SUCCESS","SUCCESS_WITH_ISSUES","FAILED","PARTIAL"]},"reconciledAt":{"format":"date-time","type":"string","nullable":true,"description":"When the payout was last reconciled"},"issuesSummary":{"description":"Summary of reconciliation issues (if any)","allOf":[{"$ref":"#/components/schemas/ReconciliationIssuesSummaryDto"}]},"unmatchedTransactions":{"description":"Balance transactions that could not be matched to settlements (from last reconciliation run)","type":"array","items":{"$ref":"#/components/schemas/UnmatchedTransactionDto"}}},"required":["status","reconciledAt","issuesSummary"]},"ReconciliationIssuesSummaryDto":{"type":"object","properties":{"unmatchedCount":{"type":"number","description":"Number of unmatched balance transactions"},"netMismatchCount":{"type":"number","description":"Number of net mismatches detected"},"totalNetDifference":{"type":"number","description":"Total net difference across mismatches (in dollars)"},"totalNetReconciled":{"type":"number","description":"Total net reconciled across all processed transactions (in dollars)"},"errorsCount":{"type":"number","description":"Number of processing errors"},"severity":{"type":"string","enum":["low","medium","high","critical"]}},"required":["unmatchedCount","netMismatchCount","totalNetDifference","errorsCount","severity"]},"UnmatchedTransactionDto":{"type":"object","properties":{"transactionId":{"type":"string","description":"Unique identifier for the Stripe balance transaction"},"type":{"type":"string","description":"Type of the balance transaction","enum":["payment","transfer","payment_refund"]},"amount":{"type":"number","description":"Transaction amount in cents"},"currency":{"type":"string","description":"Three-letter ISO currency code"},"created":{"format":"date-time","type":"string","description":"Date when the transaction was created"},"description":{"type":"string","description":"Optional description of the transaction"},"sourceId":{"type":"string","description":"Optional source ID (charge, refund, etc.) that created this transaction"},"reason":{"type":"string","description":"Reason why this transaction could not be matched to a settlement"}},"required":["transactionId","type","amount","currency","created","reason"]},"ReconciliationStatsDto":{"type":"object","properties":{"totalTransactions":{"type":"number","description":"Total number of transactions processed during reconciliation","minimum":0},"chargesProcessed":{"type":"number","description":"Number of charge transactions successfully processed","minimum":0},"refundsProcessed":{"type":"number","description":"Number of refund transactions successfully processed","minimum":0},"transfersProcessed":{"type":"number","description":"Number of transfer transactions successfully processed","minimum":0},"settlementsUpdated":{"type":"number","description":"Number of settlement records that were updated","minimum":0},"errors":{"description":"List of transactions that encountered errors during processing","type":"array","items":{"$ref":"#/components/schemas/ReconciliationErrorDto"}},"unmatchedTransactions":{"description":"Balance transactions that could not be matched to settlements","type":"array","items":{"$ref":"#/components/schemas/UnmatchedTransactionDto"}},"totalGross":{"type":"number","description":"Total gross amount reconciled in cents"},"totalNet":{"type":"number","description":"Total net amount reconciled in cents (after fees)"}},"required":["totalTransactions","chargesProcessed","refundsProcessed","transfersProcessed","settlementsUpdated","errors","unmatchedTransactions","totalGross","totalNet"]},"ReconciliationErrorDto":{"type":"object","properties":{"transactionId":{"type":"string","description":"Transaction ID that caused the error"},"error":{"type":"string","description":"Error message describing what went wrong"}},"required":["transactionId","error"]}}},"paths":{"/payouts/{stripeAccountId}/{payoutId}/reconciliation":{"post":{"operationId":"PayoutsController_createReconciliation","summary":"Reconcile a payout with settlements","parameters":[{"name":"stripeAccountId","required":true,"in":"path","schema":{"type":"string"}},{"name":"payoutId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Reconciliation processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutReconciliationDto"}}}},"403":{"description":"Forbidden"},"404":{"description":"Payout not found"}},"tags":["Payouts"]}}}}
```

## POST /payouts/{stripeAccountId}/sync

> Sync historical payouts from Stripe

```json
{"openapi":"3.0.0","info":{"title":"PodPlay Inc API","version":"2.0"},"tags":[{"name":"Payouts","description":"Payouts to coaches, instructors, and partners."}],"servers":[{"url":"/apis/v2","description":"Current Server"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"PayoutSyncResponseDto":{"type":"object","properties":{"synced":{"type":"number","description":"Number of payouts successfully synced"},"failed":{"type":"number","description":"Number of payouts that failed to sync"},"errors":{"description":"List of errors","type":"array","items":{"$ref":"#/components/schemas/PayoutSyncErrorDto"}},"hasMore":{"type":"boolean","description":"Whether there are more payouts to sync"}},"required":["synced","failed","errors","hasMore"]},"PayoutSyncErrorDto":{"type":"object","properties":{"payout":{"description":"The Stripe payout ID that failed to sync","allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"error":{"type":"string","description":"The error message"}},"required":["payout","error"]},"ItemRefDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the resource"}},"required":["id"]}}},"paths":{"/payouts/{stripeAccountId}/sync":{"post":{"operationId":"PayoutsController_syncPayouts","summary":"Sync historical payouts from Stripe","parameters":[{"name":"stripeAccountId","required":true,"in":"path","schema":{"type":"string"}},{"name":"startDate","required":false,"in":"query","description":"Start date for sync (optional)","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","description":"End date for sync (optional)","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":"Sync completed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutSyncResponseDto"}}}},"403":{"description":"Forbidden"}},"tags":["Payouts"]}}}}
```

## POST /payouts/{stripeAccountId}/{payoutId}/reconciliation/transactions/{transactionId}

> Reconcile a single balance transaction for the payout

```json
{"openapi":"3.0.0","info":{"title":"PodPlay Inc API","version":"2.0"},"tags":[{"name":"Payouts","description":"Payouts to coaches, instructors, and partners."}],"servers":[{"url":"/apis/v2","description":"Current Server"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"PayoutReconciliationDto":{"type":"object","properties":{"payout":{"description":"The payout that was reconciled with Stripe balance transactions","allOf":[{"$ref":"#/components/schemas/PayoutDto"}]},"reconciliationStats":{"description":"Detailed statistics and results from the reconciliation process","allOf":[{"$ref":"#/components/schemas/ReconciliationStatsDto"}]}},"required":["payout","reconciliationStats"]},"PayoutDto":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"stripePayout":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"stripeAccount":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"amount":{"type":"number","readOnly":true,"description":"Payout amount in dollars"},"currency":{"type":"string","readOnly":true,"description":"Three letter currency code (e.g., USD)"},"arrivalDate":{"format":"date-time","type":"string","readOnly":true,"description":"Expected arrival date of the payout"},"status":{"readOnly":true,"description":"Current status of the payout","allOf":[{"$ref":"#/components/schemas/PayoutStatusDto"}]},"method":{"type":"string","readOnly":true,"description":"Payout method (e.g., standard, instant)"},"balanceTransaction":{"readOnly":true,"nullable":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"createdAt":{"format":"date-time","type":"string","readOnly":true},"updatedAt":{"format":"date-time","type":"string","readOnly":true},"reconciliationStatus":{"type":"string","enum":["PENDING","IN_PROGRESS","SUCCESS","SUCCESS_WITH_ISSUES","FAILED","PARTIAL"],"nullable":true,"description":"Reconciliation status of this payout"},"reconciledAt":{"format":"date-time","type":"string","readOnly":true,"nullable":true},"reconciliation":{"oneOf":[{"$ref":"#/components/schemas/ItemRefDto"},{"$ref":"#/components/schemas/PayoutReconciliationSummaryDto"}],"readOnly":true,"nullable":true},"_links":{"type":"object"}},"required":["id","stripePayout","stripeAccount","amount","currency","arrivalDate","status","method","balanceTransaction","createdAt","updatedAt","_links"]},"ItemRefDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the resource"}},"required":["id"]},"PayoutStatusDto":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"value":{"type":"string","readOnly":true},"displayName":{"type":"string","readOnly":true}},"required":["id","value","displayName"]},"PayoutReconciliationSummaryDto":{"type":"object","properties":{"status":{"type":"string","description":"Reconciliation status","enum":["PENDING","IN_PROGRESS","SUCCESS","SUCCESS_WITH_ISSUES","FAILED","PARTIAL"]},"reconciledAt":{"format":"date-time","type":"string","nullable":true,"description":"When the payout was last reconciled"},"issuesSummary":{"description":"Summary of reconciliation issues (if any)","allOf":[{"$ref":"#/components/schemas/ReconciliationIssuesSummaryDto"}]},"unmatchedTransactions":{"description":"Balance transactions that could not be matched to settlements (from last reconciliation run)","type":"array","items":{"$ref":"#/components/schemas/UnmatchedTransactionDto"}}},"required":["status","reconciledAt","issuesSummary"]},"ReconciliationIssuesSummaryDto":{"type":"object","properties":{"unmatchedCount":{"type":"number","description":"Number of unmatched balance transactions"},"netMismatchCount":{"type":"number","description":"Number of net mismatches detected"},"totalNetDifference":{"type":"number","description":"Total net difference across mismatches (in dollars)"},"totalNetReconciled":{"type":"number","description":"Total net reconciled across all processed transactions (in dollars)"},"errorsCount":{"type":"number","description":"Number of processing errors"},"severity":{"type":"string","enum":["low","medium","high","critical"]}},"required":["unmatchedCount","netMismatchCount","totalNetDifference","errorsCount","severity"]},"UnmatchedTransactionDto":{"type":"object","properties":{"transactionId":{"type":"string","description":"Unique identifier for the Stripe balance transaction"},"type":{"type":"string","description":"Type of the balance transaction","enum":["payment","transfer","payment_refund"]},"amount":{"type":"number","description":"Transaction amount in cents"},"currency":{"type":"string","description":"Three-letter ISO currency code"},"created":{"format":"date-time","type":"string","description":"Date when the transaction was created"},"description":{"type":"string","description":"Optional description of the transaction"},"sourceId":{"type":"string","description":"Optional source ID (charge, refund, etc.) that created this transaction"},"reason":{"type":"string","description":"Reason why this transaction could not be matched to a settlement"}},"required":["transactionId","type","amount","currency","created","reason"]},"ReconciliationStatsDto":{"type":"object","properties":{"totalTransactions":{"type":"number","description":"Total number of transactions processed during reconciliation","minimum":0},"chargesProcessed":{"type":"number","description":"Number of charge transactions successfully processed","minimum":0},"refundsProcessed":{"type":"number","description":"Number of refund transactions successfully processed","minimum":0},"transfersProcessed":{"type":"number","description":"Number of transfer transactions successfully processed","minimum":0},"settlementsUpdated":{"type":"number","description":"Number of settlement records that were updated","minimum":0},"errors":{"description":"List of transactions that encountered errors during processing","type":"array","items":{"$ref":"#/components/schemas/ReconciliationErrorDto"}},"unmatchedTransactions":{"description":"Balance transactions that could not be matched to settlements","type":"array","items":{"$ref":"#/components/schemas/UnmatchedTransactionDto"}},"totalGross":{"type":"number","description":"Total gross amount reconciled in cents"},"totalNet":{"type":"number","description":"Total net amount reconciled in cents (after fees)"}},"required":["totalTransactions","chargesProcessed","refundsProcessed","transfersProcessed","settlementsUpdated","errors","unmatchedTransactions","totalGross","totalNet"]},"ReconciliationErrorDto":{"type":"object","properties":{"transactionId":{"type":"string","description":"Transaction ID that caused the error"},"error":{"type":"string","description":"Error message describing what went wrong"}},"required":["transactionId","error"]}}},"paths":{"/payouts/{stripeAccountId}/{payoutId}/reconciliation/transactions/{transactionId}":{"post":{"operationId":"PayoutsController_reconcileSingleTransaction","summary":"Reconcile a single balance transaction for the payout","parameters":[{"name":"stripeAccountId","required":true,"in":"path","schema":{"type":"string"}},{"name":"payoutId","required":true,"in":"path","schema":{"type":"string"}},{"name":"transactionId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Single transaction reconciliation processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutReconciliationDto"}}}},"403":{"description":"Forbidden"},"404":{"description":"Payout or transaction not found"}},"tags":["Payouts"]}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.podplay.app/api/payments/payouts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
