PaySecure Pinless Web Services 2023:07:03:07

<back to all web services

TransactionStatusRequest

The following routes are available for this service:
POST/TransactionStatus

// @DataContract
export class InOutTimes
{

    public constructor(init?: Partial<InOutTimes>) { (Object as any).assign(this, init); }
}

// @DataContract
export class RequestTimestamps
{
    // @DataMember(EmitDefaultValue=false)
    public AppLayer: InOutTimes;

    // @DataMember(EmitDefaultValue=false)
    public ParentLookup: InOutTimes;

    // @DataMember(EmitDefaultValue=false)
    public RetryLookup: InOutTimes;

    // @DataMember(EmitDefaultValue=false)
    public GetCardData: InOutTimes;

    // @DataMember(EmitDefaultValue=false)
    public CardTokenize: InOutTimes;

    // @DataMember(EmitDefaultValue=false)
    public CardEncrypt: InOutTimes;

    // @DataMember(EmitDefaultValue=false)
    public DBInsert: InOutTimes;

    // @DataMember(EmitDefaultValue=false)
    public BackendProcess: InOutTimes;

    // @DataMember(EmitDefaultValue=false)
    public DBUpdate: InOutTimes;

    // @DataMember(EmitDefaultValue=false)
    public ParentUpdate: InOutTimes;

    // @DataMember(EmitDefaultValue=false)
    public Network: InOutTimes;

    public constructor(init?: Partial<RequestTimestamps>) { (Object as any).assign(this, init); }
}

// @DataContract
export class PaysecureResponseInternal
{
    // @DataMember(EmitDefaultValue=false)
    public Timestamps: RequestTimestamps;

    public constructor(init?: Partial<PaysecureResponseInternal>) { (Object as any).assign(this, init); }
}

export class Transaction
{
    public TranId: string;
    public Status: string;
    public ApprovalCode: string;
    public ResponseCode: string;
    public TransactionDT: string;
    public TransactionAmount: number;
    public Network: string;
    public ApprovedAmount: number;
    public OpenAmount: number;
    public ParentTranId: string;
    public ExternalIds: string[];
    public LocalDateTime: string;
    public CurrencyCode: string;
    public AVS: string;
    public CVN: string;

    public constructor(init?: Partial<Transaction>) { (Object as any).assign(this, init); }
}

// @DataContract
export class TransactionStatus extends PaysecureResponseInternal
{
    // @DataMember
    public History: Transaction;

    // @DataMember
    public ErrorMessage: string;

    // @DataMember
    public ErrorCode: string;

    public constructor(init?: Partial<TransactionStatus>) { super(init); (Object as any).assign(this, init); }
}

export class RequestorCredentials
{
    // @Required()
    public MerchantId: string;

    // @Required()
    public UserName: string;

    // @Required()
    public Password: string;

    // @Required()
    public Version: string;

    public constructor(init?: Partial<RequestorCredentials>) { (Object as any).assign(this, init); }
}

export enum OriginalDataType
{
    TransactionId = 1,
    ReferenceKey = 2,
    ExternalId = 3,
    InternalTransactionId = 4,
}

export class OriginalTransaction
{
    public OriginalIdentifierType: OriginalDataType;
    public OriginalDataIdentifier: string;

    public constructor(init?: Partial<OriginalTransaction>) { (Object as any).assign(this, init); }
}

// @DataContract
export class TransactionStatusRequest
{
    // @DataMember
    public Credentials: RequestorCredentials;

    // @DataMember
    public OriginalData: OriginalTransaction;

    public constructor(init?: Partial<TransactionStatusRequest>) { (Object as any).assign(this, init); }
}

TypeScript 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
		}
	}
}