No WordPress, no coding

Form builder with payment gateway

To collect money with a form, you don't need to set up a WordPress site or write code. Porsino's form builder with payment gateway connects your order, tuition or donation form to a rial gateway: set a fixed amount or calculate it from the answers, the transaction is verified server-side, and an invoice is issued for every successful payment. Building forms in Porsino is free, and publishing a payment form unlocks with the “Pro” plan.

  • No WordPress or coding
  • Zibal and ZarinPal
  • PDF invoice
Glass form-builder canvas with rounded fields and a field palette

Tuition, orders and donations

  • Class and course tuition

    Combine the registration form with tuition payment; registration is confirmed only after a successful payment.

  • Order form

    Collect the product and quantity in the form, total the amount with a calculated field and take payment right there.

  • Donations

    Let the payer choose the amount; whatever they enter in the amount field goes to the gateway.

  • Paid events and exams

    Charge attendance fees for conferences and workshops; in the exam builder you can make exam entry paid too.

Nothing gets installed anywhere: send the short link or QR, or place the iframe code on any site, including your own WordPress site. For course enrollment, see theOnline registration formas well.

Amount from a formula field

The payment amount works two ways: fixed, or read from a field. For the second, add a “calculated” field and write its formula referencing other fields' keys inside double curly braces:

Sample amount formula

  • {{qty}} * {{unit_price}}Quantity times unit price
  • {{price}} * 1.09Price plus 9% VAT
  • {{tuition}} + {{books}}Tuition plus the cost of the book

The formula runs in a restricted, safe engine that recognizes only math operations and allowed functions, and the server recalculates the amount at submission — so nobody can pay less by tampering with the browser. The display unit is toman or rial, and the amount always goes to the gateway in rials. Conditional logic can act on the amount too; for example, require a pro forma upload when the total exceeds a threshold.

Server-side payment verification

The biggest risk with a payment form is recording an order that was never paid for. In Porsino a response stays in “awaiting payment” until the payment is confirmed. When the payer returns from the gateway, the server itself queries the gateway for the transaction and never accepts any parameter returned from the browser as proof of payment.

  • Successful payment: the response is finalized and receives a unique invoice number.
  • Failed or abandoned payment: the payer can try again from the result page.
  • Payment deadline passed: the unfinished response is set aside and option capacity, booked slots and discount-code quotas are released.

In the dashboard, each form's Payments section shows the status of every transaction, and if needed you can re-query a payment's status from the gateway.

Payer invoice

After a successful payment, the result page shows the amount, discount, gateway, bank reference number, invoice number and payment time, and a “Download invoice” button gives the PDF invoice. Enter the seller's name, address, tax ID and logo in the form's payment settings so they appear on the invoice.

Discount codes are included: percentage or fixed amount, with a usage cap, expiry date and minimum purchase. Each code's usage is counted atomically, so two simultaneous purchases can't exceed its cap.

Porsino works with the Zibal and ZarinPal gateways. Connect your own gateway once under “My payment gateway” so form payments go straight to your account; in the form settings you just turn payments on.

Porsino's form builder with payment gateway vs. Gravity Forms

Gravity Forms is a powerful commercial WordPress plugin. If you have a WordPress site and the form has to integrate with that site's users, products or other plugins, it's a sensible choice.

A short comparison of Gravity Forms and Porsino for payment forms
SubjectGravity FormsPorsino
PrerequisiteA WordPress site, hosting and plugin updatesNone; the form is hosted on Porsino and embeds in any site
CostPaid licenseFree to build; payment forms with the “Pro” plan
Iranian gatewayUsually via Persian third-party add-onsZibal and ZarinPal built into the form builder
Jalali calendar and Iranian fieldsWith Persian localization add-onsBuilt in: Jalali calendar, national ID, mobile, province and city
Site integrationDeep; data lives inside WordPress itselfiframe, webhooks, API and Google Sheets integration

In short: if you don't have WordPress, or don't want to maintain a plugin and its license, Porsino is the shorter route; if everything you run is on WordPress, Gravity Forms is a good option too.

Frequently asked questions

Do I need a website or WordPress for a payment form?

No. The form is built and hosted on Porsino and is available via link, QR or iframe. If you have a website, place the iframe code on your page.

How do I know a payment actually went through?

A response only becomes “paid” when the server itself confirms the transaction with the gateway. A forged return from the gateway page or a tampered return URL has no effect.

Can the amount be calculated from the form's answers?

Yes. Create a calculated field — quantity times unit price, for example — and set it as the amount source in the payment settings. The server recalculates the amount at submission time.

Does the payer get an invoice?

Yes. After a successful payment, an invoice with a unique number and the seller's details is issued and can be downloaded as a PDF from the payment result page.

Which gateways are supported?

Zibal and ZarinPal. You connect your own gateway under “My payment gateway”, and every payment goes straight to your account.

Form-building guides

All posts

Build your first payment form without writing code

Build the form, turn on payments, set a fixed or formula-based amount and send the link.