Web Payment (Redirect)

Enable customers to complete payments via a secure, hosted PayGate payment page. No card data ever touches your server.

This ensures PCI DSS compliance and minimizes your liability, allowing you to focus on what you do best: growing your business.


How It Works

The Web Payment (Redirect) integration allows merchants to send a payment request to PayGate and receive a redirect URL. The customer is then redirected to PayGate's hosted payment page to complete the payment.


Payment Flow

sequenceDiagram
    participant C as Customer
    participant M as Merchant System
    participant PG as PayGate
    participant A as Acquirer

    C->>M: Initiates payment
    M->>PG: Send WebPaymentRequest
    PG-->>M: Return RedirectUrl
    M->>C: Redirect to PayGate Payment Page
    C->>PG: Complete payment
    PG->>C: Redirect back to merchant site
    PG->>M: NotifyUrl - Payment result
    M->>PG: Query transaction status
    PG-->>M: Return status (initial)

    alt Async method used
        A-->>PG: Final status sent
        PG->>M: NotifyUrl - Final status
        M->>PG: Query final status
        PG-->>M: Final result
    end

Example Request

<WebPaymentRequest>
  <Account>
    <PayGateId>10011072130</PayGateId>
    <Password>test</Password>
  </Account>
  <Customer>
    <Title>Mr</Title>
    <FirstName>Joe</FirstName>
    <LastName>Soap</LastName>
    <Email>[email protected]</Email>
  </Customer>
  <Redirect>
    <NotifyUrl>https://www.mytestsite.com/notify</NotifyUrl>
    <ReturnUrl>https://www.mytestsite.com/return</ReturnUrl>
  </Redirect>
  <Order>
    <MerchantOrderId>INV101</MerchantOrderId>
    <Currency>ZAR</Currency>
    <Amount>100</Amount>
    <TransactionDate>2025-06-17T12:00:00</TransactionDate>
    <BillingDetails>
      <Customer>
        <Title>Mr</Title>
        <FirstName>Joe</FirstName>
        <LastName>Soap</LastName>
        <Email>[email protected]</Email>
      </Customer>
      <Address>
        <Country>ZAF</Country>
      </Address>
    </BillingDetails>
  </Order>
</WebPaymentRequest>
💡

You can use a previously vaulted card by including a VaultId in your request.This avoids asking the customer for full card details again. A CVV is still required.


Request Field Reference

FieldDescriptionTypeRequired
AccountPayGate credentialsPayGateAccountType
CustomerCustomer informationPersonType
VaultTokenise card for reuse (optional)VaultType
VaultIdID of previously tokenised cardVaultIdType
RedirectURLs for post-payment redirect and server notificationRedirectRequestType
OrderOrder-specific payment detailsOrderType
RiskOptional – for accounts with Fraud & Risk screeningRiskType
PaymentLimit visible payment methods for this transaction (optional)PaymentType
BillingDescriptorStatement descriptor (ignored if not supported by the acquirer)String (max 45)
UserDefinedFieldCustom fields for reporting/metadataUserDefinedFieldType

Example Redirect Response

Upon a successful request, PayGate returns a RedirectUrl like the following:

<Redirect>
  <RedirectUrl>https://secure.paygate.co.za/PayHost/process.trans</RedirectUrl>
  <UrlParams>
    <key>PAYGATE_ID</key>
    <value>10011072130</value>
  </UrlParams>
  <UrlParams>
    <key>PAY_REQUEST_ID</key>
    <value>F6601047-EA36-4E86-89E9-52345A8CB201</value>
  </UrlParams>
  <UrlParams>
    <key>REFERENCE</key>
    <value>INV101</value>
  </UrlParams>
  <UrlParams>
    <key>CHECKSUM</key>
    <value>2d58fcbde138d7e6dbea9a2fcb54724e</value>
  </UrlParams>
</Redirect>
💡

Use the RedirectUrland UrlParams key-value pairs from the response to construct the URL for your Hosted Payment Page.

Learn more about building the Hosted Payment Page URL →


Tips

  • Always verify transactions with a final QueryRequest after NotifyUrl is received.

  • The NotifyUrl must respond withOK to acknowledge delivery.

  • Use the TransactionDate in ISO 8601 format: YYYY-MM-DDTHH:MM:SS