Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

4466 articles

Obligation payments


Private preview

Obligation payments Private preview

Make payments to your FundingObligation.

While the FundingObligation shows you how a connected account owes at the end of the credit period, you’re still responsible for collecting repayment from the connected account. Use Stripe’s Payment Intents API to debit the connected account’s external bank account (or accept a card payment using Stripe Checkout or Stripe Invoicing).

Make sure you record any payments received from the connected account in the account’s FundingObligation to accurately reflect their available credit. Stripe determines whether to approve an authorization based on an account’s available credit. Stripe might report past-due and charged-off FundingObligations to bank partners.

Collect repayment

You can choose the best mechanism for collecting repayment from your connected account, but we recommend that you use Stripe’s Payments APIs to keep all records within Stripe for better reconciliation of each user’s card spend and repayment. After successfully collecting payment, make sure you update the FundingObligation to reflect this. This step doesn’t happen automatically when you use Stripe’s Payments APIs. Stripe determines past_due based on the days_until_due parameter set in the CreditPolicy. Stripe determines charged_off based on your written credit or collections policy that defines the number of days after a past_due obligation is charged_off.

Record repayments in the FundingObligation

After collecting payment from a connected account, update their FundingObligation to reflect the repayment. FundingObligations states of unpaid, past_due, or charged_off impact the amount of funds that are still available for the connected account to spend. For example, assume that Barbell has a 1,000 USD credit limit and they buy a treadmill for 900 USD. Barbell’s FundingObligation has 900 USD as the amount_total owed, and they have 100 USD of available credit left to spend until they start paying off what’s owed.

Let’s say Barbell pays back 500 USD to Gymbox at the end of the credit period. Gymbox must update Barbell’s FundingObligation to reflect the repayment. This update decreases the amount_outstanding on the FundingObligation to 400 USD and increases Barbell’s available credit from 100 to 600 USD.

Let’s say Barbell’s credit terms specify a 90-day period post due_at for the amount_outstanding on the FundingObligation to be charged off. On past_due over 90 days, Barbell’s amount_outstanding of 400 USD is charged off. 30 days after charging off the amount_outstanding on the FundingObligation, Gymbox receives a 100 USD payment from Barbell. Gymbox needs to record this repayment with the /pay endpoint to reduce the charged off amount_outstanding on the FundingObligation. This increases the available credit from 600 to 700 USD. If Gymbox closes Barbell’s credit line and reports the reason prior to collecting in full, the charged off amount_outstanding persists and subsequently recovered amounts can no longer be applied to reduce the amount_outstanding.

Command Line

cURL

Example response

{
 "id": "ifo_123",
 "status": "unpaid",
 "amount_total": 90000,
 "amount_outstanding": 40000,
 "amount_paid": 50000,
 "owed_to": "acct_123",
 // other fields
}

This API call increases the amount_paid and decreases the amount_outstanding on the FundingObligation. When amount_paid=amount_total on a FundingObligation, Stripe updates the status of the obligation to paid, regardless of the previous state being unpaid, past_due, or charged_off. These updates trigger an issuing_funding_obligation.updated event.

We recommend that you automate both the process of collecting repayment and the process of updating the FundingObligation, and combine them into sequential calls. That way, immediately after you successfully collect repayment, you update the connected account’s FundingObligation to inform Stripe to increase their available credit.

Update the paid amount on the FundingObligation

If you make an erroneous repayment or want to update the connected account’s amount_paid for another reason, you can do it with the /pay endpoint using the amount_paid field.

Command Line

cURL

Example response

{
 "id": "ifo_789",
 "status": "unpaid",
 "amount_total": 90000,
 "amount_outstanding": 45000,
 "amount_paid": 45000,
 "owed_to": "acct_123",
 // other fields
}

This sends an issuing_funding_obligation.updated event.

Update metadata on FundingObligations

You can update the metadata on a FundingObligation to associate additional data with a FundingObligation. For example, you might want to record the OutboundPayment ID that corresponds to a repayment.

Command Line

cURL

Example response

{
 "id": "ifo_789",
 "status": "unpaid",
 "amount_total": 90000,
 "metadata": {
 "repayment_id": "obp_1NUy3y2eZvKYlo2C15gktUET"
 },
 "owed_to": "acct_123",
 // other fields
}

This sends an issuing_funding_obligation.updated event.

Last verified 2026-09-24

Is this helpful?