PayGate Direct API responses may return different types of messages depending on the transaction outcome. Each response includes transaction status details and, when applicable, redirect information.
Overview of Response Types
| Status Name | Description |
|---|---|
Completed | Transaction was successful. |
Pending | Transaction is pending further processing. |
Cancelled | Transaction was cancelled. |
Error | An error occurred while processing the transaction. |
ValidationError | One or more request parameters failed validation. |
ThreeDSecureRedirectRequired | 3D Secure authentication is required. |
WebRedirectRequired | User must be redirected to complete payment. |
Response Fields
All response types include a Status block. The following fields may be returned based on the response context:
| Field | Description | Type |
|---|---|---|
TransactionId | Unique reference number assigned by PayGate. | Number(11) |
Reference | Your own reference value (e.g. invoice or order number). | Varchar(80) |
AcquirerCode | Status code from the acquiring bank. | String |
StatusName | High-level transaction status. See status names above. | String |
StatusDetail | Additional status details. | Varchar(80) |
AuthCode | Acquirer’s authorisation code. | Varchar(10) |
PayRequestId | Unique identifier for this payment request. | Varchar(36) |
VaultId | Token associated with the card (if PayVault used). | String |
VaultData1, VaultData2 | Info for managing the PayVault token (optional). | Varchar(50) |
TransactionStatusCode | Numeric code representing the transaction status. | Number(1) |
TransactionStatusDescription | Description of transaction status. | Varchar(80) |
ResultCode | Numeric code indicating the result of processing. | Number(11) |
ResultDescription | Description of the result code. | Varchar(80) |
Currency | 3-letter ISO currency code used. | Char(3) |
Amount | Amount in cents (e.g. 3295 = R32.95). | Number(11) |
RequestedCurrency | Original request currency code (PayFX only). | Char(3) |
RequestedAmount | Original amount in request currency (PayFX only). | Number(11) |
ConversionRate | Conversion rate used for PayFX. | Decimal |
RiskIndicator | 2-character indicator for 3D Secure status and future use. | Char(2) |
Payment | Payment method used (e.g. CC for credit card). | PaymentType |
BillingDescriptor | Text shown on customer bank statement (if supported). | Varchar(45) |
UserDefinedField | Custom user-defined fields. | UserDefinedFieldType |
Redirect Response
If redirection is required (e.g. for 3D Secure), a Redirect object is included:
| Field | Description |
|---|---|
RedirectUrl | The URL to which the customer must be redirected. |
KeyValuePairs | List of parameters (key-value) to include in the redirect POST message. |
Example:
<Redirect>
<RedirectUrl>https://secure.paygate.co.za/PayHost/redirect.trans</RedirectUrl>
<UrlParams>
<key>PAYGATE_ID</key>
<value>10011013800</value>
</UrlParams>
<UrlParams>
<key>PAY_REQUEST_ID</key>
<value>5FC0E808-27EB-7A69-64BF-8163B2837869</value>
</UrlParams>
<UrlParams>
<key>CHECKSUM</key>
<value>7fe36c62991df6de51b09db0c6fd6r29</value>
</UrlParams>
</Redirect>
Example: Successful Non-Redirect Response
<SinglePaymentResponse>
<CardPaymentResponse>
<Status>
<TransactionId>28791836</TransactionId>
<Reference>YourInvoiceNumber1414070789678</Reference>
<AcquirerCode>00</AcquirerCode>
<StatusName>Completed</StatusName>
<AuthCode>FU6FWP</AuthCode>
<PayRequestId>A23EF01C-D1E7-4F77-B50D-CEE28B3D4ACC</PayRequestId>
<TransactionStatusCode>1</TransactionStatusCode>
<TransactionStatusDescription>Approved</TransactionStatusDescription>
<ResultCode>990017</ResultCode>
<ResultDescription>Auth Done</ResultDescription>
<Currency>ZAR</Currency>
<Amount>113</Amount>
<RiskIndicator>XX</RiskIndicator>
<PaymentType>
<Method>CC</Method>
<Detail>MasterCard</Detail>
</PaymentType>
</Status>
</CardPaymentResponse>
</SinglePaymentResponse>
Example: Successful Response with Tokenisation
<SinglePaymentResponse>
<CardPaymentResponse>
<Status>
<TransactionId>28793400</TransactionId>
<Reference>YourInvoiceNumber1414583977479</Reference>
<AcquirerCode>00</AcquirerCode>
<StatusName>Completed</StatusName>
<AuthCode>8TDDFD</AuthCode>
<PayRequestId>B897CD11-D0BE-50E3-68C9-7FB34B5C5C9B</PayRequestId>
<VaultId>62a083d3-1f7c-474a-bd95-87387323dde0</VaultId>
<PayVaultData>
<cardNumber>xxxxxxxxxx0015</cardNumber>
<expDate>012021</expDate>
</PayVaultData>
<VaultData2>112030</VaultData2>
<TransactionStatusCode>1</TransactionStatusCode>
<TransactionStatusDescription>Approved</TransactionStatusDescription>
<ResultCode>990017</ResultCode>
<ResultDescription>Auth Done</ResultDescription>
<Currency>ZAR</Currency>
<Amount>113</Amount>
<RiskIndicator>XX</RiskIndicator>
<PaymentType>
<Method>CC</Method>
<Detail>MasterCard</Detail>
</PaymentType>
</Status>
</CardPaymentResponse>
</SinglePaymentResponse>
Example: Redirect Required for Web Payment
<SinglePaymentResponse>
<WebPaymentResponse>
<Status>
<StatusName>WebRedirectRequired</StatusName>
<StatusDetail>Web Redirect Required To Complete Transaction</StatusDetail>
</Status>
<Redirect>
<RedirectUrl>https://secure.paygate.co.za/PayHost/process.trans</RedirectUrl>
<UrlParams>
<key>PAY_REQUEST_ID</key>
<value>18BBC8A5-FCFC-85AC-5733-F3EC906FD7E9</value>
</UrlParams>
<UrlParams>
<key>PAYGATE_ID</key>
<value>10011013800</value>
</UrlParams>
<UrlParams>
<key>CHECKSUM</key>
<value>FBDDDA576EC2A0907FECA5F776C07095</value>
</UrlParams>
</Redirect>
</WebPaymentResponse>
</SinglePaymentResponse>