Steps

At a glance: (1) your server calls StartSession to get a payment URL, (2) the browser is redirected to that URL and the customer pays on the SportsPay-hosted page, (3) the browser returns to your platform and your server calls GetResult, (4) your server sends Ack to capture the transaction — or combines it with Step 3 by passing ACK=Y.

All examples below use {gateway_endpoint}/ as a placeholder. Replace it with the full gateway endpoint — see Development & Testing for test endpoints or Production for live endpoints.

Step 1 — StartSession

StartSession initiates a session to set up a Customized Checkout transaction. The gateway returns a SECUREID and a URL you will redirect the customer to in Step 2.

Important: SECUREID is returned in the response — do not send one on the request. Including SECUREID on StartSession will be rejected.

Required parameters

  • TERMID and PASS — terminal credentials
  • TYPE=W — Web transaction
  • ACTION=StartSession
  • AMT — transaction amount
  • CUSTEMAIL — customer email
  • REQUESTID — unique identifier for this transaction. Must be unique per terminal — the gateway rejects a second StartSession with the same REQUESTID on the same terminal, which gives you built-in duplicate protection when retrying.

Optional parameters

  • LANGE for English (default) or F for French. Controls the language of the hosted payment page.
  • DESC — short description shown on the payment page.
  • CUSTNAME, CUSTID — customer name and identifier.
  • REFNUM, INV — your internal reference and invoice numbers.
  • USERFEE, PLATFEE, PLATCHRG — see CustomerPay and Platform Billing.
  • SUCCESSURL, FAILUREURL — override the return URLs configured on the terminal. Only honored if the terminal has DYNAMICURL enabled; otherwise the override is rejected. See Return URLs.

For field formats (max length, allowed characters, decimal precision), see the API Reference.

Example request

curl --request POST \
  --url {gateway_endpoint}/ \
  --header 'Content-Type: application/json' \
  --data '{
    "TERMID":     "your_termid",
    "PASS":       "your_pass",
    "TYPE":       "W",
    "ACTION":     "StartSession",
    "AMT":        "125.00",
    "CUSTEMAIL":  "[email protected]",
    "REQUESTID":  "1712864923456",
    "DESC":       "U13 Boys Select",
    "LANG":       "E",
    "JSON":       "Y"
  }'

Example response

{
  "CODE":     "0000",
  "TEXT":     "SUCCESS",
  "SECUREID": "1ef3a4c0-1234-6abc-b6f0-0607737344b4",
  "URL":      "https://svra.interpaypos.com/api/HOSTPYMT/pay/?SecureID=1ef3a4c0-1234-6abc-b6f0-0607737344b4",
  "HOST":     "https://svra.interpaypos.com",
  "USERFEE":  "0.00",
  "DATE":     "20260412",
  "TIME":     "14:23:01",
  "DUR":      "0.412"
}

If the merchant is CustomerPay-enabled, the USERFEE returned here is the processing fee that will be added to the amount the customer sees on the hosted page. Store the SECUREID on your server — you need it in Step 3.

Step 2 — Redirect the Customer

Redirect the customer's browser to the URL returned by StartSession. This is a top-level navigation — the customer leaves your checkout page and lands on the SportsPay-hosted payment page, themed to match your brand.

The customer enters their card details on the hosted page. No card data ever reaches your server.

When the customer completes (or cancels) the transaction, the gateway redirects their browser to your SUCCESSURL or FAILUREURL, appending SecureID and Status to the query string. See Return URLs for the full list of appended parameters.

Step 3 — GetResult

GetResult retrieves the outcome of the transaction after the customer has been redirected back to your platform.

Required parameters

  • TERMID, PASS
  • TYPE=W
  • ACTION=GetResult
  • SECUREID — the value returned in Step 1

Optional

  • ACK=Y — combines the acknowledgement into this call (recommended). When set, the transaction is captured as part of this response and you can skip Step 4.

Example request

curl --request POST \
  --url {gateway_endpoint}/ \
  --header 'Content-Type: application/json' \
  --data '{
    "TERMID":   "your_termid",
    "PASS":     "your_pass",
    "TYPE":     "W",
    "ACTION":   "GetResult",
    "SECUREID": "1ef3a4c0-1234-6abc-b6f0-0607737344b4",
    "ACK":      "Y",
    "JSON":     "Y"
  }'

Example response

{
  "CODE":      "0000",
  "TEXT":      "APPROVED",
  "SECUREID":  "1ef3a4c0-1234-6abc-b6f0-0607737344b4",
  "CARDTYPE":  "V",
  "CARDMASK":  "************1111",
  "CARDEXP":   "1229",
  "AMT":       "125.00",
  "USERFEE":   "0.00",
  "REQUESTID": "1712864923456",
  "REFNUM":    "102512003U13BOYS",
  "AUTH":      "T12345",
  "TOKEN":     "4xxxxxxxxxxx1111",
  "GATEREF":   "20260412-000182",
  "ACK":       "Y",
  "CUSTNAME":  "Sample Customer",
  "CUSTEMAIL": "[email protected]",
  "DATE":      "20260412",
  "TIME":      "14:24:17",
  "DUR":       "0.308"
}

For CustomerPay-enabled merchants, the AMT returned here is the base transaction amount and USERFEE is the processing fee added on the hosted page. The total the customer paid is AMT + USERFEE.

Warning: Do not send a GetResult message until after the customer has been redirected back to your Return URL. Calling GetResult before the customer has completed payment will cancel the session.

Important: Always check that the GetResult response returns ACK=Y if you passed ACK=Y in the call. If ACK comes back as N, the transaction has not been captured and you must resolve it before the session times out.

Step 4 — Acknowledge (Ack)

Send an Ack message only if you did not pass ACK=Y in Step 3. If no acknowledgement is received within 3 minutes of the transaction being approved, the gateway will automatically reverse the transaction.

Required parameters

  • TERMID, PASS
  • TYPE=W
  • ACTION=Ack
  • SECUREID or REFNUM
  • ACK=Y

Example request

curl --request POST \
  --url {gateway_endpoint}/ \
  --header 'Content-Type: application/json' \
  --data '{
    "TERMID":   "your_termid",
    "PASS":     "your_pass",
    "TYPE":     "W",
    "ACTION":   "Ack",
    "SECUREID": "1ef3a4c0-1234-6abc-b6f0-0607737344b4",
    "ACK":      "Y",
    "JSON":     "Y"
  }'

Example response

{
  "CODE": "0000",
  "TEXT": "CAPTURED",
  "ACK":  "Y",
  "DATE": "20260412",
  "TIME": "14:26:12",
  "DUR":  "0.087"
}

The transaction is now captured and the session is closed. Your platform can continue its normal post-payment flow — send the receipt, unlock the registration, or whatever comes next.