FroogalPay

Base URL: /JSON/TransactionService.svc, Version: 2.0.1

Build something great with the payment Industries Simplest API!

Once you've registered it's easy to start querying our api.

Our production endpoints are only accessible via https and are located at payment.froogalit.com/JSON/TransactionService.svc

Please make sure your HTTP client supports SNI (Server Name Indication).

Contact Us if you need sample code or any help.

Query parameters

Each query accepts the 4 authentication parameters : username, password, apikey and devicecode.

username : This is the username of the current user. You can manage your users via our website here.

password : Corresponding password for the provided username. This field is not required and is only used to perform an additional security check.

apikey : This is your API Key. You can view your API keys here.

devicecode : Leave this field blank if you'll be using only 1 device, otherwise if you wish to manage seperate devices for reporting use you can manage additional devices here.

Default response content-types: application/json
Schemes: https

Summary

Path Operation Description
/AddCardToVault GET

Adds the card to the card vault. Card can then be processed by calling /CardVaultTransaction

/CardVaultTransaction GET

Perform card vault transaction.

/CreateRecurringBilling GET

Before creating a recurring billing rule you must add a card to the card vault and keep the original transaction id. EveryDay = 54, EveryWeek = 38, Every_2_Weeks = 40, Every_3_Weeks = 42, Every_4_Weeks = 43, Every_5_Weeks = 44, Every_6_Weeks = 45, Every_7_Weeks = 46, Every_8_Weeks = 47, EveryMonth = 49, Every_2_Months = 50

/CreditTransaction GET

Perform credit card transaction.

/ACHTransaction GET

Perform an ACH transaction.

/CreateTransaction GET

Process Credit or ACH transaction.

/GetLastCreditTransaction GET

Gets the last credit transaction.

/GetPrice GET

Gets the price for the current device.

/PreTransaction GET

Saves pre transaction informations for future payment. User will have to keep UniqueId in his records to process this transaction in the future.

/GetAssociatedTransactions GET

Get all transactions associated to the given preTransaction.

/ProcessPreTransaction GET

Process a pre transaction via API calls. Otherwise hosted payment page is available at : https://payment.froogalit.com/Payment?preTransact={UniqueId}

/ReprintCredit GET

Get credit transaction informations for given transaction id.

/ReSendInvoice GET

Send the payment confirmation and get the transaction.

/ReturnTransaction GET

Refund a previously settled transaction (possible to refund only a part of the transaction by specifying an amount)

/UpdateCardInVault GET

Updates card vault informations

/ValidateCredentials GET

Validates if the entered credentials are valid for performing any action with the API.

/VoidTransaction GET

Void a previously unsettled transaction (usually wihtin the same day)

Paths

Adds the card to the card vault. Card can then be processed by calling /CardVaultTransaction

GET /AddCardToVault

This query can be used in 2 different scenarios:

  1. With an IDTech reader : you will only need to pass the following parameters : username, apikey, ksn, track1.
  2. Manual input : leave ksn and track1 parameters empty.
username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string
ksn

KSN (provide when using card reader)

query string
track1

Track1 (provide when using card reader)

query string
name

Cardholder Name

query string
streetaddress

Street Adress

query string
city

City

query string
state

State

query string
zipcode

Zip Code

query string
cardnumber

Card Number

query string
expdate

Expiration Date (MMYY)

query string
cvv

CVV Code

query string
email

Email

query string

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Perform card vault transaction.

GET /CardVaultTransaction

username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string
amount

Transaction amount

query number (double)
transactionId

/AddToCardVault transaction Id

query integer (int64)
invoice

Invoice number (if applicable)

query string
paymentType

33 = InitialDeposit, 34 = AdditionalDeposit, 35 = FinalPayment

query integer (int64)

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Before creating a recurring billing rule you must add a card to the card vault and keep the original transaction id. EveryDay = 54, EveryWeek = 38, Every_2_Weeks = 40, Every_3_Weeks = 42, Every_4_Weeks = 43, Every_5_Weeks = 44, Every_6_Weeks = 45, Every_7_Weeks = 46, Every_8_Weeks = 47, EveryMonth = 49, Every_2_Months = 50

GET /CreateRecurringBilling

username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string
transactionId

TransactionId of the card vault transaction

query string
amount

Amount

query number (double)
frequency

View possible values in query description

query integer (int64)
beginDate

Recurring billing starting on (in "yyyy-MM-dd" format)

query string
endDate

Recurring billing ending on (in "yyyy-MM-dd" format)

query string

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Perform credit card transaction.

GET /CreditTransaction

This query can be used in 2 different scenarios:

  1. With an IDTech card reader : you will only need to pass the following parameters : username, apikey, amount, ksn, track1, addtovault.
  2. Manual input : leave ksn and track1 parameters empty.
username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string
amount

Transaction amount

query number (double)
ksn

KSN (provide when using card reader)

query string
track1

Track1 (provide when using card reader)

query string
name

Cardholder Name

query string
invoice

Invoice number (if applicable)

query string
streetaddress

Street Adress

query string
city

City

query string
state

State

query string
zipcode

Zip Code

query string
cardnumber

Card Number

query string
expdate

Expiration Date (MMYY)

query string
cvv

CVV Code

query string
email

Email

query string
addtovault

Add card to vault (performs same operation as /AddCardToVault)

query boolean
magstripeData

magstripeData

query string
secureFormat

secureFormat

query string
tax

tax

query string
gatewaycode

Payment processor identifier, available on the location webpage

query integer

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Perform an ACH Transaction.

GET /ACHTransaction

Process ACH Transactions

username

Username

query string
password

Password

query string
ApiKey

ApiKey

query string
Devicecode

Devicecode

query string
Amount

Transaction amount

query string
gatewaycode

Payment processor code

query string
name

name

query string
streetaddress

streetaddress

query string
city

city

query string
zipcode

zipcode

query string
title

title

query string
PO

purchase order number

query string
bankRouting

The bank routing number.

query string
accountNumber

Account Number

query string
socialSecurityNumber

Social Security Number

query string
driverLicenseNumber

Driver License Number

query string
yearOfBirth

Year of birth (4 digits format YYYY)

query string
Email

user email

query string
customField

JSON array of TransactionCustomField.

query string
Perform an ACH or a credit Transaction.

GET /CreateTransaction

This query can be used in 3 different scenarios:

  1. Credit transaction with an IDTech card reader : you will only need to pass the following parameters : username, apikey, ksn, track1.
  2. Credit transaction with manual input data : leave ksn and track1 parameters empty.
  3. ACH Transaction : ACH data bankRouting accountNumbersocialSecurityNumber/driverLicenseNumberyearOfBirth are required
username

Username

query string
password

Password

query string
ApiKey

ApiKey

query string
Devicecode

Devicecode

query string
Amount

Transaction amount

query string
gatewaycode

Payment processor code

query string
paymentmode

Credit payment or ACH payment.

query PaymentModeEnum
name

name

query string
streetaddress

streetaddress

query string
city

city

query string
zipcode

zipcode

query string
title

title

query string
PO

purchase order number

query string
bankRouting

The bank routing number.

query string  For ACH transactions
accountNumber

Account Number

query string  For ACH transactions
socialSecurityNumber

Social Security Number

query string
driverLicenseNumber

Driver License Number

query string
yearOfBirth

Year of birth (4 digits format YYYY)

query string
Email

user email

query string
customField

JSON array of TransactionCustomField.

query string
ksn

ksn.

query string
track1

track1.

query string
cardnumber

cardnumber.

query string
expdate

expdate.

query string
cvv

cvv.

query string
addtovault

addtovault.

query string
magstripeData

magstripeData.

query string
secureFormat

secureFormat.

query string

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Gets the last credit transaction.

GET /GetLastCreditTransaction

username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Gets the price for the current device.

GET /GetPrice

username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Saves pre transaction informations for future payment. User will have to keep UniqueId in his records to process this transaction in the future.

GET /PreTransaction

username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string
amount

Transaction amount

query number (double)
name

Cardholder Name

query string
autoDeactivate

The preTransaction will be deactivated after a payment.

query boolean
invoice

Invoice number (if applicable)

query string
streetaddress

Street Adress

query string
city

City

query string
state

State

query string
zipcode

Zip Code

query string
email

Email

query string
addtovault

Add card to vault (performs same operation as /AddCardToVault)

query boolean
successurl

Where the customer will be redirected after a successfull transaction

query string
failurl

Where the customer will be redirected in case of an invalid transaction

query string
gatewaycode

Payment processor identifier, available on the location webpage

query integer
customFields

JSON array of TransactionCustomField

query string
paymentmode

Available payment mode on checkout. Credit (58) is the default value.

query PaymentModeEnum

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Returns all transactions associated to a given preTransaction.

GET /GetAssociatedTransactions

username

Username

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string
uniqueId

Pretransaction uniqueId

query string

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Process a pre transaction via API calls. Otherwise hosted payment page is available at : https://payment.froogalit.com/Payment?preTransact={UniqueId}

GET /ProcessPreTransaction

username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string
uniqueid

UniqueId of pre transaction to process

query string
amount

Transaction amount

query number (double)
ksn

KSN (provide when using card reader)

query string
track1

Track1 (provide when using card reader)

query string
name

Cardholder Name

query string
invoice

Invoice number (if applicable)

query string
streetaddress

Street Adress

query string
city

City

query string
state

State

query string
zipcode

Zip Code

query string
cardnumber

Card Number

query string
expdate

Expiration Date (MMYY)

query string
cvv

CVV Code

query string
email

Email

query string
addtovault

Add card to vault (performs same operation as /AddCardToVault)

query boolean
magstripeData

magstripeData

query string

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Get credit transaction informations for given transaction id.

GET /ReprintCredit

username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string
transactionid

Transaction Id

query string

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Send the payment confirmation e-mail anf get the transaction informations for given transaction id.

GET /ReSendInvoice

username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string
transactionid

Transaction Id

query string

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Refund a previously settled transaction (possible to refund only a part of the transaction by specifying an amount)

GET /ReturnTransaction

username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string
transactionId

TransactionId to refund

query string
amount

Amount to refund (transaction will be refunded completely if not specified)

query number (double)

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Updates card vault informations

GET /UpdateCardInVault

username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string
transactionId

/AddToCardVault transaction Id

query integer (int64)
ksn

KSN (provide when using card reader)

query string
track1

Track1 (provide when using card reader)

query string
name

Cardholder Name

query string
streetaddress

Street Adress

query string
city

City

query string
state

State

query string
zipcode

Zip Code

query string
cardnumber

Card Number

query string
expdate

Expiration Date (MMYY)

query string
cvv

CVV Code

query string
email

Email

query string

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Validates if the entered credentials are valid for performing any action with the API.

GET /ValidateCredentials

username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Void a previously unsettled transaction (usually wihtin the same day)

GET /VoidTransaction

username

Username

query string
password

Password (for additional security)

query string
apikey

API Key

query string
devicecode

Device Code (if using multiple devices)

query string
transactionId

TransactionId to void

query string

Uses default content-types: application/json

200 OK

Successful response

400 Bad Request

Error response

Schema definitions

CreateRecurringResponse: object

Status: string

always 'success'

Message: string

Additional informations

Data: CreateRecurringResponseData

CreateRecurringResponseData: object

RecurringId: integer (int64)

Recurring id

Amount: integer (int64)

Recurring amount

Frequency: string

Frequency returned in human readable format

BeginDate: string

Recurring billing starting on

EndDate: string

Recurring billing ending on

Active: boolean

Is active

NumberOfProcessedPayments: integer (int64)

Number of processed payments

CreditTransactionResponse: object

Status: string

always 'success'

Code: Integer

TransactionResponse Code

Message: string

Additional informations

Data: CreditTransactionResponseData
Customer: Customer

CreditTransactionResponseData: object

TransactionId: integer (int64)

transaction id

AuthNumber: string

auth number returned by payment processor.

CardNumber: string

Last 4 digits of card number. Not returned when performing a swipped transaction.

CardholderName: string

Cardholder name. Not returned when performing a swipped transaction.

Amount: number (double)

Amount billed.

CardType: string

Credit card type. (VISA, MasterCard, AMEX, Other)

ExpDate: string

Expiration date.

Invoice: string

Invoice number.

TransactionResponse: object

Status: string

always 'success'

Code: Integer

TransactionResponse Code

Message: string

Additional informations

Data: TransactionResponseData
Customer: Customer

TransactionResponseData: object

TransactionId: integer (int64)

transaction id

AuthNumber: string

auth number returned by payment processor.

AccountNumber: string

Last 4 digits of the account number. Not returned when performing a swipped transaction.

CardholderName: string

Cardholder name. Not returned when performing a swipped transaction.

holderName: string

holder name.

Amount: number (double)

Amount billed.

CardType: string

Credit card type. (VISA, MasterCard, AMEX, Other)

ExpDate: string

Expiration date.

Invoice: string

Invoice number.

Customer: object

Name: string

name

Address: string

address

City: string

city

State: string

state

ZipCode: string

zip code

ErrorResponse: object

Status: string

always 'error'

Message: string

Error description

GetPriceResponse: object

Status: string

always 'success'

Message: string

Additional informations

Data: GetPriceResponseData

GetPriceResponseData: object

Price: number (double)

price for the current device

ReceiptCode: string

receipt code for the current device

LoginResponse: object

Status: string

always 'success'

Message: string

Additional informations

Data: LoginResponseData

LoginResponseData: object

Id: integer (int64)

user id

Username: string

username

FirstName: string

First name

LastName: string

Last name

Permissions: integer[]

Array of available permissions id

integer (int64)

PreTransactionResponse: object

Status: string

always 'success'

Message: string

Additional informations

Data: PreTransactionResponseData
Customer: Customer

BatchTransactionResponse: object

Status: string

always 'success'

Message: string

Additional informations

Data: List of TransactionResponseData

PreTransactionResponseData: object

PreTransactionId: integer (int64)

pre transaction id

UniqueId: string

UniqueId to keep for future pre transaction operations.

TransactionCustomField: object

CustomFieldName: string

The custom field name

Value: string

The custom field value

VoidedTransactionResponse: object

Status: string

always 'success'

Message: string

Additional informations

Data: VoidedTransactionResponseData
Customer: Customer

VoidedTransactionResponseData: object

TransactionId: integer (int64)

Originial transaction id

VoidId: integer (int64)

void transaction id

AuthNumber: string

PNRef returned by payment processor.

TransCode: string

auth code returned by payment processor.

PaymentModeEnum: Enum

Credit: 58

Only credit option will be available on checkout for PreTransaction.

ACH: 68

Only ACH option will be available on checkout for PreTransaction.

All: 78

The user will choose the payment mode on checkout for PreTransaction.

Code: integer

-100 Not processed

Transaction not processed; generic host error.

0 Success

Transaction was successful.

1 Failed

Authentication failed.

2 Rejected

Transaction was rejected by processor.

4 Invalid data

Invalid amount.

5 Invalid data

Invalid merchant informations.

7 Invalid data

Invalid CVNumber.

12 Declined

Declined by the card issuer.

19 Invalid data

Original transaction ID not found.

20 Invalid data

Customer reference number not found.

22 Invalid data

Invalid ABA Number.

23 Invalid data

Invalid account number.

24 Invalid data

Invalid EXPDate.

28 Invalid data

Invalid check holder name.

50 Invalid amount

Insufficient funds available.

99 Unknown

Unknown Transaction Failure.

101 Timeout

Timeout value too small or invalid timeout value.

102 Processor error.

Processor not available.

103 Processor error.

Error reading response from host.

104 Processor error.

Timeout waiting for processor response.

108 Void error.

Void error.

110 Transaction error.

Duplicate transaction.

113 Invalid amount.

Cannot exceed sales cap.

501 DecryptionFailure

Unable to decrypt secure transaction due to invalid data or invalid decryption keys.

502 UnregisteredKSID

Secure device's ID is not registered as a SecureLink device.

503 InvalidSecureFormat

Unrecognized or missing SecureFormat in ExtData.

504 InvalidSecureTrack1.

Invalid or missing Track1 in ExtData.

505 InvalidSecureTrack2

Invalid or missing Track2 in ExtData.

506 InvalidSecurityInfo

Invalid or missing SecurityInfo in ExtData.

507 NeedSecureLinkAccount

User is not authorized for SecureLink transactions.

508 NeedSecureLinkEULA

User has not yet signed the SecureLink license agreement.

509 InvalidDecryptedTrack1

Track1 decrypted OK but is malformed. Causes: Invalid decryption keys or SecureFormat.

510 InvalidDecryptedTrack2

Track2 decrypted OK but is malformed. Causes: Invalid decryption keys or SecureFormat.

702 Invalid Data

Invalid ExpDate.

1000 Host error

Generic host error.

1001 Invalid data

Invalid login.

1002 Invalid Data

Insufficient privilege or invalid amount.

1006 Invalid Data

Unsupported processor.

1006 Processor error

Error checking duplicate.