Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

5282 articles

Moving money using ReceivedCredit objects


Legacy

Moving money using ReceivedCredit objects Legacy

Learn how to move money into a financial account from another financial account or bank 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.

When funds move into a financial account, Stripe creates a corresponding ReceivedCredit object on the account. A ReceivedCredit contains information on how the funds were sent and from what account, where possible. You can send funds to a financial account with the account’s routing and account numbers for ach, us_domestic_wire, and rtp, or the financial account ID for transfers between financial accounts.

When the origin of the funds is another financial account, the ReceivedCredit contains a linked_flows.source_flow reference to the originating money movement. In this case, the source OutboundPayment has stripe as its network value.

Retrieve a ReceivedCredit

Use GET /the relevant part of the product/{{the related setting}} to retrieve the ReceivedCredit with the specified ID.

The following request retrieves the ReceivedCredit with the specified ID. The response for this request includes expanded Transaction object details.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

If successful, the response provides the requested ReceivedCredit object. Some of the parameters in the response have additional details that are only returned when you add them as values to the expand[] parameter of your request. 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_CREDIT_ID}}",
 "object": "received_credit",
 "livemode": true | false,
 "created": "{{Timestamp}}",
 // The FinancialAccount that received the funds
 "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", // Expandable
 "amount": 1000,
 "currency": "usd",
 // The description of this movement sent by the originator

List ReceivedCredits

Use GET /the relevant part of the product to retrieve all of the ReceivedCredits for the financial account with the ID of the required financial_account parameter. You can filter the list with the standard list parameters, by status, or by linked_flows.source_flow_type.

{
 // Standard list parameters
 "limit", "starting_after", "ending_before",
 // Filter by FinancialAccount (required)
 "financial_account": "{{FINANCIAL_ACCOUNT_ID}}",
 // Filter by status
 "status": "succeeded" | "failed",
 // Filter by `source_flow_type`
 "linked_flows.source_flow_type": nil | "payout" | "outbound_payment"
}

The following request retrieves the ReceivedCredits that have a status of failed for the specified financial account.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

If successful, the response includes the ReceivedCredit objects that match the criteria specified in the request.

Real-Time Payments credits

A ReceivedCredit with a network of rtp represents funds received over Real-Time Payments (RTP), the instant payment network operated by The Clearing House. Senders address RTP transfers to the same routing and account numbers used for ACH, so any financial account with an active financial_addresses.aba feature can receive them.

RTP credits differ from ACH and wire credits in two ways:

  • Funds are available immediately, at any time. RTP settles within seconds and operates 24 hours a day, including weekends and bank holidays. There’s no cutoff time and no business-day delay, so the balance increase and the corresponding Transaction post as soon as Stripe receives the transfer.
  • RTP credits are final. You can’t reverse them. RTP ReceivedCredits always have reversal _ details. restricted _ reason set to network _ restricted and reversal _ details. deadline set to null , and attempting to create a CreditReversal for one returns an error. Because you can’t return the funds, treat an RTP credit as settled the moment it arrives.

Test ReceivedCredits

Use POST /the relevant part of the product to simulate receiving funds in a financial account. To simulate a bank transfer from an account outside of Stripe to your financial account, set initiating_payment_method_details to the values of the external bank account, and set network to ach, us_domestic_wire, or rtp.

The following request creates a test ReceivedCredit from an external bank account using an OutboundPayment between two financial accounts on the same platform.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

If successful, the response returns a ReceivedCredit object. The following is an example of a response for a bank transfer.

{
 "financial_account": "{{FINANCIAL_ACCOUNT_ID}}",
 "network": "ach",
 "amount": "1234",
 "currency": "usd",
 "description": "Test",
 "source_details": {
 "type": "aba",
 "aba": {
 "country": "US",
 "routing_number": "12341234",
 "account_number": "0123456789",
 "account_holder_name": "Jenny Rosen"
 }
 }
}

ReceivedCredit webhooks

Stripe emits the following ReceivedCredit events to your webhook endpoint:

  • treasury. received _ credit. created on ReceivedCredit creation.
  • treasury. received _ credit. {{new _ status}} when an ReceivedCredit changes status. Available status value options include:
  • treasury. received _ credit. succeeded
  • treasury. received _ credit. failed
Last verified 2026-09-24

Is this helpful?