eduardweb.
Payments (Stripe, PayPal, Netopia)Avansat#woocommerce#stripe-connect#split-payments#marketplaces

Split payments în WooCommerce cu Stripe Connect: Cum eviți coșmarul legislativ și tehnic

De Corina Dobre, 11 iul. 2026 · 12 vizualizări · 2 like-uri

Postat 11 iul. 2026
php
add_filter('wc_stripe_payment_intent_args', 'custom_stripe_split_payment_args', 10, 2);

function custom_stripe_split_payment_args($args, $order) {
    // Extragem vendorul asociat produselor din comandă (exemplu simplificat)
    $vendor_id = get_post_meta($order->get_id(), '_vendor_id', true);
    $stripe_account_id = get_user_meta($vendor_id, '_stripe_connect_account_id', true);

    if (!$stripe_account_id) {
        return $args; // Dacă vendorul nu are contul conectat, plata merge integral pe platformă
    }

    $order_total = $order->get_total();
    
    // Calculăm comisionul platformei noastre: 10%
    $platform_commission = $order_total * 0.10; 
    
    // Stripe folosește valori în cenți/bani (înmulțim cu 100)
    $application_fee_cents = round($platform_commission * 100);

    // Setăm parametrii pentru Destination Charge
    $args['application_fee_amount'] = $application_fee_cents;
    $args['transfer_data'] = [
        'destination' => $stripe_account_id,
    ];

    return $args;
}

Am implementat acum un an split payments pentru un marketplace nișat pe WooCommerce. Aveam în jur de 140 de vendori activi și un volum de vreo 45.000 de euro pe lună. Clientul începuse inițial cu varianta clasică românească: încasăm tot într-un singur cont Stripe standard, iar la sfârșitul lunii facem manual transferuri bancare către vânzători minus comisionul nostru de 10%.

O nebunie curată. Pe lângă coșmarul contabil de a emite sute de facturi de comision, ne-am lovit rapid de legislația europeană (PSD2). Dacă încasezi tu toți banii și îi distribui ulterior, din punct de vedere legal ești procesator de plăți neautorizat. Am fost obligați să trecem rapid la Stripe Connect.

De ce Stripe Connect și ce variantă alegi?

Stripe Connect îți permite să împarți banii instantaneu între platforma ta (comisionul de administrare) și vendor (banii pe produs). Ai trei mari opțiuni: Standard, Express și Custom.

Pentru WooCommerce, eu recomand aproape mereu Stripe Connect Express.

  • Standard e nasol pentru că vendorii trebuie să aibă deja un cont Stripe complet configurat și procesul de onboarding e greoi.
  • Custom îți dă control total pe UI, dar te rupe pe partea de conformitate și UX (trebuie să construiești tu toate formularele de KYC/verificare de identitate).
  • Express e calea de mijloc ideală. Stripe se ocupă de onboarding, colectează documentele de identitate (KYC) pe serverele lor, iar tu doar îi trimiți acolo printr-un link securizat.

Trade-off-ul sincer: Ce merge prost?

Stripe Connect îți rezolvă problemele legale, dar vine cu niște costuri destul de mari.

În primul rând, comisioanele. Pe lângă taxa standard de procesare Stripe, plătești o taxă lunară pentru fiecare cont Express activ (în jur de 2 euro/lună) plus o taxă la fiecare payout (în jur de 1.5 - 2 euro). Dacă vinzi produse ieftine, cu marjă mică, comisioanele astea îți mănâncă tot profitul.

În al doilea rând, debugging-ul în modul de test (Sandbox) pentru Express accounts este groaznic. Simularea validării documentelor de identitate pentru conturi din România dă rateuri frecvente în sandbox, așa că te vei trezi scriind mult cod pe bază de presupuneri până când testezi direct în producție cu sume reale de 1 leu.

Cum legi WooCommerce de Stripe Connect prin cod?

Majoritatea plugin-urilor de tip Multi-Vendor (cum e Dokan sau WCFM) au module plătite pentru Stripe Connect. Dar dacă ai un flow customizat și vrei să controlezi exact cum se împart banii în momentul plății (de exemplu, comisioane dinamice în funcție de categoria produsului), va trebui să scrii propriul tău handler.

Noi am folosit un filter din plugin-ul oficial de Stripe ca să injectăm parametrii de transfer (application_fee_amount și transfer_data). Ideea e simplă: când clientul plătește, Stripe reține comisionul tău ca platformă, iar restul banilor merg direct în contul conectat al vendorului.

La un coș de cumpărături mixt (cu produse de la mai mulți vendori), logica se complică pentru că Stripe Connect (Destination Charges) nu suportă nativ mutarea banilor către mai mulți vendori dintr-o singură tranzacție simplă. Acolo a trebuit să folosim Separate Charges and Transfers – încasăm banii pe platformă și apoi, prin API, declanșăm transferuri separate către fiecare vendor în parte.

Tu cum gestionezi plățile split? Te-ai lovit de blocaje la aprobarea conturilor de către Stripe pentru România?

Răspunsuri 0

Se încarcă răspunsurile…

Loghează-te pentru a răspunde

Doar membrii comunității pot lăsa comentarii.