PaySecure Pinless Web Services 2023:07:03:07

<back to all web services

TransactionStatusRequest

The following routes are available for this service:
POST/TransactionStatus
import java.math.*
import java.util.*
import net.servicestack.client.*


@DataContract
open class TransactionStatusRequest
{
    @DataMember
    var Credentials:RequestorCredentials? = null

    @DataMember
    var OriginalData:OriginalTransaction? = null
}

open class RequestorCredentials
{
    @Required()
    var MerchantId:String? = null

    @Required()
    var UserName:String? = null

    @Required()
    var Password:String? = null

    @Required()
    var Version:String? = null
}

open class OriginalTransaction
{
    var OriginalIdentifierType:OriginalDataType? = null
    var OriginalDataIdentifier:String? = null
}

enum class OriginalDataType(val value:Int)
{
    TransactionId(1),
    ReferenceKey(2),
    ExternalId(3),
    InternalTransactionId(4),
}

@DataContract
open class TransactionStatus : PaysecureResponseInternal()
{
    @DataMember
    var History:Transaction? = null

    @DataMember
    var ErrorMessage:String? = null

    @DataMember
    var ErrorCode:String? = null
}

@DataContract
open class PaysecureResponseInternal
{
    @DataMember(EmitDefaultValue=false)
    var Timestamps:RequestTimestamps? = null
}

@DataContract
open class RequestTimestamps
{
    @DataMember(EmitDefaultValue=false)
    var AppLayer:InOutTimes? = null

    @DataMember(EmitDefaultValue=false)
    var ParentLookup:InOutTimes? = null

    @DataMember(EmitDefaultValue=false)
    var RetryLookup:InOutTimes? = null

    @DataMember(EmitDefaultValue=false)
    var GetCardData:InOutTimes? = null

    @DataMember(EmitDefaultValue=false)
    var CardTokenize:InOutTimes? = null

    @DataMember(EmitDefaultValue=false)
    var CardEncrypt:InOutTimes? = null

    @DataMember(EmitDefaultValue=false)
    var DBInsert:InOutTimes? = null

    @DataMember(EmitDefaultValue=false)
    var BackendProcess:InOutTimes? = null

    @DataMember(EmitDefaultValue=false)
    var DBUpdate:InOutTimes? = null

    @DataMember(EmitDefaultValue=false)
    var ParentUpdate:InOutTimes? = null

    @DataMember(EmitDefaultValue=false)
    var Network:InOutTimes? = null
}

@DataContract
open class InOutTimes
{
}

open class Transaction
{
    var TranId:String? = null
    var Status:String? = null
    var ApprovalCode:String? = null
    var ResponseCode:String? = null
    var TransactionDT:String? = null
    var TransactionAmount:Int? = null
    var Network:String? = null
    var ApprovedAmount:Int? = null
    var OpenAmount:Int? = null
    var ParentTranId:String? = null
    var ExternalIds:ArrayList<String>? = null
    var LocalDateTime:String? = null
    var CurrencyCode:String? = null
    var AVS:String? = null
    var CVN:String? = null
}

Kotlin TransactionStatusRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /TransactionStatus HTTP/1.1 
Host: api.paysecure.acculynk.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Credentials: 
	{
		MerchantId: String,
		UserName: String,
		Password: String,
		Version: String
	},
	OriginalData: 
	{
		OriginalIdentifierType: TransactionId,
		OriginalDataIdentifier: String
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	History: 
	{
		TranId: String,
		Status: String,
		ApprovalCode: String,
		ResponseCode: String,
		TransactionDT: String,
		TransactionAmount: 0,
		Network: String,
		ApprovedAmount: 0,
		OpenAmount: 0,
		ParentTranId: String,
		ExternalIds: 
		[
			String
		],
		LocalDateTime: String,
		CurrencyCode: String,
		AVS: String,
		CVN: String
	},
	ErrorMessage: String,
	ErrorCode: String,
	Timestamps: 
	{
		AppLayer: 
		{
			InTime: 0001-01-01,
			OutTime: 0001-01-01
		},
		ParentLookup: 
		{
			InTime: 0001-01-01,
			OutTime: 0001-01-01
		},
		RetryLookup: 
		{
			InTime: 0001-01-01,
			OutTime: 0001-01-01
		},
		GetCardData: 
		{
			InTime: 0001-01-01,
			OutTime: 0001-01-01
		},
		CardTokenize: 
		{
			InTime: 0001-01-01,
			OutTime: 0001-01-01
		},
		CardEncrypt: 
		{
			InTime: 0001-01-01,
			OutTime: 0001-01-01
		},
		DBInsert: 
		{
			InTime: 0001-01-01,
			OutTime: 0001-01-01
		},
		BackendProcess: 
		{
			InTime: 0001-01-01,
			OutTime: 0001-01-01
		},
		DBUpdate: 
		{
			InTime: 0001-01-01,
			OutTime: 0001-01-01
		},
		ParentUpdate: 
		{
			InTime: 0001-01-01,
			OutTime: 0001-01-01
		},
		Network: 
		{
			InTime: 0001-01-01,
			OutTime: 0001-01-01
		}
	}
}