admin_terminate
Operator admin-terminate of a stuck pending ACH attempt (justification required).
admin_terminate › Request Body
disbursement_attempt_idThe pending ACH attempt to terminate.
justification\S · requiredOperator justification (required; must not be blank/whitespace).
admin_terminate › Responses
Outbound disbursement attempt definition schema (BC-22436). One attempt to pay a source obligation (Commission Payment / Return Premium / Claim Payment) over a rail (ach / check / manual).
successIndicates if the request was successful
Any messages or errors related to the request
aggregates
Per-state counts + amount sums: {by_state: {<state>: {count, amount}}}.
Code
aggregates › Request Body
Filter by transaction type.
Filter by rail.
Filter by integration instance.
added_from^\d{4}-(0[1-9]|1[0-2…Inclusive dateAdded lower bound (ISO date/datetime); mirrors the list grid so a date-filtered view gets a matching aggregate card.
added_to^\d{4}-(0[1-9]|1[0-2…Inclusive dateAdded upper bound (date-only widened to end-of-day).
aggregates › Responses
successIndicates if the request was successful
Any messages or errors related to the request
attach_regulatory_receipt
Store the regulatory receipt IS built for an attempt (BC-25447).
Code
attach_regulatory_receipt › Request Body
api_keyAPI key for the internal-integrations caller (consumed by the gateway for authentication).
integration_instance_external_idExternal ID of the caller's ACH_ISSUANCE integration instance.
disbursement_attempt_idThe disbursement_attempts row the receipt belongs to.
receipt_htmlThe finished receipt as HTML, built by the integration. Sanitized to structural markup before rendering: no styles, scripts, images or external references survive.
receipt_titleFilename to store the rendered PDF under, e.g. 'Regulatory Receipt - trxn_123.pdf'.
captured_for_stateOptional. The attempt state the receipt reports. If the attempt is no longer in that state, the receipt is dropped: data.dropped is true and a warning names the current state, so a late retry cannot replace a newer receipt. Send it only after that transition has been reported and accepted: the match is exact, so a receipt sent ahead of its own transition is dropped too. Omitted, the latest send wins and the receipt is stored as of unknown state, which the nightly receipt audit reports as stale until a receipt that names its state replaces it.
attach_regulatory_receipt › Responses
successFalse for a forbidden/malformed request; true when BC accepted the request. A dropped receipt (stale, or sent ahead of its own transition) is also success true, with data.dropped true.
messagesError messages when success is false; a {"warning": [...]} object when a receipt was dropped.
The outcome when success is true; an empty array (standard_response default) when success is false.
bank_disclosure
The bank disclosure rendered at the foot of the page: {html: "..."}.
Code
bank_disclosure › Request Body
bank_disclosure › Responses
successIndicates if the request was successful
Any messages or errors related to the request
cancel
Operator cancel of an in_transit ACH attempt (justification required).
cancel › Request Body
disbursement_attempt_idThe in_transit ACH attempt to cancel.
justification\S · requiredOperator justification (required; must not be blank/whitespace).
cancel › Responses
Outbound disbursement attempt definition schema (BC-22436). One attempt to pay a source obligation (Commission Payment / Return Premium / Claim Payment) over a rail (ach / check / manual).
successIndicates if the request was successful
Any messages or errors related to the request
check_vendor
Reconcile a stuck pending ACH attempt against the vendor: if the vendor holds a reference -> advance to in_transit (writing the ref in the CAS); else stay pending. Idempotent.
Code
check_vendor › Request Body
disbursement_attempt_idThe pending ACH attempt to reconcile.
check_vendor › Responses
Outbound disbursement attempt definition schema (BC-22436). One attempt to pay a source obligation (Commission Payment / Return Premium / Claim Payment) over a rail (ach / check / manual).
successIndicates if the request was successful
Any messages or errors related to the request
disburse
Send a selection of parked (ready_to_pay) attempts (BC-25734).
Code
disburse › Request Body
disbursement_attempt_idsAttempt ids to send. Every row must currently be ready_to_pay; the selection is balance-checked on its total, all or nothing, and refused as a whole if any id is unknown or no longer ready to pay.
disburse › Responses
successIndicates if the request was successful
Any messages or errors related to the request
get_detail
Full serialized attempt plus folded single-row source enrichment.
Code
get_detail › Request Body
disbursement_attempt_idThe disbursement attempt id.
get_detail › Responses
Full attempt (with folded enrichment) when the row exists. Absent row -> the standard-response envelope emits an empty array ([]) for data; null is also tolerated.
successIndicates if the request was successful
Any messages or errors related to the request
issue
Issue (or re-issue / retry) a batch of Commission Payments via ACH.
Code
issue › Request Body
integration_instance_idActive ACH_ISSUANCE instance id.
Commission Payment issuance items.
issue › Responses
successIndicates if the request was successful
Any messages or errors related to the request
list_disbursements
All-attempts grid (lean rows only, no source fan-out).
Code
list_disbursements › Request Body
Route to by-type when set.
Filter by disbursement state.
States to leave OUT of the result -- the grid's "Hide paid payments" toggle. Composes with state rather than overriding it.
Filter by rail.
Filter by integration instance.
added_from^\d{4}-(0[1-9]|1[0-2…Inclusive dateAdded lower bound (ISO date/datetime).
added_to^\d{4}-(0[1-9]|1[0-2…Inclusive dateAdded upper bound (date-only widened to end-of-day).
page1-based page number (>= 1).
page_sizePage size (1..200).
list_disbursements › Responses
successIndicates if the request was successful
Any messages or errors related to the request
mark_failed
Transition an attempt to failed.
Code
mark_failed › Request Body
api_keyAPI key for the internal-integrations caller (consumed by the gateway for authentication).
integration_instance_external_idExternal ID of the caller's ACH_ISSUANCE integration instance.
disbursement_attempt_idThe disbursement_attempts row to transition.
failure_originWhy the disbursement failed. vendor_rejected / recipient_returned / cancel_acknowledged drive the terminal transition. admin_terminate is a RECOGNIZED but operator-only value: the endpoint accepts it and returns a policy rejection (HTTP 200, success=true, data.accepted=false, rejection_reason=incompatible_current_state) rather than treating it as malformed input. Any value outside this enum is a malformed request (success=false).
failure_codeMachine-readable failure code (e.g. an ACH/vendor code).
failure_reasonHuman-readable failure detail.
ach_return_codeOptional NACHA ACH return code (e.g. R01).
receipt_htmlOptional. The regulatory receipt the vendor issued for the payment's terminal outcome (failed, canceled or returned), as an HTML document. BriteCore sanitizes it, renders it to PDF off the request path and makes it the attempt's only receipt, replacing the one stored for the previous outcome. The renderer is WeasyPrint 0.42, so the document must lay out with tables and CSS of that era, not flexbox or grid; external images and stylesheets are refused rather than fetched. The transition does not depend on it: omit it and the attempt transitions with no receipt captured.
receipt_titleOptional. File name the rendered PDF is stored under, e.g. "Regulatory Receipt - obp_1ABC.pdf". Used verbatim, so it has to carry the ".pdf" suffix itself. Sent with receipt_html -- either one without the other is ignored.
mark_failed › Responses
successFalse for a forbidden/malformed request; true when BC processed the call.
messagesError/warning messages when success is false.
The serialized LifecycleTransitionResult object when success is true; an empty array (standard_response default) when success is false.
mark_in_transit
Transition an attempt pending -> in_transit (IS reports the vendor
accepted the submission). Body adds vendor_reference_id (the IS/vendor
handle for the operation, max 255) to the common envelope, plus the
optional receipt_html / receipt_title the regulatory receipt is
captured from.
mark_in_transit › Request Body
api_keyAPI key for the internal-integrations caller (consumed by the gateway for authentication).
integration_instance_external_idExternal ID of the caller's ACH_ISSUANCE integration instance.
disbursement_attempt_idThe disbursement_attempts row to transition.
vendor_reference_idThe IS/vendor handle for the operation (set-once on the row). Normally supplied by the IS, but it may be omitted/blank when the row already has a previously snapshotted vendor reference (e.g. recovered via admin_terminate's get_vendor_reference) -- in that case the existing value carries forward. It is only rejected (missing_vendor_reference) when both the incoming value and the row's stored value are blank.
receipt_htmlOptional. The regulatory receipt the vendor issued for the payment it has just created, as an HTML document. This is the primary capture: Stripe requires the receipt while the payment is still processing, before it is submitted to ACH. BriteCore sanitizes it, renders it to PDF off the request path and makes it the attempt's only receipt, replacing the one stored for the previous outcome. The renderer is WeasyPrint 0.42, so the document must lay out with tables and CSS of that era, not flexbox or grid; external images and stylesheets are refused rather than fetched. The transition does not depend on it: omit it and the attempt transitions with no receipt captured.
receipt_titleOptional. File name the rendered PDF is stored under, e.g. "Regulatory Receipt - obp_1ABC.pdf". Used verbatim, so it has to carry the ".pdf" suffix itself. Sent with receipt_html -- either one without the other is ignored.
mark_in_transit › Responses
successFalse for a forbidden/malformed request; true when BC processed the call.
messagesError/warning messages when success is false.
The serialized LifecycleTransitionResult object when success is true; an empty array (standard_response default) when success is false.
mark_settled
Transition an attempt in_transit -> settled (IS reports the vendor
settled the funds). Body adds the optional receipt_html /
receipt_title the regulatory receipt is captured from.
mark_settled › Request Body
api_keyAPI key for the internal-integrations caller (consumed by the gateway for authentication).
integration_instance_external_idExternal ID of the caller's ACH_ISSUANCE integration instance.
disbursement_attempt_idThe disbursement_attempts row to transition.
receipt_htmlOptional. The regulatory receipt the vendor issued for the settled payment, as an HTML document. BriteCore sanitizes it, renders it to PDF off the request path and makes it the attempt's only receipt, replacing the one stored for the previous outcome. The renderer is WeasyPrint 0.42, so the document must lay out with tables and CSS of that era, not flexbox or grid; external images and stylesheets are refused rather than fetched. The transition does not depend on it: omit it and the attempt transitions with no receipt captured.
receipt_titleOptional. File name the rendered PDF is stored under, e.g. "Regulatory Receipt - obp_1ABC.pdf". Used verbatim, so it has to carry the ".pdf" suffix itself. Sent with receipt_html -- either one without the other is ignored.
mark_settled › Responses
successFalse for a forbidden/malformed request; true when BC processed the call.
messagesError/warning messages when success is false.
The serialized LifecycleTransitionResult object when success is true; an empty array (standard_response default) when success is false.
needs_attention
Latest failed-with-no-live-successor attempts, deduped per obligation.
Code
needs_attention › Request Body
Filter by transaction type.
Filter by rail (mirrors the list grid). No state filter -- the surface is inherently the terminal failed set.
Filter by integration instance.
added_from^\d{4}-(0[1-9]|1[0-2…Inclusive dateAdded lower bound (ISO date/datetime); mirrors the list grid so a date-filtered view gets a matching worklist total.
added_to^\d{4}-(0[1-9]|1[0-2…Inclusive dateAdded upper bound (date-only widened to end-of-day).
page1-based page number (>= 1).
page_sizePage size (1..200).
needs_attention › Responses
successIndicates if the request was successful
Any messages or errors related to the request
obligation_history
All attempts for one obligation, newest first: {items:[...]}.
Code
obligation_history › Request Body
transaction_typeObligation transaction type.
transaction_idObligation transaction id.
obligation_history › Responses
successIndicates if the request was successful
Any messages or errors related to the request
record_manual
Record a disbursement made OUTSIDE BriteCore (rail='manual'), created directly settled. Justification required; operator resolved server-side.
record_manual › Request Body
transaction_typeObligation transaction type.
transaction_idObligation transaction id.
amountAmount (USD, 2 decimal places), between 0.01 and 90071992547409.91 (DISBURSEMENT_AMOUNT_MIN..DISBURSEMENT_AMOUNT_MAX). For a Commission Payment the server DERIVES the amount from the commission source and ignores this value; it is authoritative only for non-commission obligations. minimum/maximum bind when a JSON number is sent; a string form is coerced and range-checked server-side.
direct_payee_contact_idPayee contact id.
justification\S · requiredOperator justification (required; must not be blank/whitespace).
check_numberOptional check number.
external_referenceOptional external reference (max 255 chars); persisted into the encrypted method_details audit blob.
record_manual › Responses
Outbound disbursement attempt definition schema (BC-22436). One attempt to pay a source obligation (Commission Payment / Return Premium / Claim Payment) over a rail (ach / check / manual).
successIndicates if the request was successful
Any messages or errors related to the request
source_enrichment
Batched per-attempt source enrichment (payee name, live-successor flag, commission source block).
Code
source_enrichment › Request Body
disbursement_attempt_idsAttempt ids to enrich (1 to 200).
source_enrichment › Responses
SPARSE map of disbursement_attempt_id -> enrichment. Keyed only by ids that resolve to an existing attempt: a well-formed id with no row (deleted / stale) is OMITTED, not an error and not an empty-value key. A present key is a found attempt (value is always a full enrichment object); an absent key is an unknown/stale id.
successIndicates if the request was successful
Any messages or errors related to the request
unissued_obligations
Commission obligations that are claimable but have NO disbursement
attempt yet, each tagged ready_to_send or awaiting_funds
(BC-24980, TXN T5).
Code
unissued_obligations › Request Body
Optional. Only Commission Payment is accepted in this build (the one obligation type with an engine-read queue); any other value is a validation error, not an empty page.
page1-based page number (>= 1).
page_sizePage size (1..200).
unissued_obligations › Responses
successIndicates if the request was successful
Any messages or errors related to the request
update_exported_check_details
Write check number, check date, and/or cleared date onto already-exported outbound checks (return premium, claim payment, or commission payment).
Code
update_exported_check_details › Request Body
Batch of partial updates for already-exported outbound checks. Mixed payment types are allowed. Duplicate ids are rejected. Omitted fields are left alone; explicit null is treated as omit. Replacing an already-set check_number, check_date, or cleared_date requires force_update on that record. Voided, canceled, rejected, or transferred return premiums, voided claim payments, claim recoveries, untyped claims, and electronic, net, or negative commissions are rejected.
update_exported_check_details › Responses
On success, the updated/failed payload. Request-level errors use the standard v2 envelope with an empty array.
successIndicates if the request was successful
Any messages or errors related to the request
