stripeStripe Split Settlement

Get started with Stripe Split Settlements via Hyperswitch

Overview

Stripe's Split Settlements functionality allows you to create charges and distribute payments between your platform and connected accounts (sellers or service providers). This feature is implemented in Hyperswitch through the SplitPaymentsRequest and supports both payment authorization and refund processingarrow-up-right.

Payment Authorization

In the Payment Createarrow-up-right request, include the Stripe split rule as provided below to dictate fund distribution at the time of transaction.

"split_payments": {
    "stripe_split_payment": {
        "charge_type": "direct",
        "application_fees": 100,
        "transfer_account_id": "{{CONNECTED_ACCOUNT_ID}}"
    }
}

Request Parameters

Parameter

Type

Description

transfer_account_id

string

Identifier of a Connected Accountarrow-up-right created using Stripe's API or Dashboard.

charge_type

enum

1. Directarrow-up-right: Customers transact directly with your connected account. The charge is created on the connected account, and you can choose whether Stripe fees are debited from the connected account or your platform.

2. Destinationarrow-up-right: Customers transact with your platform for products/services provided by your connected account. Stripe fees are debited from your platform account. The funds are then transferred to the destination account.

application_fees

integer

Platform fee amount deducted from the transaction (in minor currency units). The application_fee_amount is transferred to the platform.

Payment Response

The response includes charge details for Split Settlementsarrow-up-right to verify distribution:

JSON

Split Refunds via Hyperswitch

For Refundsarrow-up-right, include the appropriate split refund configuration based on the original charge_type.

1. For "charge_type": "direct"

JSON

2. For "charge_type": "destination"

JSON

Refund Parameters

  • revert_platform_fee (boolean): Indicates whether the application fee should be refunded. If a full charge refund is given, the full fee is refunded; otherwise, it is proportional. Only the application that created the charge can refund it.

  • revert_transfer (boolean): Indicates whether the transfer should be reversed. Reversal is proportional to the amount being refunded (either the entire or partial amount). Only the application that created the charge can reverse the transfer.

Recurring Payments (CIT/MIT)

Customer-Initiated Transaction (CIT)

In a CIT call, passing customer_id is mandatory along with the Stripe Split settlements object. The split settlement metadata is stored in the mandate for future MIT calls.

JSON

Implementation Notes

  • For direct charges, the transfer_account_id must be the connected account ID, not your platform account ID.

  • For destination charges, the transfer_account_id cannot be your platform account ID as Stripe doesn't allow charges to your own account.

  • The system validates that MIT calls match the split settlement configuration from the original CIT call.

chevron-rightResponse of CIT Callhashtag
chevron-rightResponse of MIT Callhashtag

Last updated

Was this helpful?