{"id":386404,"date":"2026-10-20T13:02:22","date_gmt":"2026-10-20T13:02:22","guid":{"rendered":"https:\/\/it.wordpress.org\/plugins\/fabrick-payment-orchestra\/"},"modified":"2026-10-20T13:01:46","modified_gmt":"2026-10-20T13:01:46","slug":"fabrick-payment-orchestra","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/fabrick-payment-orchestra\/","author":15295491,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"Fabrick Payment Orchestra","header_author":"Fabrick S.p.A.","header_description":"Accept payments via Fabrick Payment Orchestra (REST API + WebComponent checkout).","assets_banners_color":"0d24b6","last_updated":"2026-10-20 13:01:46","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/fabrick-payment-orchestra\/","header_author_uri":"https:\/\/www.fabrick.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":70,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"netingweb","date":"2026-10-20 13:01:46","revision":3756767}},"upgrade_notice":{"1.0.0":"<p>First public release. This is a new plugin, separate from Axerve \/ GestPay for WooCommerce: it does not replace it automatically. See the FAQ before migrating.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3756767,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3756767,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3756767,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3756767,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3756767,"resolution":"1","location":"assets","locale":"","width":1490,"height":2180},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3756767,"resolution":"2","location":"assets","locale":"","width":1480,"height":1444},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3756767,"resolution":"3","location":"assets","locale":"","width":1926,"height":1410},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3756767,"resolution":"4","location":"assets","locale":"","width":1604,"height":1654},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3756767,"resolution":"5","location":"assets","locale":"","width":1590,"height":1652},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3756767,"resolution":"6","location":"assets","locale":"","width":1596,"height":1644},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3756767,"resolution":"7","location":"assets","locale":"","width":1588,"height":1644},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3756767,"resolution":"8","location":"assets","locale":"","width":1580,"height":1642},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3756767,"resolution":"9","location":"assets","locale":"","width":1864,"height":2390}},"screenshots":{"1":"Secure order pay page \u2014 the Fabrick component with card, wallets, and alternative payment methods.","2":"Card payment inside the Fabrick component \u2014 card data is entered in the component, never on your server.","3":"WooCommerce Blocks checkout \u2014 Fabrick Payment Orchestra with the option to save the card for future purchases.","4":"Setup wizard \u2014 welcome and requirements check.","5":"Setup wizard \u2014 connect your Fabrick account with Shop Login and API Key.","6":"Setup wizard \u2014 choose the payment methods to offer.","7":"Setup wizard \u2014 choose the sandbox or live environment.","8":"Setup wizard \u2014 review and finish.","9":"Gateway settings \u2014 environment, credentials, connection test, and checkout display."}},"plugin_section":[],"plugin_tags":[11475,259295,6593,4079,286],"plugin_category":[41,45],"plugin_contributors":[132344,241028],"plugin_business_model":[],"class_list":["post-386404","plugin","type-plugin","status-publish","hentry","plugin_tags-credit-card","plugin_tags-fabrick","plugin_tags-payment-gateway","plugin_tags-subscriptions","plugin_tags-woocommerce","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-easynolo","plugin_contributors-netingweb","plugin_committers-easynolo","plugin_committers-netingweb"],"banners":{"banner":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/banner-772x250.png?rev=3756767","banner_2x":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/banner-1544x500.png?rev=3756767","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/icon-128x128.png?rev=3756767","icon_2x":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/icon-256x256.png?rev=3756767","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/screenshot-1.png?rev=3756767","caption":"Secure order pay page \u2014 the Fabrick component with card, wallets, and alternative payment methods."},{"src":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/screenshot-2.png?rev=3756767","caption":"Card payment inside the Fabrick component \u2014 card data is entered in the component, never on your server."},{"src":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/screenshot-3.png?rev=3756767","caption":"WooCommerce Blocks checkout \u2014 Fabrick Payment Orchestra with the option to save the card for future purchases."},{"src":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/screenshot-4.png?rev=3756767","caption":"Setup wizard \u2014 welcome and requirements check."},{"src":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/screenshot-5.png?rev=3756767","caption":"Setup wizard \u2014 connect your Fabrick account with Shop Login and API Key."},{"src":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/screenshot-6.png?rev=3756767","caption":"Setup wizard \u2014 choose the payment methods to offer."},{"src":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/screenshot-7.png?rev=3756767","caption":"Setup wizard \u2014 choose the sandbox or live environment."},{"src":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/screenshot-8.png?rev=3756767","caption":"Setup wizard \u2014 review and finish."},{"src":"https:\/\/ps.w.org\/fabrick-payment-orchestra\/assets\/screenshot-9.png?rev=3756767","caption":"Gateway settings \u2014 environment, credentials, connection test, and checkout display."}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/www.fabrick.com\/en-gb\/\">Fabrick<\/a> offers solutions to meet and anticipate all needs in the field of payment acceptance, on all physical and digital channels. The offer consists of a single platform to accept payments through physical and digital gateways such as POS, Ecommerce solutions, Banking-as-a-Service (BaaS) and omnichannel solutions in continuous evolution to meet market changes.<\/p>\n\n<p>With <a href=\"https:\/\/www.fabrick.com\/en-gb\/product\/payment-orchestration\/\">Fabrick Payment Orchestra<\/a>, you can:<\/p>\n\n<ul>\n<li>Accept payments from all major credit cards<\/li>\n<li>Accept payments from different alternative payments like PayPal, Apple Pay, Google Pay and many others - and manage them from the same dashboard<\/li>\n<li>Be compliant with PCI-DSS specifications, so that you don't need to store your customers' credit card numbers<\/li>\n<li>Count on 3DS2.X support<\/li>\n<\/ul>\n\n<h4>WooCommerce Blocks Compatibility<\/h4>\n\n<p>The plugin is fully compatible with WooCommerce Blocks checkout. All payment methods are supported in both classic checkout and blocks checkout modes. There is no need to disable WooCommerce Blocks checkout.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WooCommerce 9.0 or newer, WordPress 6.4 or newer, and PHP 8.0 or newer<\/li>\n<li>Fabrick account with Payment Orchestra, Web Components, and REST APIs enabled<\/li>\n<li>Credentials: Shop Login and API Key (sandbox or production)<\/li>\n<li>HTTPS on the store domain (recommended \/ required in production)<\/li>\n<li>For Apple Pay \/ Google Pay: domain prerequisites and activation on the Fabrick side (see the official documentation)<\/li>\n<\/ul>\n\n<h4>Available Payment Methods<\/h4>\n\n<p>Available payment methods depend on the services activated on your Fabrick account.<\/p>\n\n<ul>\n<li>Alipay<\/li>\n<li>Amazon Pay<\/li>\n<li>Apple Pay<\/li>\n<li>AppPago<\/li>\n<li>BANCOMAT Pay<\/li>\n<li>Bancontact<\/li>\n<li>EPS<\/li>\n<li>Fabrick Pay by Bank<\/li>\n<li>Google Pay<\/li>\n<li>Klarna<\/li>\n<li>Konbini<\/li>\n<li>Multibanco<\/li>\n<li>MyBank<\/li>\n<li>iDEAL<\/li>\n<li>PayPal<\/li>\n<li>Paysafecard<\/li>\n<li>Przelewy24<\/li>\n<li>Satispay<\/li>\n<li>UnionPay<\/li>\n<li>WeChat Pay<\/li>\n<\/ul>\n\n<h4>Benefits<\/h4>\n\n<ul>\n<li>Accept credit card payments directly on your store<\/li>\n<li>Accept payments with a variety of alternative methods to increase conversion by allowing customers to pay in their own preferred way<\/li>\n<li>Reduce fraud risk with Fabrick's risk-based 3-D Secure authentication (RBA)<\/li>\n<\/ul>\n\n<h4>Security<\/h4>\n\n<ul>\n<li>No credit card data is saved on your servers during the payment process<\/li>\n<li>All major credit card brands are supported (Visa, Mastercard, American Express)<\/li>\n<li>3DS2.X support<\/li>\n<\/ul>\n\n<h4>Support<\/h4>\n\n<p>You can contact our support team writing at <a href=\"mailto:plugin@fabrick.com\">plugin@fabrick.com<\/a>.<\/p>\n\n<p>This plugin is developed and maintained for Fabrick by Neting srl (WordPress.org account netingweb).<\/p>\n\n<p>The complete plugin installation guide is available in the <a href=\"https:\/\/docs.fabrick.com\/docs\/paymentHubAndOrchestra\/ecommerce\/integrationMethods\/plugin\/woocommerce\/\">Fabrick documentation<\/a>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the <strong>Fabrick Payment Orchestra<\/strong> platform (Fabrick S.p.A.) to process payments. This connection is required for the core functionality of the plugin: without it, no payment can be created, verified, or refunded.<\/p>\n\n<h4>1. Orchestra REST API<\/h4>\n\n<ul>\n<li><strong>Endpoints:<\/strong> <code>https:\/\/sandbox.gestpay.net<\/code> (sandbox) and <code>https:\/\/ecomms2s.sella.it<\/code> (live).<\/li>\n<li><strong>What it is used for:<\/strong> creating payment sessions, verifying payment outcomes (<code>payment\/detail<\/code>), processing refunds and cancellations, retrieving the payment methods enabled on your terminal, and deleting saved-card tokens.<\/li>\n<li><strong>When data is sent:<\/strong> when a payment is created or verified, a refund or cancellation is sent, the method list is refreshed, a saved card is deleted, or the merchant runs a connection test.<\/li>\n<li><strong>What data is sent:<\/strong> your shop login and API key (authentication); order amount and currency; a shop transaction reference; callback URLs; the payment language code; WooCommerce, plugin, and WordPress versions. For 3-D Secure the request also includes the buyer name, email, and billing and shipping address. For some alternative methods, such as Klarna, it also includes order lines. When tokenization or subscriptions are enabled, it includes payment token references and recurring transaction identifiers. Full card numbers (PAN) and CVV never pass through or reach your server.<\/li>\n<\/ul>\n\n<h4>2. Orchestra checkout WebComponent<\/h4>\n\n<ul>\n<li><strong>Endpoints:<\/strong> <code>https:\/\/sandbox-web.axerve.com<\/code> (sandbox) and <code>https:\/\/web.axerve.com<\/code> (live).<\/li>\n<li><strong>What it is used for:<\/strong> the <code>fbk-elements.js<\/code> script is loaded in the customer's browser when they open the order pay page and renders the <code>&lt;fbk-checkout&gt;<\/code> payment form (cards and alternative payment methods). The customer enters the card number and the security code in that component; those values are transmitted to Fabrick only.<\/li>\n<li><strong>Why it is loaded externally:<\/strong> card data is entered directly into the Fabrick-hosted component and is transmitted to Fabrick only, keeping your server out of PCI scope (SAQ-A). Loading this script from Fabrick's servers is a requirement of the payment service and cannot be bundled with the plugin.<\/li>\n<\/ul>\n\n<h4>3. Apple Pay domain association (optional)<\/h4>\n\n<p>When enabling Apple Pay in production, a domain association file provided by Fabrick (served from <code>https:\/\/web.fabrick.com<\/code>) must be hosted on your domain under <code>\/.well-known\/<\/code>. This is only relevant if you activate Apple Pay on your terminal.<\/p>\n\n<h4>Service provider<\/h4>\n\n<p>The service is provided by <strong>Fabrick S.p.A.<\/strong>, Piazza Gaudenzio Sella 1, 13900 Biella, Italy.<\/p>\n\n<ul>\n<li>Privacy policy (payment service users): <a href=\"https:\/\/www.fabrick.com\/en-gb\/privacy\/privacy-policy-payment-services\/\">fabrick.com\/en-gb\/privacy\/privacy-policy-payment-services\/<\/a><\/li>\n<li>Privacy policy hub: <a href=\"https:\/\/www.fabrick.com\/en-gb\/privacy\/\">fabrick.com\/en-gb\/privacy\/<\/a><\/li>\n<li>Service documentation: <a href=\"https:\/\/docs.fabrick.com\/docs\/paymentHubAndOrchestra\/ecommerce\/integrationMethods\/plugin\/woocommerce\/\">docs.fabrick.com<\/a><\/li>\n<\/ul>\n\n<p>If you publish a privacy policy on your store (recommended for GDPR compliance), you should mention that payment data is processed by Fabrick S.p.A. as payment service provider.<\/p>\n\n<h3>Actions and filters<\/h3>\n\n<p>Developer hooks use the <code>fabrick_orch_*<\/code> prefix and are a <strong>stable public API<\/strong> (additive changes only). Register them from a custom plugin with <code>add_action()<\/code> \/ <code>add_filter()<\/code>.<\/p>\n\n<p><strong>Rules of thumb<\/strong><\/p>\n\n<ul>\n<li>Prefer <code>fabrick_orch_payment_completed<\/code> \/ <code>_failed<\/code> \/ <code>_pending<\/code> for business logic \u2014 they run <strong>after<\/strong> verified <code>payment\/detail<\/code>.<\/li>\n<li><code>fabrick_orch_callback_received<\/code> is raw ingress (not yet verified); do not treat it as \u201cpaid\u201d.<\/li>\n<li>Filters must keep the expected return type (<code>array<\/code>, <code>string<\/code>, <code>bool<\/code>, \u2026). Do not strip required Orchestra fields (<code>shopLogin<\/code>, <code>responseURLs<\/code>, amounts, binding IDs).<\/li>\n<li>Hooks must not bypass nonces, capabilities, token ownership (anti-IDOR), or <code>payment\/detail<\/code> verification.<\/li>\n<li>Legacy GestPay aliases receive REST-oriented data (arrays), not SOAP <code>SimpleXMLElement<\/code>.<\/li>\n<\/ul>\n\n<p><strong>Example \u2014 note on verified payment<\/strong><\/p>\n\n<pre><code>add_action( 'fabrick_orch_payment_completed', function( $order, $payment_detail, $source ) { $order-&gt;add_order_note( 'Fabrick payment verified (' . $source . ').' ); }, 10, 3 );\n<\/code><\/pre>\n\n<p><strong>Example \u2014 filter create payload<\/strong><\/p>\n\n<pre><code>add_filter( 'fabrick_orch_create_payment_request', function( $payload, $order, $context ) { \/* enrich $payload; return array *\/ return $payload; }, 10, 3 );\n<\/code><\/pre>\n\n<p><strong>Example \u2014 ecommerce EC transDetails (one-shot)<\/strong><\/p>\n\n<pre><code>add_filter( 'fabrick_orch_ecommerce_trans_details', function( $details, $order ) { return $details; }, 10, 2 );\n<\/code><\/pre>\n\n<h4>Actions \u2014 payment lifecycle (callback)<\/h4>\n\n<ul>\n<li><code>fabrick_orch_callback_received( string $source, array $params, WC_Order|null $order )<\/code> \u2014 callback received (buyer or S2S); <strong>not<\/strong> yet verified.<\/li>\n<li><code>fabrick_orch_before_callback_processing( WC_Order $order, string $source, array $params )<\/code> \u2014 before <code>payment\/detail<\/code> drives order status.<\/li>\n<li><code>fabrick_orch_after_callback_processing( WC_Order $order, string $source, array $payment_detail )<\/code> \u2014 after callback processing completes.<\/li>\n<li><code>fabrick_orch_payment_completed( WC_Order $order, array $payment_detail, string $source )<\/code> \u2014 payment confirmed completed.<\/li>\n<li><code>fabrick_orch_payment_failed( WC_Order $order, array $payment_detail, string $source )<\/code> \u2014 payment failed.<\/li>\n<li><code>fabrick_orch_payment_pending( WC_Order $order, array $payment_detail, string $source )<\/code> \u2014 payment pending (e.g. async APM).<\/li>\n<li><p><code>fabrick_orch_process_payment_error( Throwable $error, WC_Order|null $order, array $context )<\/code> \u2014 checkout, callback, or Pay By Link error.<\/p>\n\n<p>$source is one of: <code>s2s<\/code>, <code>buyer_ok<\/code>, <code>buyer_ko<\/code>, <code>recovery<\/code>, <code>admin<\/code>, <code>checkout<\/code>, <code>subscription<\/code>, <code>legacy<\/code>.<\/p><\/li>\n<\/ul>\n\n<h4>Actions \u2014 checkout, admin, refunds, tokens, subscriptions, Pay By Link<\/h4>\n\n<ul>\n<li><code>fabrick_orch_payment_fields( string $gateway_id )<\/code> \u2014 before payment fields \/ WebComponent render on the pay page.<\/li>\n<li><code>fabrick_orch_gateway_settings_before_cards( object $gateway )<\/code> \u2014 gateway settings screen extension point.<\/li>\n<li><code>fabrick_orch_connection_test_result( bool $success, array $result, array $context )<\/code> \u2014 after AJAX connection test.<\/li>\n<li><code>fabrick_orch_shop_login_changed( string $environment, string $shop_login, string $previous )<\/code> \u2014 shop login credential changed.<\/li>\n<li><code>fabrick_orch_before_refund( WC_Order $order, float|null $amount, array $context )<\/code> \u2014 before refund API call.<\/li>\n<li><code>fabrick_orch_refund_success( WC_Order $order, array $response, float|null $amount )<\/code> \u2014 refund succeeded.<\/li>\n<li><code>fabrick_orch_refund_failed( WC_Order $order, array $response, Throwable|null $error )<\/code> \u2014 refund failed.<\/li>\n<li><code>fabrick_orch_before_cancel( WC_Order $order, array $context )<\/code> \u2014 before void\/cancel API call.<\/li>\n<li><code>fabrick_orch_cancel_success( WC_Order $order, array $response )<\/code> \u2014 void\/cancel succeeded.<\/li>\n<li><code>fabrick_orch_cancel_failed( WC_Order $order, array $response, Throwable|null $error )<\/code> \u2014 void\/cancel failed.<\/li>\n<li><code>fabrick_orch_payment_token_created( WC_Payment_Token $token, WC_Order $order, array $detail )<\/code> \u2014 new saved card token persisted.<\/li>\n<li><code>fabrick_orch_payment_token_updated( WC_Payment_Token $token, WC_Order $order, array $detail )<\/code> \u2014 existing token updated.<\/li>\n<li><code>fabrick_orch_payment_token_deleted( WC_Payment_Token $token )<\/code> \u2014 token removed locally (before WC delete).<\/li>\n<li><code>fabrick_orch_remote_token_deleted( WC_Payment_Token $token, array $payload )<\/code> \u2014 token deleted remotely on Orchestra (<code>DELETE shop\/token<\/code>).<\/li>\n<li><code>fabrick_orch_oneclick_submitted( array $submitted, WC_Order $order, WC_Payment_Token $token )<\/code> \u2014 OneClick submit completed.<\/li>\n<li><code>fabrick_orch_legacy_token_migrated( WC_Payment_Token $token, int $user_id, array $card )<\/code> \u2014 legacy GestPay token migrated (only if migration is enabled).<\/li>\n<li><code>fabrick_orch_subscription_renewal_success( WC_Order $renewal_order, array $payment_detail, object|null $subscription )<\/code> \u2014 WCS renewal succeeded.<\/li>\n<li><code>fabrick_orch_subscription_renewal_failed( WC_Order $renewal_order, string $message, object|null $subscription )<\/code> \u2014 WCS renewal failed.<\/li>\n<li><code>fabrick_orch_pay_by_link_generated( WC_Order $order, string $redirect_url, string $payment_id )<\/code> \u2014 Pay By Link session created.<\/li>\n<li><code>fabrick_orch_pay_by_link_email_sent( WC_Order $order, string $recipient )<\/code> \u2014 Pay By Link email sent to buyer.<\/li>\n<li><code>gestpay_on_renewal_payment_failure( \u2026 )<\/code> \u2014 <strong>deprecated<\/strong> alias of <code>fabrick_orch_subscription_renewal_failed<\/code>.<\/li>\n<\/ul>\n\n<h4>Filters \u2014 payment\/create &amp; API<\/h4>\n\n<ul>\n<li><code>fabrick_orch_alter_order_id( string $shop_transaction_id, WC_Order $order, array $context )<\/code> \u2014 external shop transaction ID sent to Orchestra.<\/li>\n<li><code>fabrick_orch_order_details( array $details, WC_Order $order )<\/code> \u2014 OrderDetails block (Klarna \/ APM).<\/li>\n<li><code>fabrick_orch_ecommerce_trans_details( array $details, WC_Order $order )<\/code> \u2014 ecommerce <code>transDetails<\/code> (<code>type=EC<\/code>) for one-shot create; subscription First replaces this with MIT <code>01F<\/code>.<\/li>\n<li><code>fabrick_orch_create_payment_request( array $payload, WC_Order $order, array $context )<\/code> \u2014 checkout <code>payment\/create<\/code> body (includes first-level CMS metadata: <code>CMS_Type<\/code>, <code>CMS_Version<\/code>, <code>Module_Version<\/code>, <code>WP_Version<\/code>).<\/li>\n<li><code>fabrick_orch_pay_by_link_create_request( array $payload, WC_Order $order )<\/code> \u2014 Pay By Link <code>payment\/create<\/code> body (same CMS metadata).<\/li>\n<li><code>fabrick_orch_payment_language_id( string $language_id, WC_Order $order, array $context )<\/code> \u2014 <code>languageId<\/code> sent in checkout and Pay By Link <code>payment\/create<\/code> (<code>'1'<\/code> Italian, <code>'2'<\/code> English, <code>'3'<\/code> Spanish, <code>'4'<\/code> French, <code>'5'<\/code> German; return <code>''<\/code> to omit it). <code>$context<\/code>: <code>source<\/code>, <code>locale<\/code>.<\/li>\n<li><code>fabrick_orch_available_payment_methods( array $methods, WC_Order|null $order, array $context )<\/code> \u2014 <code>paymentType<\/code> codes included in create.<\/li>\n<li><code>fabrick_orch_api_request_params( array $params, string $endpoint, string $method, WC_Order|null $order )<\/code> \u2014 Orchestra REST request body\/query.<\/li>\n<li><code>fabrick_orch_api_request_headers( array $headers, string $endpoint, string $method, array $params, WC_Order|null $order )<\/code> \u2014 REST headers.<\/li>\n<li><code>fabrick_orch_api_request_response( array|WP_Error $response, string $method, string $url, string $endpoint )<\/code> \u2014 raw HTTP response.<\/li>\n<\/ul>\n\n<h4>Filters \u2014 callback, checkout UI, Blocks<\/h4>\n\n<ul>\n<li><code>fabrick_orch_revert_order_id( string $order_id, array $callback_params, string $source )<\/code> \u2014 map callback reference back to WooCommerce order ID.<\/li>\n<li><code>fabrick_orch_process_callback_async( bool $async, WC_Order $order, string $source, array $params )<\/code> \u2014 defer callback to Action Scheduler.<\/li>\n<li><code>fabrick_orch_callback_deferred_delay( int $seconds, \u2026 )<\/code> \u2014 delay when callback is deferred.<\/li>\n<li><code>fabrick_orch_buyer_ok_retry_attempts( int $attempts )<\/code> \u2014 buyer return retry count.<\/li>\n<li><code>fabrick_orch_buyer_ok_retry_delay_seconds( int $seconds )<\/code> \u2014 delay between buyer return retries.<\/li>\n<li><code>fabrick_orch_webcomponent_attributes( array $attributes, WC_Order $order, array $context )<\/code> \u2014 <code>&lt;fbk-checkout&gt;<\/code> HTML attributes.<\/li>\n<li><code>fabrick_orch_checkout_script_params( array $params, WC_Order $order )<\/code> \u2014 pay-page JavaScript bootstrap.<\/li>\n<li><code>fabrick_orch_pay_page_script_config( array $config, WC_Order $order )<\/code> \u2014 pay-page UX script config.<\/li>\n<li><code>fabrick_orch_blocks_payment_method_data( array $data, object $gateway )<\/code> \u2014 WooCommerce Blocks payment method data.<\/li>\n<li><code>fabrick_orch_is_blocks_checkout_supported( bool $supported )<\/code> \u2014 whether Blocks integration is active.<\/li>\n<\/ul>\n\n<h4>Filters \u2014 refunds, tokens, subscriptions, settings, logging<\/h4>\n\n<ul>\n<li><code>fabrick_orch_refund_request( array $payload, WC_Order $order, float|null $amount, string $reason )<\/code> \u2014 refund API payload.<\/li>\n<li><code>fabrick_orch_cancel_request( array $payload, WC_Order $order )<\/code> \u2014 void\/cancel API payload.<\/li>\n<li><code>fabrick_orch_oneclick_submit_body( array $body, WC_Order $order, string $orchestra_token )<\/code> \u2014 OneClick <code>payment\/submit<\/code> body.<\/li>\n<li><code>fabrick_orch_saved_card_display_label( string $label, WC_Payment_Token $card )<\/code> \u2014 My Account saved card label.<\/li>\n<li><code>fabrick_orch_legacy_token_migration_enabled( bool $enabled )<\/code> \u2014 opt-in legacy token import (default <code>false<\/code>).<\/li>\n<li><code>fabrick_orch_mit_payment_request( array $payload, WC_Order $renewal_order, WC_Payment_Token $token )<\/code> \u2014 MIT renewal create payload (includes CMS metadata).<\/li>\n<li><code>fabrick_orch_mit_authentication_amount( float $amount, WC_Order $order, string $recurring_total )<\/code> \u2014 First authentication amount (default recurring \u00d7 1.25).<\/li>\n<li><code>fabrick_orch_mit_recurring_frequency( int $days, WC_Order $order )<\/code> \u2014 days between recurring charges.<\/li>\n<li><code>fabrick_orch_settings_fields( array $fields, object $gateway )<\/code> \u2014 gateway settings fields.<\/li>\n<li><code>fabrick_orch_shop_methods( array $methods, string $environment, bool $from_cache )<\/code> \u2014 terminal methods catalog entries.<\/li>\n<li><code>fabrick_orch_shop_methods_cache_ttl( int $seconds, string $environment )<\/code> \u2014 catalog cache TTL.<\/li>\n<li><code>fabrick_orch_methods_refresh_diff( object $diff, string $environment )<\/code> \u2014 diff after methods refresh.<\/li>\n<li><code>fabrick_orch_methods_reconciliation_notice( bool $show, array $missing_types )<\/code> \u2014 admin notice for missing methods.<\/li>\n<li><code>fabrick_orch_method_logo_url( string $url, string $code, string $label )<\/code> \u2014 payment method logo URL in settings.<\/li>\n<li><code>fabrick_orch_logging_enabled( bool $enabled, string $level, string $message, array $context )<\/code> \u2014 enable\/disable plugin logging.<\/li>\n<li><code>fabrick_orch_log_context( array $context, string $level, string $message )<\/code> \u2014 mask or enrich log context.<\/li>\n<li><code>fabrick_orch_mask_log_value( string $masked, string $key, mixed $value )<\/code> \u2014 mask a single log value.<\/li>\n<li><code>fabrick_orch_debug_enabled( bool $enabled )<\/code> \u2014 force debug mode on\/off.<\/li>\n<li><code>fabrick_orch_debug_log_max( int $max )<\/code> \u2014 admin debug log buffer size (<code>0<\/code> disables the buffer).<\/li>\n<li><code>gestpay_revert_order_id( mixed $order_id )<\/code> \u2014 <strong>deprecated<\/strong> alias of <code>fabrick_orch_revert_order_id<\/code> (order ID resolution only).<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce 9.0 or newer.<\/li>\n<li>On a staging site, upload the plugin zip via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>, or copy the <code>fabrick-payment-orchestra<\/code> folder to <code>wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate <strong>Fabrick Payment Orchestra<\/strong>. This does not replace Axerve \/ GestPay for WooCommerce.<\/li>\n<li>Open <strong>WooCommerce \u2192 Settings \u2192 Payments \u2192 Fabrick Payment Orchestra<\/strong>, or complete the setup wizard on first activation.<\/li>\n<li>Enter your <strong>Shop Login<\/strong> and <strong>API Key<\/strong> from the Fabrick backoffice (Security section).<\/li>\n<li>Choose <strong>Sandbox<\/strong> or <strong>Live<\/strong>, then enable the payment methods you need.<\/li>\n<li>For live payments, serve the store over HTTPS.<\/li>\n<li>Before going live, turn off the old GestPay gateway if it is still active.<\/li>\n<li>For subscriptions on this plugin: install WooCommerce Subscriptions and enable <strong>tokenization<\/strong> in gateway settings. If the store already has subscriptions or saved cards on the old plugin, contact support before migrating.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20is%20a%20payment%20method%20missing%20at%20checkout%3F\"><h3>Why is a payment method missing at checkout?<\/h3><\/dt>\n<dd><p>The checkout lists only methods enabled on your Fabrick account and turned on in this plugin's settings. Ask Fabrick to activate a method, then refresh the method list in the gateway settings.<\/p><\/dd>\n<dt id=\"where%20does%20the%20customer%20enter%20the%20card%20details%3F\"><h3>Where does the customer enter the card details?<\/h3><\/dt>\n<dd><p>After the customer places the order, WooCommerce opens the order pay page of your store. The customer enters the card number and the security code in the Fabrick payment component on that page. When the card issuer requires 3-D Secure, authentication continues on Fabrick's page. Alternative methods continue on the provider's site.<\/p><\/dd>\n<dt id=\"can%20i%20migrate%20from%20axerve%20%2F%20gestpay%20for%20woocommerce%3F\"><h3>Can I migrate from Axerve \/ GestPay for WooCommerce?<\/h3><\/dt>\n<dd><p>This is a separate plugin: installing it does not update Axerve \/ GestPay for WooCommerce. Test it on a staging site first. Contact support before you migrate a store with active subscriptions or saved cards from the old plugin.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20plugin%20together%20with%20axerve%20%2F%20gestpay%20for%20woocommerce%3F\"><h3>Can I use this plugin together with Axerve \/ GestPay for WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. They are separate plugins and can both be active. Turn off the old gateway before you take live payments with this one, so customers see a single Fabrick method at checkout.<\/p><\/dd>\n<dt id=\"how%20do%20i%20switch%20from%20sandbox%20to%20live%3F\"><h3>How do I switch from sandbox to live?<\/h3><\/dt>\n<dd><p>In the gateway settings, select Live and enter the live Shop Login and API Key. Sandbox and live credentials are stored separately. Live payments require HTTPS.<\/p><\/dd>\n<dt id=\"why%20is%20the%20order%20still%20pending%20if%20the%20customer%20closed%20the%20page%3F\"><h3>Why is the order still pending if the customer closed the page?<\/h3><\/dt>\n<dd><p>Closing the page does not tell the store whether the payment succeeded. The order stays unpaid until Fabrick confirms the result. If the customer approved the payment and the confirmation is delayed, do not ask them to pay again: check the order after the notification arrives.<\/p><\/dd>\n<dt id=\"is%20an%20ssl%20certificate%20required%3F\"><h3>Is an SSL certificate required?<\/h3><\/dt>\n<dd><p>Yes for <strong>live<\/strong> payments. Your checkout and callback URLs must be served over HTTPS. Sandbox testing can use HTTP on local development sites with a tunnel (e.g. ngrok) for callbacks.<\/p><\/dd>\n<dt id=\"is%20woocommerce%20blocks%20supported%3F\"><h3>Is WooCommerce Blocks supported?<\/h3><\/dt>\n<dd><p>Yes. You do not need to turn Blocks off. After the customer places the order, WooCommerce opens the order pay page with the Fabrick payment component, as in the classic checkout.<\/p><\/dd>\n<dt id=\"is%20hpos%20%28high-performance%20order%20storage%29%20supported%3F\"><h3>Is HPOS (High-Performance Order Storage) supported?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares compatibility with WooCommerce custom order tables.<\/p><\/dd>\n<dt id=\"do%20i%20need%20woocommerce%20subscriptions%3F\"><h3>Do I need WooCommerce Subscriptions?<\/h3><\/dt>\n<dd><p>Only for subscription products and renewals. Standard one-off payments work without it.<\/p><\/dd>\n<dt id=\"can%20i%20send%20a%20payment%20link%20instead%20of%20checkout%3F\"><h3>Can I send a payment link instead of checkout?<\/h3><\/dt>\n<dd><p>Yes. From the order admin screen, use <strong>Send Fabrick payment link<\/strong> on eligible pending or on-hold orders. The buyer receives an email with a hosted payment page URL. Resending generates a new link and invalidates previous ones.<\/p><\/dd>\n<dt id=\"where%20are%20developer%20hooks%20documented%3F\"><h3>Where are developer hooks documented?<\/h3><\/dt>\n<dd><p>Public <code>fabrick_orch_*<\/code> actions and filters are listed in <strong>Actions and filters<\/strong> below (with parameters and examples). The repository also ships <code>docs\/developer-hooks-guide.md<\/code> (usage) and <code>docs\/hooks-and-filters-spec.md<\/code> (design \/ legacy map) \u2014 those files are not included in the WordPress.org zip.<\/p><\/dd>\n<dt id=\"where%20is%20the%20source%20code%20of%20the%20compiled%20javascript%3F\"><h3>Where is the source code of the compiled JavaScript?<\/h3><\/dt>\n<dd><p>The Blocks checkout script in <code>build\/<\/code> is compiled from <code>assets\/blocks\/<\/code>, which ships with the plugin together with <code>package.json<\/code> and <code>webpack.config.js<\/code>. To rebuild it, run <code>npm install<\/code> and <code>npm run build<\/code> in the plugin folder (uses <code>@wordpress\/scripts<\/code>). All other JavaScript and CSS files are not minified.<\/p><\/dd>\n<dt id=\"how%20do%20i%20extend%20the%20gateway%20with%20code%3F\"><h3>How do I extend the gateway with code?<\/h3><\/dt>\n<dd><p>Create a small custom plugin (preferred) or must-use plugin and register with <code>add_action<\/code> \/ <code>add_filter<\/code> on the <code>fabrick_orch_*<\/code> hooks. Load after WooCommerce is available (<code>plugins_loaded<\/code> priority 11+ or <code>woocommerce_init<\/code>). Prefer lifecycle actions such as <code>fabrick_orch_payment_completed<\/code> (after verified <code>payment\/detail<\/code>) over raw <code>fabrick_orch_callback_received<\/code>.<\/p><\/dd>\n<dt id=\"in%20which%20language%20is%20the%20payment%20form%20shown%3F\"><h3>In which language is the payment form shown?<\/h3><\/dt>\n<dd><p>The Fabrick payment component follows the customer's browser language. The plugin also sends the store language to Fabrick as <code>languageId<\/code> (Italian, English, Spanish, French or German; English for any other language) when creating the payment. With WPML, the order language is used for payment links. Whether Fabrick uses that code for buyer emails or the Pay By Link page depends on the Orchestra account; ask Fabrick if you need a confirmed behaviour. Developers can change or omit <code>languageId<\/code> with the <code>fabrick_orch_payment_language_id<\/code> filter.<\/p><\/dd>\n<dt id=\"does%20debug%20logging%20include%20personal%20data%3F\"><h3>Does debug logging include personal data?<\/h3><\/dt>\n<dd><p>Only when the merchant enables gateway debug logging. Create-request logs include technical fields (amount, currency, CMS versions, presence flags) without billing address or email from <code>OrderDetails<\/code> \/ <code>transDetails<\/code>. Disable debug on production stores when not troubleshooting.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li><strong>Feature:<\/strong> first public release on WordPress.org. New plugin (separate from Axerve \/ GestPay for WooCommerce); see the FAQ before migrating.<\/li>\n<li><strong>Feature:<\/strong> checkout and Pay By Link send <code>languageId<\/code> from the store language (WPML order language for payment links). Filter: <code>fabrick_orch_payment_language_id<\/code>. The payment form texts still follow the buyer browser language.<\/li>\n<li><strong>Feature:<\/strong> export the recent debug log as CSV or Markdown from the gateway Debug card (capability- and nonce-protected).<\/li>\n<li><strong>Feature:<\/strong> gateway settings show the installed plugin version in the account card header.<\/li>\n<li><strong>Update:<\/strong> production package includes Blocks checkout source (<code>assets\/blocks\/<\/code>, <code>package.json<\/code>, <code>webpack.config.js<\/code>) so the compiled script can be rebuilt; FAQ explains how.<\/li>\n<li><strong>Update:<\/strong> payment method label no longer shows a favicon icon; sandbox uses a clear \u201cTest mode\u201d badge.<\/li>\n<li><strong>Update:<\/strong> plugin Author is Fabrick S.p.A.; Neting develops and maintains the plugin for Fabrick (WordPress.org account netingweb).<\/li>\n<li><strong>Update:<\/strong> order-pay CDN loader and My Account hide-add-payment-method CSS use WordPress enqueue APIs (no raw script\/style tags).<\/li>\n<li><strong>Update:<\/strong> production zip no longer ships compiled translation files (<code>.po<\/code> \/ <code>.mo<\/code> \/ <code>.json<\/code>); community translations load from translate.wordpress.org.<\/li>\n<li><strong>Fix:<\/strong> classic checkout payment box uses a white background (aligned with Blocks).<\/li>\n<li><strong>Fix:<\/strong> order pay page replaces a dead Orchestra session after a WebComponent error instead of retrying a cancelled payment (<code>1143<\/code>).<\/li>\n<li><strong>Security:<\/strong> debug <code>payment\/create<\/code> logs no longer store buyer personal data from <code>OrderDetails<\/code> \/ <code>transDetails<\/code> (technical flags only).<\/li>\n<li><strong>Security:<\/strong> if <code>payment\/detail<\/code> is unavailable when checking a stored session at checkout, the plugin starts a new payment session instead of reusing an unverified one.<\/li>\n<li><strong>Fix:<\/strong> setup wizard parent menu uses <code>options.php<\/code> to avoid a <code>strip_tags()<\/code> deprecation on PHP 8.1+.<\/li>\n<\/ul>\n\n<h4>0.2.11<\/h4>\n\n<ul>\n<li><strong>Fixed:<\/strong> the WooCommerce core spinner no longer overlaps the Fabrick loading indicator on the order pay page (generic <code>.woocommerce .loader<\/code> rule matched a container rendered by the payment component).<\/li>\n<\/ul>\n\n<h4>0.2.10<\/h4>\n\n<ul>\n<li><strong>Added:<\/strong> deleting a saved Fabrick card in My Account also deletes the token on Orchestra (<code>DELETE shop\/token\/{shopLogin}\/{token}<\/code>). Remote failures are logged and do not undo the local deletion.<\/li>\n<li><strong>Added:<\/strong> deletion is blocked when the card is used by an active or on-hold WooCommerce Subscription (customer must change the subscription payment method first).<\/li>\n<li><strong>Added:<\/strong> developer action <code>fabrick_orch_remote_token_deleted<\/code>.<\/li>\n<\/ul>\n\n<h4>0.2.9<\/h4>\n\n<ul>\n<li><strong>Fixed:<\/strong> when debug logging is enabled, <code>payment\/create<\/code> logs now include CMS metadata (<code>CMS_Type<\/code>, <code>CMS_Version<\/code>, <code>Module_Version<\/code>, <code>WP_Version<\/code>) alongside <code>OrderDetails<\/code> and <code>transDetails<\/code>.<\/li>\n<\/ul>\n\n<h4>0.2.8<\/h4>\n\n<ul>\n<li><strong>Added:<\/strong> first-level CMS metadata on every <code>payment\/create<\/code> request (<code>CMS_Type<\/code>, <code>CMS_Version<\/code>, <code>Module_Version<\/code>, <code>WP_Version<\/code>) for checkout, Pay By Link, and MIT renewal. WordPress version uses <code>wp_get_wp_version()<\/code> for accurate reporting.<\/li>\n<\/ul>\n\n<h4>0.2.7<\/h4>\n\n<ul>\n<li><strong>Changed:<\/strong> MyBank (<code>MYBANK<\/code>) can be enabled or disabled like other payment methods and is included in <code>paymentType[]<\/code> when selected in gateway settings.<\/li>\n<\/ul>\n\n<h4>0.2.6<\/h4>\n\n<ul>\n<li><strong>Added:<\/strong> Orchestra callback <code>Status=XX<\/code> (async\/pending APM) is accepted and verified via <code>payment\/detail<\/code>; orders move to <code>on-hold<\/code> when the outcome is pending; buyer return shows a pending confirmation notice.<\/li>\n<li><strong>Fixed:<\/strong> WooCommerce Subscriptions scheduled renewals \u2014 gateway declares <code>subscription_suspension<\/code> and <code>subscription_reactivation<\/code> support (required for renewal cron).<\/li>\n<\/ul>\n\n<h4>0.2.5<\/h4>\n\n<ul>\n<li><strong>Changed:<\/strong> live shop methods catalog shows only methods with <code>paymentPage=visible<\/code> (hidden terminal methods excluded from admin toggles).<\/li>\n<li><strong>Changed:<\/strong> payment-methods AJAX refresh updates the list HTML in place; cache schema v2 invalidates pre-filter snapshots.<\/li>\n<\/ul>\n\n<h4>0.2.4<\/h4>\n\n<ul>\n<li><strong>Added:<\/strong> when debug logging is enabled, <code>payment\/create<\/code> logs include <code>OrderDetails<\/code> and <code>transDetails<\/code> (plus <code>has_*<\/code> \/ <code>transDetails_type<\/code> flags) for payload verification.<\/li>\n<\/ul>\n\n<h4>0.2.3<\/h4>\n\n<ul>\n<li><strong>Added:<\/strong> ecommerce <code>transDetails<\/code> (<code>type=EC<\/code>) on checkout and Pay By Link <code>payment\/create<\/code> for 3DS2 buyer data (filter <code>fabrick_orch_ecommerce_trans_details<\/code>). Subscription First still uses MIT <code>01F<\/code>.<\/li>\n<\/ul>\n\n<h4>0.2.2<\/h4>\n\n<ul>\n<li><strong>Fixed:<\/strong> buyer return redirects use verified <code>payment\/detail<\/code> and bind payment identifiers to the processed order (avoids thank-you for an unrelated paid order; Status=OK unverified shows a neutral \u201cdo not pay again\u201d notice).<\/li>\n<li><strong>Fixed:<\/strong> OneClick immediate submit failures and pre-submit skips now emit clear technical logs with stable reason codes.<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li><strong>Added:<\/strong> <code>OrderDetails<\/code> on checkout and Pay By Link <code>payment\/create<\/code> so Klarna can appear in <code>&lt;fbk-checkout&gt;<\/code> (filter <code>fabrick_orch_order_details<\/code>).<\/li>\n<li><strong>Fixed:<\/strong> inactive terminal payment types are removed from <code>paymentType[]<\/code> before create, logged, and pruned from saved settings (avoids HTTP 400 \/ <code>1403<\/code>).<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li><strong>Added:<\/strong> Pay By Link (Hosted Payment Page) \u2014 admin order action <strong>Send Fabrick payment link<\/strong> for pending\/on-hold orders paid with Fabrick Payment Orchestra.<\/li>\n<li><strong>Added:<\/strong> Buyer email with hosted payment URL (Italian and English templates via <code>wp_mail<\/code>).<\/li>\n<li><strong>Added:<\/strong> Order meta <code>_fabrick_pbl_*<\/code> for link URL, payment ID, sent time, and 48-hour expiry.<\/li>\n<li><strong>Added:<\/strong> Developer hooks <code>fabrick_orch_pay_by_link_create_request<\/code>, <code>fabrick_orch_pay_by_link_generated<\/code>, <code>fabrick_orch_pay_by_link_email_sent<\/code>.<\/li>\n<li><strong>Changed:<\/strong> Each admin send regenerates the Pay By Link session; previous payment links are invalidated (best-effort cancel of the prior Orchestra session).<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li><strong>Fixed:<\/strong> dist zip now packages the plain slug folder (<code>fabrick-payment-orchestra\/<\/code>) instead of a versioned folder, resolving Plugin Check <code>TextDomainMismatch<\/code> false positives.<\/li>\n<li><strong>Fixed:<\/strong> My Account saved-card label used the <code>woocommerce<\/code> text domain instead of the plugin's own.<\/li>\n<li><strong>Fixed:<\/strong> removed the discouraged manual translation loader; translations now load automatically via the <code>Domain Path<\/code> header.<\/li>\n<li><strong>Fixed:<\/strong> dist artifact keeps <code>composer.json<\/code> (dependency manifest) instead of stripping it.<\/li>\n<li><strong>Fixed:<\/strong> Short Description and <code>Tested up to<\/code> header updated for WordPress.org compliance.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li><strong>Added:<\/strong> Fabrick Payment Orchestra gateway \u2014 REST <code>payment\/create<\/code>, <code>&lt;fbk-checkout&gt;<\/code> pay page, buyer + S2S callbacks.<\/li>\n<li><strong>Added:<\/strong> WooCommerce Blocks payment method; classic checkout support.<\/li>\n<li><strong>Added:<\/strong> Tokenization, saved cards, OneClick off-session payments.<\/li>\n<li><strong>Added:<\/strong> WooCommerce Subscriptions MIT (<code>01F<\/code> \/ <code>01N<\/code>) with authentication amount headroom.<\/li>\n<li><strong>Added:<\/strong> Admin refunds and void\/cancel; HPOS compatibility; onboarding wizard.<\/li>\n<li><strong>Added:<\/strong> Italian and English translations; public <code>fabrick_orch_*<\/code> developer hooks.<\/li>\n<li><strong>Added:<\/strong> Deprecated legacy hook aliases for GestPay migration (<code>gestpay_revert_order_id<\/code>, <code>gestpay_on_renewal_payment_failure<\/code>).<\/li>\n<\/ul>","raw_excerpt":"Accept card and alternative payments via Fabrick Payment Orchestra for WooCommerce: secure WebComponent checkout, tokenization, subscriptions.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/386404","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=386404"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/easynolo"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=386404"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=386404"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=386404"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=386404"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=386404"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=386404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}