Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
Start an integration
Products
Global Payouts
Capital
Issuing cards
    Overview
    How Issuing works
    Global availability
    Manage fraud
    Cards
    Choose your card type
    Virtual cards
    Issue virtual cards
    Physical cards
    Manage cards
    Digital wallets
    Replacement cards
    Card programs
    Program management
    Customize your card program
    Add funds to your card program
    Credit Consumer Issuing
    Controls
    Spending controls
    Advanced fraud tools
    3DS
    Fraud challenges
    Real-time authorizations
    PIN management
    Issuing Elements
    Token Management
    Funding
    Balance
    Postfund your integration with Stripe
    Postfund your integration with Dynamic Reserves
    Purchases
    Authorizations
    Transactions
    Disputes
    Testing
    Merchant categories
    ATM Usage
    Issuing with Connect
    Set up an Issuing and Connect integration
    Update terms of service acceptance
    Connect funding
    Connected accounts, cardholders, and cards
    Embed card management UI
    Credit
    Overview
    Set up connected accounts
    Manage credit terms
    Report other credit decisions and manage AANs
    Report required regulatory data for credit decisions
    Manage account obligations
      Obligation amounts, transactions, adjustments
      Obligation payments
      Available credit and flow of funds
    Test credit integration
    Additional information
    Choose a cardholder type
    Customer support for Issuing and Treasury
    Issuing watchlist
    Marketing guidance (Europe/UK)
    Product and marketing compliance guidance (US)
Treasury
Manage money
HomeMoney managementIssuing cardsManage account obligations

Obligation paymentsPrivate preview

Make payments to your FundingObligation.

Copy page

Pay off an account’s 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_oustanding 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
curl https://api.stripe.com/v1/issuing/funding_obligations/ifo_123/pay \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Version: 2025-04-30.basil; issuing_credit_beta=v1" \ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
" \
-d amount=50000

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
curl https://api.stripe.com/v1/issuing/funding_obligations/ifo_123/pay \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Version: 2025-04-30.basil; issuing_credit_beta=v1" \ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
" \
-d amount_paid=45000

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
curl https://api.stripe.com/v1/issuing/funding_obligations/ifo_123/ \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Version: 2025-04-30.basil; issuing_credit_beta=v1" \ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
" \
-d "metadata[repayment_id]"=obp_1NUy3y2eZvKYlo2C15gktUET

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.

Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc