Overview#

By default, Stripe transfers appear in a connected account's dashboard as simple monetary amounts with no additional context. The Stripe Metadata feature solves this by attaching store-order information directly to each transfer object in Stripe — whether the order originated on WooCommerce or FluentCart. This gives vendors clear visibility into why they received a payment and which order it relates to.

When enabled, each transfer created by Split Pay will include metadata fields that your vendors can view in their Stripe Dashboard under the transfer details.

Stripe allows up to 20 metadata key-value pairs per transfer, with keys up to 40 characters and values up to 500 characters. Split Pay stays well within these limits.

Enabling Stripe metadata#

To enable metadata on transfers:

Navigate to Split Pay → Main in your WordPress admin (top-level menu, added in 3.7.0).

Scroll to the Stripe Metadata section.

Check the Include order metadata in transfers checkbox.

Include Order Details in Stripe Transfer Metadata
Include Order Details in Stripe Transfer Metadata

Save your settings.

Once enabled, all future transfers will automatically include the metadata fields described below.

What metadata is included#

Each transfer will contain the following metadata fields:

Metadata Key Description Example Value
order_id The store order number (WooCommerce or FluentCart) 1042
order_total The full order total 149.99
transfer_amount The amount sent to this connected account 74.99
currency The three-letter currency code usd
items Product names and quantities from the order Widget Pro x2, Gadget x1
store_url Your store URL (the WordPress site URL of the storefront, regardless of platform) https://yourstore.com

Viewing metadata in Stripe#

Vendors (connected accounts) can view the attached metadata in their Stripe Dashboard:

Log in to Stripe Dashboard.

Navigate to Balance → Transactions or search for the specific transfer.

Click on a transfer to view its details.

Scroll down to the Metadata section to see the order information.

The metadata is also accessible via the Stripe API, making it easy to build custom reporting or reconciliation tools on top of your transfer data.

Common use cases#

  • Vendor reconciliation — Vendors can match each transfer to a specific order without needing access to your store admin (WooCommerce or FluentCart).
  • Accounting & bookkeeping — Export transfer data from Stripe (including metadata) for bookkeeping and tax reporting.
  • Dispute resolution — Quickly identify which order a transfer relates to when resolving payment disputes.
  • Custom reporting — Use the Stripe API to pull transfer metadata and generate custom reports for your marketplace.

Metadata is only attached to new transfers created after the feature is enabled. Existing transfers will not be retroactively updated.

Developer notes#

If you need to customize the metadata fields attached to transfers, use the spp_transfer_metadata filter. As of v3.7.0+, the filter is platform-agnostic: it receives the metadata array, a platform-neutral $order object (a WC_Order on Stack A, a FluentCart order on Stack B), and an $integration slug ('woocommerce' or 'fluentcart') so you can branch when needed.

add_filter( 'spp_transfer_metadata', function( $metadata, $order, $integration ) {
    if ( 'woocommerce' === $integration ) {
        $metadata['custom_field'] = $order->get_meta( '_my_custom_field' );
    } elseif ( 'fluentcart' === $integration ) {
        // Use FluentCart's order accessor:
        $metadata['custom_field'] = (string) ( $order->get_meta( '_my_custom_field' ) ?? '' );
    }
    return $metadata;
}, 10, 3 );

If your existing callbacks were registered with 10, 2 they continue to work — PHP discards the extra $integration argument. New callbacks should declare 10, 3 to receive the integration slug.