# ivyforms/trunk/backend/src/Services/Payment/PaymentGatewayInterface.php

The Innovative Form Builder – IvyForms, version trunk. 31 lines.

- Page: https://pluginprobe.com/plugins/ivyforms/trunk/code/backend/src/Services/Payment/PaymentGatewayInterface.php
- Raw: https://pluginprobe.com/plugins/ivyforms/trunk/raw/backend/src/Services/Payment/PaymentGatewayInterface.php
- Modified: 2026-10-05T14:37:20+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/ivyforms/trunk/code/backend/src/Services/Payment/PaymentGatewayInterface.php#L10-L20`.

```php
<?php

namespace IvyForms\Services\Payment;

use IvyForms\Entity\Form\Form;

/**
 * Payment provider used during public form submission (Square, Stripe, …).
 */
interface PaymentGatewayInterface
{
    public function getId(): string;

    /**
     * Charge (or begin SCA) after form validation. Must not create the IvyForms entry.
     *
     * @param array<string, mixed> $rawParams
     * @param array<int, object> $formFields
     * @param array<string, mixed> $submissionData
     * @param object $paymentField
     */
    public function processCharge(
        array $rawParams,
        Form $form,
        array $formFields,
        array $submissionData,
        object $paymentField,
        float $total
    ): PaymentChargeResult;
}

```
