Process Transactions
- Process an ACH (Electronic Check) transaction.
- Process a keyed credit card transaction.
- Process a tokenized transaction.
- You can also re-bill via a Schedule ID from a previously created recurring schedule.
- You can re-bill via a previous Transaction ID.
- If you have uploaded ACH/Card data it can be re-billed via a Vault ID.
Parameters
ACH
required | name | format | description |
---|---|---|---|
* | achRoutingNumber | Valid Check Routing Number | ACH Routing Number |
* | achAccountNumber | Valid Check Account Number, Max Length 17 | ACH Account Number |
* | achAccountType | SAVINGS | CHECKING | SAVINGS - Savings Account CHECKING - Checking Account |
* | achType | PPD | CCD |
PPD - Consumer Account
CCD - Business Account
|
ACH WEB
Create an ACH WEB transaction using a plaidAccessToken
.
required | name | format | description |
---|---|---|---|
* | plaidAccessToken | string |
|
Keyed Card
Please consider the PCI Implications of transmitting full card number data.
required | name | format | description |
---|---|---|---|
* | cardNumber | Valid Credit Card Number. |
Credit/Debit Card Number NOTE: Please consider the PCI Implications of transmitting full card number data. |
* | cardExpMonth | 1-12, Ex: 8 | Expiration Month. |
* | cardExpYear | 4 Digit Format. Ex: 2015 | Expiration Year. |
cardCvv | Valid CVV. Max Length 4 | Card Verification Value. |
Token
required | name | format | description |
---|---|---|---|
* | tokenId | Valid Token ID | A Token ID created using Tokenization SDK. |
Re-Bill by Schedule ID
required | name | format | description |
---|---|---|---|
* | scheduleId | Valid Schedule ID | A Schedule ID from a previously created recurring schedule. |
Re-Bill by Transaction ID
required | name | format | description |
---|---|---|---|
* | transactionId | Valid Transaction ID | A Transaction ID from a previously charged transaction. |
Re-Bill by Vault ID
required | name | format | description |
---|---|---|---|
* | vaultId | Valid Vault ID | A Vault ID from a previously stored account. |
achType | PPD | CCD | Required for ACH Vaults. ACH Type for this transaction. This is optional. If not present, the default ACH Type for the Vault will be used. PPD - Consumer Account CCD - Business Account |
Credit Card Security
required | name | format | description |
---|---|---|---|
avs | ADDRESS ZIP ADDRESS_AND_ZIP ADDRESS_OR_ZIP BYPASS OFF |
This will check the billingAddress and billingZip. OFF - Do not run AVS
NOTES: - Test values for Labs environment here. - Setting passed through the API will override the backend settings. |
|
cvv | ON | OFF |
ON - CVV check on. NOTES: - Test values for Labs environment here. - Setting passed through the API will override the backend settings. |
|
cardCvv | String | The CVV code from the card. |
Transaction Fields
All amount* fields have a max value of 1,000,000. Amounts higher than 1,000,000 will cause a validation error.
required | name | format | description |
---|---|---|---|
status | HOLD | CAPTURE | VOID | Transaction Status affects whether or not the transaction will be settled. More Details | |
terminalId | Valid Terminal Id |
The terminal on which to run the transaction. If no terminal is specified, transaction will run on API user's default terminal. NOTE: If no terminalId is specified when re-billing by transactionId, the system will attempt to bill to the same terminal as used in the original transaction. If it is not available, the user's default will be used. For ACH WEB transactions using a |
|
action | CHARGE | REFUND | VERIFY |
Action to perform. Charge the account, refund the account, or verify the account. Verifying accounts are only supported for cards and will run a zero dollar authorization to verify the card number.
Note: In ACH terms charge is a debit and refund is a credit, but we use the terms charge and refunds for both transaction types. If not present, the default value of CHARGE will be used. |
|
amountBase | Money, Format: X.XX Ex: 1000.00 or $1,000.00 |
Base amount to charge. This is required for ACH, Credit Card and Re-Bill Vault ID. If omitted on a Re-Bill by Transaction ID then the amount from the initial transaction will be used.
Note: This is not required when doing an action=VERIFY to verify a card number. |
|
amountShipping | Money, Format: X.XX Ex: 1000.00 or $1,000.00 |
If you want to track separate shipping amounts use this parameter. | |
amountTip | Money, Format: X.XX Ex: 1000.00 or $1,000.00 |
If you want to add a tip to the transaction then use this parameter. | |
amountReject | Money, Format: X.XX Ex: 1000.00 or $1,000.00 |
If you are re-billing a rejected ACH transaction and you want to charge a reject fee then use this parameter. | |
amountTax | Money, Format: X.XX Ex: 1000.00 or $1,000.00 |
If you are billing tax then use this parameter. | |
amountSurcharge | Money, Format: X.XX Ex: 1000.00 or $1,000.00 |
If you want to add a surcharge to the transaction then use this parameter. |
Billing Contact
required | name | format | description |
---|---|---|---|
billingIdentifier | Max Length 64 | Billing customer id. If you have your own customer ID you want to associate with the transaction. | |
* |
billingFirstName | Max Length 16 |
Billing first name. Required for ACH PPD and ACH WEB transactions. |
billingMiddleName | Max Length 32 | Billing middle name. | |
* |
billingLastName | Max Length 32 |
Billing last name. Required for ACH PPD and ACH WEB transactions. |
* | billingCompanyName | Max Length 64 |
Billing company name. Required for ACH CCD transactions. |
billingJobTitle | Max Length 32 | Billing job title. Ex: President | |
billingPhone | Max Length 24 | Billing phone number. | |
billingPhone2 | Max Length 24 | Billing alternate phone number. | |
billingAddress | Max Length 128 | Billing street address.
Test values for Labs environment here. |
|
billingCity | Max Length 32 | Billing city. | |
billingState | Max Length 32 | Billing state. | |
billingZip | Max Length 12 |
Billing zip. Test values for Labs environment here. |
|
billingCountry | Max Length 32 | Billing country. | |
billingEmail | Max Length 128 | Billing email. | |
billingWebsite | Max Length 128 | Billing website. |
Shipping Contact
required | name | format | description |
---|---|---|---|
shippingIdentifier | Max Length 64 | Shipping customer id. If you have your own customer ID you want to associate with the transaction. | |
shippingFirstName | Max Length 16 | Shipping first name. | |
shippingMiddleName | Max Length 32 | Shipping middle name. | |
shippingLastName | Max Length 32 | Shipping last name. | |
shippingCompanyName | Max Length 64 | Shipping company name. | |
shippingJobTitle | Max Length 32 | Shipping job title. Ex: President | |
shippingPhone | Max Length 24 | Shipping phone number | |
shippingPhone2 | Max Length 24 | Shipping alternate phone number. | |
shippingAddress | Max Length 128 | Shipping street address | |
shippingCity | Max Length 32 | Shipping city. | |
shippingState | Max Length 32 | Shipping state | |
shippingZip | Max Length 12 | Shipping zip. | |
shippingCountry | Max Length 32 | Shipping country. | |
shippingEmail | Max Length 128 | Shipping email address. | |
shippingWebsite | Max Length 128 | Shipping website. |
Other Fields
required | name | format | description |
---|---|---|---|
invoiceNumber | Max Length 32 |
Invoice number. If you would like to include an invoice number on the transaction for accounting. Note: To bypass Duplicate Transaction Blocking, send a different invoice number for each "duplicate transaction". A Duplicate Transaction is a transaction that includes the same card number and same amount, processed within 10 minutes of each other. |
|
purchaseOrderNumber | Max Length 32 | Purchase order number. If you would like to mark this transaction with your own PO for accounting. | |
note | Max Length 2048 | A note field for you to annotate the transaction. |
Example Request in the "Labs Demo" account:
The example below is only sending the minimum mandatory fields.
Please note you will need to replace the API User/PW and the Application Key with you specific values.
curl -X POST -u "pj-ql-01:pj-ql-01p" -H "Accept: application/json" -H "X-PJ-Application-Key: c0d73641-65ae-4e9b-bbab-fb6215d7ee98" \
-d "cardNumber=4444333322221111" \
-d "cardExpMonth=01" \
-d "cardExpYear=2025" \
-d "amountBase=1901.00" \
"https://api.payjunctionlabs.com/transactions"
Example Response
API version 2020-04-13 or above required to receive the service field in transaction response detail
{ "transactionId": 3601, "uri": "https://api.payjunction.com/transactions/3601", "terminalId": 1, "action": "CHARGE", "amountBase": "1.00", "amountTax": "1.00", "amountShipping": "1.00", "amountTip": "1.00", "amountSurcharge": "1.00", "amountTotal": "5.00", "invoiceNumber": "Invoice 5", "method": "KEYED", "purchaseOrderNumber": "Custom PO", "service": "API", "signatureStatus": "SIGNED", "status": "CAPTURE", "created": "2013-11-18T22:15:32Z", "lastModified": "2013-11-18T22:15:32Z", "response": { "approved": true, "code": "00", "message": "Approved", "processor": { "authorized": true, "approvalCode": "PJ20AP", "avs": { "status": "REQUESTED", "requested": "BYPASS", "match": { "ZIP": true, "ADDRESS": true } }, "cvv": { "status": "NOT_REQUESTED" } } }, "settlement": { "settled": false }, "vault": { "type": "CARD", "accountType": "VISA", "lastFour": "1111" }, "billing": { "firstName": "John", "middleName": "J", "lastName": "Doe", "companyName": "PayJunction", "email": "jdoe@payjunction.com", "phone": "8006010230 x2", "phone2": "8006010230 x2", "jobTitle": "Support", "identifier": "Billing Customer id", "website": "http://www.payjunction.com", "address": { "address": "1903 State St", "city": "Santa Barbara", "state": "CA", "country": "USA", "zip": "93101" } }, "shipping": { "firstName": "Jane", "middleName": "J", "lastName": "Doe", "companyName": "PayJunction", "email": "janedoe@payjunction.com", "phone": "8006010230 x2", "phone2": "8006010230 x2", "jobTitle": "Support", "identifier": "Shipping Customer Id", "website": "https://www.payjunction.com", "address": { "address": "1903 State St", "city": "Santa Barbara", "state": "CA", "country": "USA", "zip": "93101" } } }
Example Request for ACH WEB
curl -X POST https://api.payjunction.com/transactions \
-u "login:password" \
-H "Accept: application/json" \
-H "X-PJ-Application-Key: YOUR_PRODUCTION_APP_KEY" \
-d "plaidAccessToken=access-production-1f5c0cbd-1fa8-490f-ab61-1d4e57fb4ec1" \
-d "billingFirstName=first" \
-d "billingLastName=last" \
-d "amountBase=1.00"
Example Response for ACH WEB
{
"transactionId" : 1775,
"uri" : "https://api.payjunction.com/transactions/1775",
"terminalId" : 11657,
"action" : "CHARGE",
"achType" : "WEB",
"amountBase" : "1.00",
"amountTotal" : "1.00",
"method" : "PLAID",
"service" : "API",
"status" : "CAPTURE",
"created" : "2022-09-08T21:28:54Z",
"lastModified" : "2022-09-08T21:28:53Z",
"response" : {
"approved" : true,
"code" : "00",
"message" : "Approved"
},
"settlement" : {
"settled" : false
},
"vault" : {
"type" : "ACH",
"accountType" : "CHECKING",
"lastFour" : "6789",
"achRoutingNumber" : "121000358"
},
"billing" : {
"firstName" : "first",
"lastName" : "last"
}
}