Technical Specifications
Request Format
All requests to the InterPay™ gateway are sent over HTTPS on port 1443. Both GET and POST methods are supported.
Tag/Value Format
Requests are constructed by concatenating fields and values, separated by ampersands:
TERMID=MYTERM01&PASS=mypass&TYPE=W&ACTION=StartSession&AMT=125.00&[email protected]
Field values must be URL-encoded to allow special characters. If an ampersand (&) is needed within a field value, send it as a double ampersand (&&) to avoid confusion with field separators.
For structured data, fields can represent groups using nested brackets:
&PYMTS=[DATE=20260401&AMT=125.00][DATE=20260501&AMT=135.00]
JSON Format
Requests can be submitted as JSON in the body of a POST request with Content-Type: application/json:
{
"TERMID": "MYTERM01",
"PASS": "mypass",
"TYPE": "W",
"ACTION": "StartSession",
"AMT": "125.00",
"CUSTEMAIL": "[email protected]"
}Structured data uses arrays of objects:
{
"PYMTS": [
{ "DATE": "20260401", "AMT": "125.00" },
{ "DATE": "20260501", "AMT": "135.00" }
]
}GET vs POST
| Method | How to send data | When to use |
|---|---|---|
| GET | Fields in the query string | Quick browser-based testing |
| POST | Fields in the query string or the request body (tag/value or JSON) | Production integrations |
Both methods produce the same result. GET is useful for early testing — you can paste a request URL into a browser and see the response directly.
Response Format
The gateway matches the response format to your request:
| You send | You get back | Content-Type |
|---|---|---|
| Tag/value | Tag/value | text/plain |
| JSON body | JSON | application/json |
Tag/value with JSON=Y | JSON | application/json |
To force a JSON response regardless of request format, include JSON=Y as a parameter:
TERMID=MYTERM01&PASS=mypass&TYPE=W&ACTION=StartSession&AMT=125.00&JSON=Y
Standard Response Envelope
Every gateway response includes these fields:
| Field | Description |
|---|---|
CODE | Result code. 0000 means success. Any other value indicates an error or decline. |
TEXT | Human-readable result message (e.g. SUCCESS, APPROVED, DECLINED TEST, MISSING CUST EMAIL). |
DATE | Date the response was generated (YYYY-MM-DD). |
TIME | Time the response was generated (HH:MM:SS). |
DUR | Request processing duration in seconds (e.g. 0.412). |
Additional fields vary by request type and are documented in each method's Parameter Descriptions page.
Tag/value response example:
TEXT=SUCCESS&CODE=0000&SECUREID=1ef3a4c0-1234-6abc-b6f0-0607737344b4&URL=https://svra.interpaypos.com:1443/api/HOSTPYMT/pay/?SecureID=1ef3a4c0-1234-6abc-b6f0-0607737344b4&DATE=20260412&TIME=14:23:01&DUR=0.412
JSON response example:
{
"CODE": "0000",
"TEXT": "SUCCESS",
"SECUREID": "1ef3a4c0-1234-6abc-b6f0-0607737344b4",
"URL": "https://svra.interpaypos.com:1443/api/HOSTPYMT/pay/?SecureID=1ef3a4c0-1234-6abc-b6f0-0607737344b4",
"DATE": "2026-04-12",
"TIME": "14:23:01",
"DUR": "0.412"
}Approved-Transaction Fields
The following fields are added automatically when a financial transaction is approved:
| Field | When returned | Description |
|---|---|---|
AUTH | Approved transactions | Authorization number from the card network |
GATEREF | Approved financial transactions (Type E) | Gateway reference for settlement and reconciliation. Store this alongside your own transaction record. |
TOKEN | When card data was processed | Permanent token for reusing this card on future transactions |
HASH | When card data was processed | Hash of the card data for deduplication or fraud checks |
These fields will not appear on declines, validation errors, or non-financial calls.
HTTP Status Codes
The gateway always returns HTTP 200 OK, including for declines and errors. Always check the CODE field in the response body to determine the result — do not rely on the HTTP status code.
Error Handling
Errors are returned in the same format as the request with a non-0000 CODE and a descriptive TEXT message.
Example error response:
{
"CODE": "9014",
"TEXT": "MISSING CUST EMAIL",
"DATE": "20260412",
"TIME": "14:25:33",
"DUR": "0.003"
}Check CODE on every response. A value of 0000 means the request succeeded. Any 9xxx code indicates a validation or gateway error. Any 0xxx code (other than 0000) indicates a decline from the card network.
If a gateway server does not respond or returns a 99xx error code, retry the request on the other gateway server. See [Production] for server URLs.
XML Format
XML responses are also supported by including XML=Y in the request. The response will be returned with Content-Type text/xml. JSON is recommended for new integrations.
Updated 12 days ago
