Legacy
Moving money using ReceivedDebit objects Legacy
Learn how external account holders can pull funds from a financial account.
Legacy integration
The v1 version of Treasury for platforms is a legacy integration that doesn’t support many of the features introduced in Treasury for platforms v2. Don’t build a new v1 integration.
Certain processes initiated outside of Treasury for platforms result in money being pulled out of a financial account. This includes:
- Spending money on a card through Stripe Issuing
- Pulling money out of a financial account into an external account using ACH debits
- Pulling money out of a platform’s financial account into that platform’s Stripe Payments balance using top-ups
These money movements result in the creation of ReceivedDebit objects. You don’t create ReceivedDebits directly, rather you observe ReceivedDebit object creation with webhooks. If there are insufficient funds in the account, the ReceivedDebit fails in most cases.
Retrieve a ReceivedDebit
Use GET /the relevant part of the product/{{the related setting}} to retrieve the ReceivedDebit with the associated ID.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
If successful, the response returns the ReceivedDebit object with the associated ID. Some of the parameters in the response have additional details that are only returned when you add them as values to the expand[] parameter. The fields that you can expand have an “Expandable” comment in the following response example. See Expanding Responses to learn more about expanding object responses.
Select a language
JSON (commented)
JSON
No results
{
"id": "{{RECEIVED_DEBIT_ID}}",
"object": "received_debit",
"livemode": Boolean,
"created": Timestamp,
// The FinancialAccount funds have been pulled from
"financial_account": "{{FINANCIAL_ACCOUNT_ID}}", // Expandable
"amount": 1000,
"currency": "usd",
"description": "Testing",
List ReceivedDebits
Use GET /the relevant part of the product to retrieve all ReceivedDebits for a financial account. You must specify a financial account ID for the financial_account parameter. You can filter the results by the standard list parameters or by status.
{
// Standard list parameters
"limit", "starting_after", "ending_before",
// Filter by FinancialAccount (Required)
"financial_account": "{{FINANCIAL_ACCOUNT_ID}}",
// Filter by status
"status": "succeeded" | "failed"
}
The following request retrieves the last successful ReceivedDebit object that occurred before the provided ReceivedDebit for the financial account identified.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Test ReceivedDebits
Treasury for platforms provides test endpoints for ReceivedDebit objects. In testing environments, use POST /the relevant part of the product to simulate ReceivedDebit creation. You can’t create ReceivedDebit objects in live mode, so using this endpoint enables you to test the flow of funds when a third party initiates creation of a ReceivedDebit. Set financial_account to the ID of the financial account to send money from. Set network to ach and optionally provide the ABA financial address details for the source_details.aba parameter. As in live mode, test ReceivedDebits fail if there are insufficient funds available.
ReceivedDebit webhooks
Stripe emits the following ReceivedDebit events to your webhook endpoint:
- treasury. received _ debit. created on ReceivedDebit creation.
