PaySecure Pinless Web Services 2023:07:03:07

<back to all web services

AchAuthorizeDebitRequest

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


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

    @DataMember
    var ACHToken:ACHTokenDescriptor? = null

    @DataMember
    var Amount:Int? = null

    @DataMember
    var ReferenceKey:String? = null

    @DataMember
    var Custom1:String? = null

    @DataMember
    var Custom2:String? = null

    @DataMember
    var Custom3:String? = null

    @DataMember
    var Custom4:String? = null

    @DataMember
    var Custom5:String? = null

    @DataMember
    var SignatureHash:String? = null

    @DataMember
    var CurrencyCode:String? = null

    @DataMember
    var ExtendedData:ACHExtendedData? = 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 ACHTokenDescriptor
{
    var ACHTokenType:ACHType? = null
    var ACHTokenData:String? = null
}

enum class ACHType
{
    Token,
    CpToken,
}

@DataContract
open class ACHExtendedData
{
    @DataMember
    var CashbackAmount:Int? = null

    @DataMember
    var ConnectPaySubScriberId:String? = null

    @DataMember
    var OrganizationId:String? = null

    @DataMember
    var DeviceFingerPrint:String? = null

    @DataMember
    var MerchantSessionId:String? = null

    @DataMember
    var CurrencyCode:String? = null

    @DataMember
    var PaymentType:String? = null

    @DataMember
    var VerifyCustomer:Boolean? = null

    @DataMember
    var CustomerExternalId:String? = null

    @DataMember
    var Description:String? = null

    @DataMember
    var CustomerName:String? = null

    @DataMember
    var AddressLine1:String? = null

    @DataMember
    var AddressLine2:String? = null

    @DataMember
    var City:String? = null

    @DataMember
    var State:String? = null

    @DataMember
    var Zip:String? = null

    @DataMember
    var Country:String? = null

    @DataMember
    var Email:String? = null

    @DataMember
    var TelephoneNumber:String? = null

    @DataMember
    var ReturnUrl:String? = null

    @DataMember
    var CancelUrl:String? = null

    @DataMember
    var EstablishData:String? = null

    @DataMember
    var RedirectUrl:String? = null

    @DataMember
    var RetryAttemptCount:Int? = null

    @DataMember
    var SignatureHashVersion:String? = null

    @DataMember
    var DeadlineHashDate:Date? = null
}

@DataContract
open class AchAuthorizeDebit : AchPaysecureVersion()
{
    @DataMember
    var TranId:String? = null

    @DataMember
    var ApprovalCode:String? = null

    @DataMember
    var ResponseCode:String? = null

    @DataMember
    var Network:String? = null

    @DataMember
    var ApprovedAmount:Int? = null

    @DataMember
    var ErrorMessage:String? = null

    @DataMember
    var ErrorCode:String? = null

    @DataMember(EmitDefaultValue=false)
    var AchProviderDetails:AchProviderResponse? = null
}

@DataContract
open class AchPaysecureVersion : PaysecureResponseInternal()
{
    @DataMember(EmitDefaultValue=false)
    var LocalDateTime:String? = null

    @DataMember(EmitDefaultValue=false)
    var ExtendedData:ACHExtendedDataResponse? = 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
{
}

@DataContract
open class ACHExtendedDataResponse
{
    @DataMember(EmitDefaultValue=false)
    var NetworkResponseCode:String? = null

    @DataMember(EmitDefaultValue=false)
    var NetworkErrorCode:String? = null

    @DataMember(EmitDefaultValue=false)
    var DeclineReferenceCode:String? = null

    @DataMember(EmitDefaultValue=false)
    var NetworkTransactionId:String? = null
}

@DataContract
open class AchProviderResponse
{
    @DataMember
    var NetworkResponseCode:String? = null

    @DataMember
    var TransactionStatusCode:Int? = null
}

Kotlin AchAuthorizeDebitRequest DTOs

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

HTTP + CSV

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

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

{"Credentials":{"MerchantId":"String","UserName":"String","Password":"String","Version":"String"},"ACHToken":{"ACHTokenType":"Token","ACHTokenData":"String"},"Amount":0,"ReferenceKey":"String","Custom1":"String","Custom2":"String","Custom3":"String","Custom4":"String","Custom5":"String","SignatureHash":"String","CurrencyCode":"String","ExtendedData":{"CashbackAmount":0,"ConnectPaySubScriberId":"String","OrganizationId":"String","DeviceFingerPrint":"String","MerchantSessionId":"String","CurrencyCode":"String","PaymentType":"String","VerifyCustomer":false,"CustomerExternalId":"String","Description":"String","CustomerName":"String","AddressLine1":"String","AddressLine2":"String","City":"String","State":"String","Zip":"String","Country":"String","Email":"String","TelephoneNumber":"String","ReturnUrl":"String","CancelUrl":"String","EstablishData":"String","RedirectUrl":"String","RetryAttemptCount":0,"SignatureHashVersion":"String","DeadlineHashDate":"\/Date(-62135596800000-0000)\/"}}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"TranId":"String","ApprovalCode":"String","ResponseCode":"String","Network":"String","ApprovedAmount":0,"ErrorMessage":"String","ErrorCode":"String","AchProviderDetails":{"NetworkResponseCode":"String","TransactionStatusCode":0},"LocalDateTime":"String","ExtendedData":{"NetworkResponseCode":"String","NetworkErrorCode":"String","DeclineReferenceCode":"String","NetworkTransactionId":"String"},"Timestamps":{"AppLayer":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"ParentLookup":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"RetryLookup":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"GetCardData":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"CardTokenize":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"CardEncrypt":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"DBInsert":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"BackendProcess":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"DBUpdate":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"ParentUpdate":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"Network":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"}}}