Legacy payments service · REST · v2.0.8

ProCharge API Deprecated

The complete legacy ProCharge (“EPI Payment Service”) REST API – card transactions, tokenization, batching, Cygma reporting, ACH, gift cards, receipts, and invoices – transcribed in full from the published swagger specification.

Read this first

Deprecation notice

These APIs are functioning but deprecated. Existing ProCharge integrations continue to operate and are documented here in full – but this API should not be used for new applications or integrations. No new features are being added, and new credentials are generally not issued.

Build new integrations on the platform’s current APIs instead:

  • Cygma API – direct card payments, tokenization, Level II/III, and batch settlement (the switch ProCharge itself rides on).
  • Merchant360 API – card + ACH payments, hosted checkout, invoices, subscriptions, customers, and webhooks.

Migrating an existing ProCharge integration? Email developers@electronicpayments.com and we’ll map your current calls to their modern equivalents.

Base URLs

Hosts & environments

The published specification pins the development servers shown on the right. Most endpoints live on the main API host; the transaction-lookup and BIN endpoints live on the ProCharge Service host, and the email/receipt endpoints live on the DeliverMe mail host – each such endpoint carries a Host badge below.

Existing production integrations keep using the production hosts they were issued with their credentials. Because the API is deprecated, production host details for new integrations are intentionally not published – if you believe you need them, contact developers@electronicpayments.com.

  • Format: JSON in and out over HTTPS.
  • Sandbox merchants: 518564990154510 (Fiserv) and 889901550594702 (Cygma) – see mock testing.
↑ Request – what you send
# Main API (most endpoints)
https://dev-api.procharge.com

# ProCharge Service (transaction lookup + BIN data)
https://dev-service.procharge.com/v1

# DeliverMe mail service (email + receipts)
https://api-dev.deliverme.com
Three schemes, broken out

Authentication

The swagger spec defines three security schemes and lists them per endpoint without much explanation. Here is what each one actually is, where it comes from, and when you need it. In short:

  • bearerAuth – a JWT session token from a username/password login. The default way in for everything.
  • ApiKeyAuth – a long-lived merchant application key in an x-api-key header. A server-to-server alternative to logging in.
  • xAchAccessToken – a second, short-lived token that ACH endpoints require in addition to your bearer token.
http · bearer · JWT

bearerAuth – JWT bearer token

What it is: a JSON Web Token session credential. You obtain it by POSTing your ProCharge userName, passWord, PIN, and application name to /api/authentication/login. The response’s access_token field is prefixed with the literal string Bearer  – strip that prefix and send only the JWT portion in the Authorization header:

Authorization: Bearer <jwt>

When you need it: every endpoint except the health check and the login itself accepts it, and several endpoint groups (payment log, batching, Cygma reporting, ACH authenticate, email) accept only bearer auth – no API-key alternative. Treat it as the default scheme.

If you don’t have credentials: ProCharge logins belonged to merchant accounts on the legacy platform and are no longer issued for new integrations. If you operate an existing ProCharge merchant and have lost your credentials, contact developers@electronicpayments.com. For anything new, use the Cygma or Merchant360 APIs instead.

↑ Request – what you send
# 1. Log in with your ProCharge credentials
curl -X POST "https://dev-api.procharge.com/api/authentication/login" \
  -H "Content-Type: application/json" \
  -d '{
    "userName": "johndoe",
    "passWord": "********",
    "pin": "12345678",
    "application": "procharge"
  }'

# 2. The response carries an access_token of the form
#    "Bearer eyJhbGciOi..." – strip the "Bearer " prefix
#    and send the raw JWT on every subsequent request:
curl "https://dev-api.procharge.com/api/payment/log/1/25/2026-01-01/2026-01-31/all" \
  -H "Authorization: Bearer eyJhbGciOi..."
apiKey · header · x-api-key

ApiKeyAuth – x-api-key header

What it is: a long-lived merchant application key – itself a JWT – sent in an x-api-keyrequest header. It identifies the merchant application without an interactive login, so it’s the scheme unattended server-to-server integrations used. It is an alternative to bearerAuth wherever an endpoint lists both (the swagger lists them as either/or).

When you need it: never strictly – every endpoint that accepts ApiKeyAuthalso accepts a bearer token. Use it when you can’t (or don’t want to) run the login flow. Note the card-transaction endpoint also recommends a merchantnumber header alongside it, and the transaction body separately carries an applicationKey field – three related but distinct identifiers.

Where it comes from:application keys were issued by EPI with the merchant’s ProCharge account. They cannot be self-served and are not issued for new integrations. The development-only key on the right (published in the swagger itself) works against the sandbox Cygma merchant 889901550594702 for testing.

↑ Request – what you send
# Server-to-server call with a merchant application key –
# no interactive login step needed.
curl -X POST "https://dev-api.procharge.com/api/transaction" \
  -H "x-api-key: <merchant_application_key>" \
  -H "merchantnumber: 889901550594702" \
  -H "Content-Type: application/json" \
  -d @sale.json

# The spec publishes a DEVELOPMENT-ONLY testing key
# (scoped to sandbox merchant 889901550594702):
#   eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6
#   Ijg4OTkwMTU1MDU5NDcwMiIsInRva2VuIjoiIiwicm9sZXMiOlsidXNlciIsIm
#   1lcmNoYW50IiwicHJvY2hhcmdlIl0sInBheWxvYWQiOnsiYXBpS2V5T25seSI6
#   dHJ1ZSwiZGV2ZWxvcG1lbnRPbmx5Ijp0cnVlLCJyb3V0ZU5hbWUiOiJwcm9jaG
#   FyZ2UifSwiaWF0IjoxNzMwNDkyMTY0fQ.PWEaR00Cjc7ld2D9KCol5B4SI1up_
#   9BQSMpCXWoZwhk
apiKey · header · x-ach-access-token

xAchAccessToken – x-ach-access-token header

What it is: a second, ACH-specific access token sent in the x-ach-access-token header. The ACH subsystem is a separate service behind the main API, with its own token issuer – you trade your bearer session for an ACH token at GET /api/ach/authenticate.

When you need it: on every /api/ach/* endpoint except /api/ach/authenticateitself – customers, payments, payouts, refunds, prenote validations, and events. Per the spec: “All ACH requests must include this header as well asthe bearerAuth header.” It is additive, not an alternative – sending only a bearer token to an ACH endpoint returns 401.

Practical notes: the token is short-lived – fetch it at the start of an ACH session and refresh on 401. In Swagger UI the “Authorize” dialog sets it globally so you don’t paste it per request; in your own code just set both headers on your HTTP client for the ACH call path.

↑ Request – what you send
# 1. You already have a bearer token (see bearerAuth).
# 2. Exchange it for an ACH access token:
curl "https://dev-api.procharge.com/api/ach/authenticate" \
  -H "Authorization: Bearer <access_token>"

# 3. Send BOTH headers on every ACH call:
curl -X POST "https://dev-api.procharge.com/api/ach/payment" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @payment.json
Auth matrix

Which endpoints need what

Per-endpoint auth badges appear on every endpoint below; this is the shape of it by group:

EndpointsBearer JWTx-api-keyx-ach-access-token
Health check
Login (/api/authentication/login)issues it
Tokenization · card transactions · EMV · receipts · invoices · gift card✓ either✓ either
Payment log · batching · Cygma reporting · email✓ required
ACH authenticate (/api/ach/authenticate)✓ requiredissues it
All other /api/ach/* endpoints✓ requiredaccepted on some✓ required
Sandbox · no real charges

Card numbers for mock testing

During development you often want a mocked response without a real charge. The spec publishes two sandbox merchants and three sets of test cards. All sandbox tokens must be used with sandbox merchant number 518564990154510 (the Fiserv sandbox merchant); the Cygma certification cards run against merchant 889901550594702. In production, use the merchant number you were assigned in place of the sandbox merchant.

Fiserv – simulate an APPROVED transaction
BrandCard numberCVVExpToken
Amex34995695904136212341225123456789
Visa47611200100004921231225345678901
MasterCard52042477500014711231225567890123
Discover60110009944627801231225789012345
Fiserv – simulate a DECLINED transaction
BrandCard numberCVVExpToken
Amex34995615389139812341225345345567
Visa47613497500103261231225458967677
MasterCard52042477500015051231225598723233
Discover60110009945893191231225609873423
Cygma certification / sandbox (merchant 889901550594702)
BrandCard numberCVVExpToken
MasterCard520473000000100310012271090410263
Visa401200003333002612308271584485194

Each row’s token column is the stored-card token equivalent – pass it in place of the card number to exercise the token payment path with the same simulated outcome.

ProCharge Plugins

Plugins (WooCommerce)

The legacy ProCharge WooCommerce plugin (current version 1.0.13) is still downloadable from https://dev-api.procharge.com/api/plugin/woocommerce-plugin. Like the rest of the API it is deprecated – new WooCommerce stores should use the Merchant360 WooCommerce plugin instead.

Endpoint group

Health Check

Service liveness probe – no authentication required.

GET /api/healthcheck

Check the status of the service

No auth

If the service is up and running correctly the response will be 'up'

Responses
200Service is up and healthy400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/healthcheck" \
  -H "Authorization: Bearer <access_token>"
Endpoint group

Authentication

Exchange your ProCharge credentials for a JWT bearer access token. Every other endpoint requires the resulting token (or an x-api-key).

POST/api/authentication/loginAuthentication Endpoint
POST /api/authentication/login

Authentication Endpoint

No auth

User authentication endpoint. The access token returned in this call will be used to authenticate all API calls. Use the same credentials you currently use when logging into the Procharge Gateway.

Body parameters
FieldTypeDescription
userNameoptionalstringGateway Login ID aka your user name
passWordoptionalstringGateway password for user
pinoptionalstringProfile PIN for user
applicationoptionalstringName of aplication the user is authenticating from
Responses
200Authentication Succeeded400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/authentication/login" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
Endpoint group

Tokenization

Convert a card number into a reusable ProCharge token so raw PANs never touch your systems again.

POST/api/tokenTokenization Endpoint
POST /api/token

Tokenization Endpoint

Bearer JWTor x-api-key

Tokenize credit card information for card on file (COF) usage.

Body parameters
FieldTypeDescription
merchantNumberoptionalstringMerchant number · Example: 999999999000200
accountNumberoptionalstringCredit card number. · Example: 4761120010000492
expDateoptionalstringCredit card expiration date. Format MMYY · Example: 1225
formatoptionalstringWill determine format of response. Valid values are 'text' and 'json'. Default is 'text' 'text' is equivalent to 'application/text' and 'json' is equivalent to 'application/json' · Example: json
Responses
200Request Succeeded400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/token" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
Endpoint group

Card Transactions

The core payment endpoint – sale, auth-only, capture, void, refund, verification – plus transaction lookup and BIN data on the ProCharge Service host.

POST/api/transactionPayment Transaction
GET/transaction/{transactionid}Fetch Request By Transaction Identifier
GET/bindata/{cardnumber}BIN Check
POST /api/transaction

Payment Transaction

Bearer JWTor x-api-key

Payment processing API Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
merchantnumberoptionalstringMerchant Identifier. Sending this header is highly recommended but is optional. In the future will be required. · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key. Sending this header is highly recommended but is optional. In the future will be required. · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
applicationKeyrequiredstringApplication key specific to a merchant that allows them to process payments. It is recommended to pass the application key in the x-api-key header instead of in the json request.
sourcerequiredstringValue identifying the source of the transaction. Required · Example: wg
universalTimeStampoptionalnumberUniversal timestamp in milliseconds. If passed in the request and the time difference is greater than 5 minutes the transaction will be rejected. It is recommended to pass this value, in later releases this will be a required field value. · Example: 1648046807643
isPaymentTerminaloptionalbooleanSet to true if request is originating from a payment terminal like Pax, Dejavoo, Ingenico and is not an ecommerce solution.
isProchargerequiredbooleanIf set to true the api will create customer, invoice, payments and other records within Procharge. Default value is true br>If set to false the client is responsible for managing their own batches and recording the results of the transaction response to be used in case of voids or refunds
isEcommerceoptionalbooleanIf set to true the api will submit request as an Ecommerce transaction. If property is set to true will override isMoto and isRetail.
isRetailoptionalbooleanIf set to true the api will submit request as a Retail transaction. Retail transactions are generally Chip Reads or Swiped and an in store purchase. If property is set to true will override isMoto but not ecommerce.
isRestaurantoptionalbooleanIf set to true the api will submit request as a Restaurant transaction. Restaurant transactions are generally Chip Reads or Swiped and on premise purchase. If property is set to true will override isMoto, isRetail and isEcommerce.
isMotooptionalbooleanIf set to true the api will submit request as a money order/telephone order transaction. If either isEcommerce or isRetail are set to true they will override isMoto setting.
ebtCodeoptionalstringSets the type of EBT account. Pass when CardType is EB Valid values: 96 &#9; EBT Food 98 &#9; EBT Cash · Example: 96
preAuthorizationoptionalbooleanIf set to true the api will route authonly request to preauthorization endpoint. The Pre-Authorization message is followed by a Ticket Completion message.
stanoptionalstringThe systems trace audit number (STAN) is automatically generated by procharge but if sent will override. It is incremented for each transaction processed. Optional
merchantNumberrequiredstringMerchant Identifier
paymentGatewayIDoptionalstringValid values are '4' for Fiserv and '5' for Cygma
acquirerIDoptionalstringCode identifying the acquiring institution (e.g. merchant's bank) or its agent. (Cygma Only) Optional · Example: 411763
terminalIDoptionalstringThe terminal ID, assigned by CYGMA, is used to uniquely identify the terminal within a card acceptor acquirer ID. (Cygma Only) Optional · Example: PROCHG02
deviceIDoptionalstringOptional field and normally not sent in a request. Used with bulk processing calls otherwise is auto assigned by Procharge. · Example: 1234
industryTyperequiredstringBusiness industry type. If not passed will be pulled from the merchant record during on boarding Fiserv Values 2 &#9; Restaurant. 2 will be converted to 13 for Cygma merchants 4 &#9; Lodging 6 &#9; Retail/Supermarket/Petroleum/Cash Advance. 6 will be converted to 10 for Cygma merchants Cygma Values 0 &#9; Unknown 1 &#9; Airline Normal 2 &#9; Airline2 3 &#9; Hotel Preferred 4 &#9; Hotel Normal 5 &#9; Auto Preferred 6 &#9; Auto Normal 7 &#9; Direct Marketing 8 &#9; Fuel 9 &#9; moto 10 &#9; Retail 11 &#9; Medical 12 &#9; Limited Amt Terminal 13 &#9; Restaurant 14 &#9; Telephone 15 &#9; Rail 16 &#9; Ticketing Entertainment 17 &#9; Travel 18 &#9; Health Care 19 &#9; Cruise 20 &#9; Cash Advance 21 &#9; ATM Cash Disbursement 22 &#9; Insurance 23 &#9; Passenger Transport Ancillary 24 &#9; Temp_Services 25 &#9; Fleet · Example: 6
deviceModeloptionalstringCard reader device model code. Currently only supports CHB or blank. At this time the only supported device is BBPOS Chipper 2x BT. EMV only
cardNotPresentoptionalbooleanIf set to true will submit card transaction as card not present. If processing a payment and the merchant is not present that is considered card not present. Example: web pages are CNP. Development only.
invoiceIDoptionalnumberProcharge record id for invoice record. Optional · Example: 123456
creditIDoptionalnumberWhen funds have been credited back to a customer this ID is assigned and needed for a refund reversal call.
customerIDoptionalnumberProcharge record id for customer record. Optional · Example: 123456
receiptsoptionalbooleanIf set to true will send a customer and merchant receipt in the response. Development only
itemsoptionalobject[]Send a list of purchased items to be printed on the receipt. Items array will be ignored if 'receipts' is false.
items[].itemNameoptionalstringItem name to be displayed on the receipt · Example: Large Pizza
items[].itemDescriptionoptionalstring Example: Large Pizza
items[].qtyoptionalintegerQuantity of item purchased to be displayed on the receipt · Example: 1
items[].unitPriceoptionalnumberItem Unit Price to be displayed on the receipt · Example: 2.02
items[].commodityCodeoptionalstringHolds the code of goods that are purchased (as defined by national tax authorities). See following links for more info: harmonized-system-hs-codes commodity code search · Example: 5045450002
items[].unitOfMeasureoptionalstringCode for units of measurement used in international trade. Refer to: units-of-measurement-codes Some Valid Values Are: EA &#9; Each DZN &#9; Dozen CS &#9; Case BX &#9; Box DZP &#9; Dozenpacks DZR &#9; Dozen Pairs DPC &#9; Dozen Pieces GLI &#9; Gallon (4,546092 dm3) GLL &#9; Liquid gallon (3,7854l dm3) CEN &#9; Hundred BHX &#9; Hundred Boxes CNP &#9; Hundred Packs ITM &#9; Item KGM &#9; Kilogram PTL &#9; Liquid pint (0,473176 dm3) QTL &#9; Liquid quart (0,946353 dm3) ONZ &#9; Ounce GB, US (28,349523 g) APZ &#9; Ounce GB, US (31,10348 g) (syn: Troy ounce) LBS &#9; Pounds MIL &#9; Thousand DAY &#9; Day WEE &#9; Week MON &#9; Month HUR &#9; Hour · Example: EA
items[].unitCostoptionalnumberThe unit cost of the item purchased. Unit Cost refers to the expenses associated with producing each unit of that same product or service. · Example: 1.88
items[].destinationPostalCodeoptionalstringDestination postal code · Example: 11933
items[].shipDateoptionalstringThe date on which the merchandise was shipped to the destination · Example: 251215
items[].shippingMethodoptionalstringShipment Code 01 - Same Day 02 - Overnight/Next Day 03 - Priority, 2-3 days 04 - Ground, 4 or more days 05 - Electronic Delivery 06 - Ship-to Store (DF 63 should contain store address) · Example: 01
items[].freightShippingAmountoptionalnumberShipping amount · Example: 0
items[].shipFromPostalCodeoptionalstringPostal code where goos or services are shipped from. · Example: 11933
items[].shipToFirstNameoptionalstringShip-to First Name, is left justified and character space filled, if necessary. Casesensitive characters must be upper case. Leading or trailing zeros and/or virgules (/) are not permitted as filler. · Example: John
items[].shipToLastNameoptionalstringShip-to Last Name, is left justified and character space filled, if necessary. Casesensitive characters must be upper case. Leading or trailing zeros and/or virgules (/) are not permitted as filler · Example: Doe
items[].shipToAddressoptionalstringCase-sensitive characters must be upper case. Leading or trailing zeros and/or virgules (/) are not permitted as filler. · Example: 123 Test St
items[].shipToPhoneNumberoptionalstringCustomer phone number · Example: 5611234567
items[].taxAmountoptionalnumberTax amount applied to order. · Example: 0.14
items[].salesTaxCollectedIndicatoroptionalnumberIndicates the presence of the sales tax amount. Valid values: 0 &#9; No tax information provided 1 &#9; Tax Amount is provided 2 &#9; Purchase item is tax exempt or nontaxable · Example: 1
items[].taxRateoptionalnumberHolds the Sales Tax Rate. Example value defines the tax rate as 7 percent. · Example: 0.07
items[].extendedItemAmountLineItemTotalAmountoptionalnumberHolds the total purchase amount. · Example: 2.02
items[].extendedAmountCreditDebitIndicatoroptionalstringIndicates whether the line-item value is a debit or credit. The valid values of this field are: C &#9; Credit D &#9; Debit · Example: C
items[].unitPriceExcludingTaxoptionalnumberHolds the Price per line-item unit excluding tax. · Example: 1.88
items[].itemPriceIncludingTaxoptionalnumberHolds the Price per line-item unit including tax. · Example: 2.02
items[].itemPriceExludingTaxoptionalnumberHolds the total tine item that are excluded from tax. · Example: 1.88
items[].orderDateoptionalstringDate the order was placed, format YYMMDD. · Example: 240524
cardNumberrequiredstringCredit Card Number. Required field for transaction code's 1, 2, 3 and 4
ccExpMonthrequiredstringCredit card expiration month format MM and zero padded ex: 03. Required field for transaction code's 1, 2, 3 and 4
ccExpYearrequiredstringCredit card expiration month format YY. Required field for transaction code's 1, 2, 3 and 4
cvvrequiredstringCard Verification Value. Required field for transaction code's 1, 2, 3 and 4
ccLastFourrequiredstringLast four numbers on the credit card. Optional
amountrequiredstringTotal dollar-and-cent amount. Format: $$$$$.¢¢ of the purchase; variable-length, eight-position, Required field If processing a payment in the restaurant industry the following optional fields FoodAmount + BeverageMiscAmount + TaxAmount + TipAmount must equal this field · Example: 10.00
taxAmountrequiredstringTax amount applied to this order. · Example: 0.80
transactionCoderequiredstringType of request to be processed. 1 &#9; Online Sale 2 &#9; Return 3 &#9; Ticket. Close Auth Only. To be performed after Auth Only transaction 4 &#9; Auth Only 5 &#9; Void Sale. Transaction Type 1 6 &#9; Void Return. Transaction Type 2 7 &#9; Void Ticket. Transaction Type 3 8 &#9; Void Auth Only. Transaction Type 4 V &#9; Pre-Paid balance Inquiry · Example: 1
orderNumberrequiredstringA string identifier that can be tied to the payment. Max length 25 chars for Fiserv and 8 chars for Cygma/FIS. Required
targetrequiredstringTarget Environment 6 &#9; Production 8 &#9; Sandbox · Example: 8
namerequiredstringFull name as displayed on the card. Required
firstNameoptionalstringFirst name of card holder. If not supplied will attempt to extract it from the 'name' field.
lastNameoptionalstringLast name of card holder. If not supplied will attempt to extract it from the 'name' field.
street1requiredstringStreet address associated with card holder. Required field for transaction code's 1 and 4
cityrequiredstringCity associated with card holder
staterequiredstringState associated with card holder. Max length 2
postalCoderequiredstringZipcode associated with card holder. Max length 9. Required field for transaction code's 1 and 4
emailrequiredstringCard holder email
companyNamerequiredstringName of company
merchantIDrequiredintegerAn internal value that will be assigned to the client. Required if isProcharge is true. If not present in the request will pull it from the merchant record.
profileIDrequiredintegerAn internal value that will be assigned to the client. Required if isProcharge is true. If not present in the request will pull it from the merchant record.
batchNumberrequiredstringNumber identifying the batch; assigned by the POS device. system managed. Pass '0' in this field. If isProcharge is false then batchNumber is required otherwise optional. · Example: 0
itemNumberrequiredstringNumber of the transaction in the batch. Pass '001' in this field assigned by the POS; fixed-length, three position, required field; If any online transaction is declined the next transaction should use the same ITEM NUMBER except authorization only transactions. Will be auto assigned. If isProcharge is false then batchNumber is required otherwise optional. · Example: 001
revisionNumberrequiredstringNumber identifying the number of revisions to a monetary transaction; fixed-length, required field; assigned by the POS. For Debit, EBT, Auth Only, Void Auth Only, Revision number should be '0'. Revision number should be incremented by 1 every time the transaction is revised. This includes Adjustments, Adding tips and Voids. If isProcharge is false then batchNumber is required otherwise optional. · Example: 0
emvoptionalstringEMV Data is a series of Tag-Length-Value combination for chip card processing. Base64 string max length 1001 chars
trackDataoptionalstringMagnetic track2 stripe data. Max length is 76 chars. Optional.
transactionFeeoptionalstring
reverseCashDiscountPercentageoptionalstring
reverseCashDiscountAmountoptionalstring
reverseCashDiscountFixAmountoptionalstring
customerServicefeeoptionalstring
customerServiceFeeAmountoptionalstring
customerServiceFeeFixAmountoptionalstring
customerServiceFeePercentageoptionalstring
cashDiscountFixAmountoptionalstring
transactionIDoptionalstringCode generated by the card associations on the authorization; known as TID for Visa and BankNet Reference Number for MasterCard; Max length 15, required for ticket completions, adjustments and voids.
protocolTypeoptionalstringCharacter indicating an ETC 'PLUS' application; optional field; default value is '1'. Not required for Cygma requests.
writeControlCharacteroptionalstringCharacter identifying the account number entry method and Host response protocol (single or multiple mode). optional field. default value is '@'. System Managed. Optional. @ &#9; Manual Entry, Single Transaction Mode. This WCC is also used for batch close message and deposit inquiry A &#9; Swiped Entry, Single Transaction Mode B &#9; Manual Entry, Multiple Mode Host will respond with an ENQ character during protocol instead of an EOT character as in single mode. &#9; This character can be used with the batch close C &#9; Swiped Entry, Multiple Mode Host will respond with an ENQ character during protocol instead of an EOT character as in single mode. &#9; This character can be used with the batch close message. E &#9; Contactless Magnetic stripe entry G &#9; Contactless Magnetic stripe entry, Multiple Transaction Mode I &#9; Contactless chip. EMV. entry, Single Transaction Mode K &#9; Contactless chip. EMV. entry, Multiple Transaction Mode M &#9; Contact chip. EMV. entry, Single Transaction Mode O &#9; Contact chip. EMV. entry, Multiple Transaction Mode P &#9; Chip - Keyed Fallback entry, Single Transaction Mode R &#9; Chip - Keyed Fallback entry, Multiple Transaction Mode Q &#9; Chip - Swiped Fallback entry, Single Transaction Mode S &#9; Chip - Swiped Fallback entry, Multiple Transaction Mode · Example: @
transactionTypeoptionalstringCode identifying how the System will respond to the transaction request. optional field. default value '0' 0 &#9; Online. Transaction needs immediate response from Host 1 &#9; Offline. Item was captured offline and sent (piggybacked) with an online transaction 2 &#9; Offline. Item was captured offline and sent with a close batch 3 &#9; Revised. Item was revised and sent (piggybacked) with an online transaction 4 &#9; Revised. Item was revised and sent with a close batch. 5 &#9; Specific Poll Item. Specific Poll for a Revised Item after a Revision Inquiry Request. &#9; This can only occur if an Open Batch on Host system 6 &#9; Specific Poll Item. Specific Poll for a Single Transaction &#9; This can only occur if an Open Batch on Host system · Example: 0
terminalCapabilityoptionalstringMerchant POS Terminal Capability Code. optional field. System Managed. Not used in e-commerce. If EMV or card present '3C00' else '3C40' and '2000' for card not present. Not required
terminalPinCapabilityoptionalstringMerchant POS Terminal PIN Capability. optional field. System Managed. default value '1' for card present else '2' for card not present. Not required 0 &#9; Terminal entry mode is unknown. 1 &#9; Terminal can accept PIN entry. 2 &#9; Terminal cannot accept PIN entry. 8 &#9; PIN Pad is inoperative. 9 &#9; For Discover only. Card types 06 and 61. The POS Device is capable of off-line PIN verification · Example: 1
terminalCategoryCodeoptionalstringMerchant POS Terminal Category Code aka POS Type. optional field. System Managed. For card present default value is '5' and '0' for card not present. Not required 0 &#9; Unspecified 1 &#9; Limited amount terminal 2 &#9; Unattended terminal. ATM 3 &#9; Unattended terminal. Non ATM 4 &#9; Electronic cash register, Retail 5 &#9; Ecommerce customer present 7 &#9; Telephone device 8 &#9; Reserved 9 &#9; Mobile acceptance solution A &#9; mPOS Accessory/dongle with contact and contactless interfaces, with or without PIN pad B &#9; mPOS Accessory/dongle with contact and contactless interfaces and PIN on Glass support (Software-based PIN on COTS (SPoC)) C &#9; Contactless Payment on COTS (CPoC) - Mobile device based contactless only mPOS without PIN support D &#9; Contactless Payment on COTS (CPoC) - Mobile device based contactless only mPOS with PIN on Glass support · Example: 5
terminalCardCaptureCapabilityoptionalstringMerchant POS Terminal Card Capture Capability. optional field. System Managed. For card present default value is '9' and '0' for card not present. Not required 0 &#9; The merchant's terminal does not have the ability to transmit entire magnetic stripe information. 9 &#9; The merchant's terminal can transmit entire magnetic stripe information. · Example: 9
posConditionCodeoptionalstringMerchant POS Condition Code. optional field. System Managed. For card present default is '00' and for card not present default value is '59' except for visa card which will default to '08' 00 &#9; Cardholder Present, Card Present 01 &#9; Cardholder Present, Unspecified 02 &#9; Cardholder Present, Unattended Device 03 &#9; Cardholder Present, Suspect Fraud 04 &#9; Cardholder Not Present - Recurring 05 &#9; Cardholder Present, Card Not Present, Retail 06 &#9; Cardholder Present, Identity Verified 08 &#9; Cardholder Not Present, Mail Order/Telephone Order 59 &#9; Cardholder Not Present, Ecommerce 71 &#9; Cardholder Present, Magnetic Stripe Could Not Be Read Cygma Only Values 73 &#9; Recurring Payment 74 &#9; Standing Order 75 &#9; Installment Payment · Example: 59
cardVerificationPresenceIndicatoroptionalstringCharacter that indicates whether the CVV2/CVC2/CID value is included with message packet; optional field. 0 &#9; Card Verification Value not provided 1 &#9; Value Present, card Verification Value is required 2 &#9; Value Illegible on Card 9 &#9; Cardholder states no card verification value on card · Example: 1
partialAuthIndicatoroptionalstringValue that indicates to ETC Plus host that this POS application supports Partial Authorizations and Balance Information. This field is valid for Online Sale (ETC Tran Type = 1) 1 &#9; Accepts Partial Authorizations and Balance from Issuer 2 &#9; Does Not Accept Partial Authorizations for an Estimated Transaction Amount and Balance from Issuer 3 &#9; Accepts Partial Authorizations for an Estimated Transaction Amount and Balance from Issuer · Example: 1
isPurchaseCardoptionalbooleanIf set to true then a '1' will be passed in the retail terms · Example: false
isOfflineoptionalbooleanIf true transaction will be processed as offline and protocolType will be set to 3
tokenoptionalstringIs valid for transaction types 1, 2, 3 and 4. When a credit card transaction is submitted a token will be returned in the response for client side storage. For future charges you would only need to pass the token and not all the card details. Optional.
acioptionalstringAuthorization Characteristics Indicator (ACI) - Code identifying the type of transaction approval; optional field. Default value is 'Y' for transaction code's 1 and 4. I &#9; Incremental Charge – American Express requires an Incremental charge to be processed in a Keyed format only. &#9; For Check Card processing an Incremental charge must be in a Swiped format only. When using Hotel format and performing an &#9; Incremental authorization. The additional authorization amount should be for the additional amount only. &#9; The Total Auth Amount field should contain the originally authorized amount plus the Additional amount. &#9; Also, the ACI value must be an 'I' for the Incremental transaction. P &#9; Card is not present at time of the authorization request, but the cardholder is a preferred customer participant. R &#9; Recurring Charge. Set 'eci' field to '2' when recurring. Y &#9; Card is present or the card is not present and request for address verification is needed. Valid Values in Host Response A &#9; Card is present at the time of the authorization request C &#9; Card is present with merchant name and location data that was activated by the cardholder, self-service terminal E &#9; Card is present with merchant name and location data F &#9; Card is not present at time of authorization request. Account funding transaction K &#9; Card is present at time of authorization request. Key-entered. N &#9; Authorization did not qualify as a Custom Payment Service or the acquirer or merchant does not participate &#9; in the Custom Payment Service (CPS). R &#9; Recurring U &#9; Authorization request is for a CPS Electronic Commerce Preferred 3-D SecureSM transaction. V &#9; Request for address verification – Card not present. W &#9; Authorization request is for CPS Electronic Commerce Basic. Blank &#9; Authorization did not qualify as a Custom Payment Service transaction or &#9; the acquirer or merchant does not participate in Custom Payment Service, (CPS) · Example: Y
ecioptionalstringElectronic Commerce specifications is applicable to internet transactions only. 01 &#9; MOTO Indicator - Single Transaction mail/telephone order: designates a transaction where the cardholder &#9; is not present at a merchant location and consummates the sale via the phone or through the mail. &#9; The transaction is not for recurring services or product and does not include &#9; sales that are processed via an installment plan. 02 &#9; MOTO Indicator - Recurring Transaction: designates a transaction that represents an arrangement between a cardholder and the merchant &#9; where transactions are going to occur on a periodic basis. 03 &#9; MOTO Indicator - Installment Payment: designates a group of transactions that originated from a single purchase where the merchant agrees to &#9; bill the cardholder in installments. 04 &#9; Contactless Magnetic Stripe (Proximity Chip) 05 &#9; Cardholder authentication successful (includes successful authentication using Risk based authentication and/or a Dynamic password). 06 &#9; Merchant attempted to authenticate the Cardholder but the issuer does not participate in Verified by Visa or the card is not eligible for &#9; authentication. 07 &#9; Non-authenticated ecommerce transaction 08 &#9; Non-secure transaction MasterCard Values For Ecommerce 05 &#9; MasterPass without risk based decisioning 07 &#9; MasterPass with risk based decisioning 08 &#9; Chip/Cardholder Certificate Not Used · Example: 7
originalNetworkResponseCodeoptionalstringNetwork Response Code from issuer/network or approver of the original message. Required in subsequent messages when available for interchange qualification. · Example: 000913
originalSTANoptionalstringTrace number from original transaction. · Example: 000913
originalTransactionDateoptionalstringTransaction date from original transaction. · Example: 0521
originalTransactionTimeoptionalstringTransaction time from original transaction. · Example: 114522
originalAmountoptionalnumberAmount from original transaction. · Example: 1
validationCodeoptionalstringV.I.P calculated code to ensure that key fields in the 0100 authorization requests match their respective fields in clearing. · Example: 000913
restaurantIndustryoptionalobjectIndustry specific fields used by merchants in the restaurant industry. industryType 2. Optional Object Field
restaurantIndustry.foodAmountoptionalstringDollar-and-cent amount, Format: $$$$$.¢¢, of the restaurant food purchase; variable-length, Max length 8, optional field
restaurantIndustry.beverageMiscAmountoptionalstringDollar-and-cent amount, Format: $$$$$.¢¢, of the restaurant beverage purchase; variable-length, Max length 6, optional field
restaurantIndustry.taxAmountoptionalstringDollar-and-cent amount, Format: $$$$$.¢¢, of the restaurant tax purchase; variable-length, Max length 6, optional field
restaurantIndustry.tipAmountoptionalstringDollar-and-cent amount, Format: $$$.¢¢, of the tip given at the restaurant for the purchase; Max length 6, optional field
restaurantIndustry.transactionIdentifieroptionalstringCode generated by the card associations on the authorization; known as TID for Visa and BankNet Reference Number for MasterCard; Max length 15, required for ticket completions and voids.
restaurantIndustry.serverIdoptionalstringServer identification– Merchant-assigned code identifying the server who entered the transaction, optional field
restaurantIndustry.pinBlockoptionalstringPIN Pad encrypted code; optional, fixed length field 16; This field applies only to Credit EMV (online PIN), EBT and Debit card transaction types
restaurantIndustry.cardTypeIndicatoroptionalstringCharacter indicating the type of card. Credit or 'C' is assumed if field not in use. * C - Credit Card * D - Debit Card * F - EBT Food Stamp * B - EBT Benefits Transaction (Cash) * P - Pre-Paid Card * T - TIP - Transaction is open for a Revision (i.e. Tip acceptance) · Example: C
restaurantIndustry.cashBackAmountoptionalstringDollar-and-cent amount, Format: $$$.¢¢, of a debit/EBT cash back amount; variable-length max length 6, optional field
restaurantIndustry.surchargeoptionalstringDollar-and-cent amount, Format: $$$.¢¢, of the charge that the cardholder paid the merchant for the ability to perform the transaction; variable length max length 6, optional field
restaurantIndustry.ebtVoucheroptionalstringDollar-and-cent amount, Format: $$$.¢¢, of the charge that the cardholder paid the merchant for the ability to perform the transaction; variable length max length 15, optional field
restaurantIndustry.authorizationCodeoptionalstringRequired filed if transaction is EBT Voucher Sale or TICKET ONLY transaction type '3' or Void Auth Only transaction code '8'
restaurantIndustry.smidIDoptionalstringSecurity Management Information Data – Optional, variable-length field; This field applies only to Credit EMV online PIN, EBT and Debit card transaction types
restaurantIndustry.partialAuthIndicatoroptionalstringValue that indicates to ETC Plus host that this POS application supports Partial Authorizations and Balance Information, This field is valid for Online Sale ETC Tran Type 1
restaurantIndustry.fdrAssignedTPPoptionalstringThis is First Data assigned value, if it is not available do not send this field with a default value.
restaurantIndustry.visaAUARoptionalstringIf the AUAR value is not available do not send this field with a default value
restaurantIndustry.mcTraceIdoptionalstringMust be included in subsequent follow-ups transactions such as incremental authorization. Master Card Only
restaurantIndustry.mcFraudVoidFlagoptionalstringA value of 'Y' will notify MasterCard that the sale was voided due to suspected fraud. Master Card Only
restaurantIndustry.mcFinalAuthIndicatoroptionalstring (0 | 1 | 2)MasterCard Final Authorization Indicator provides ability for the merchant to notify the Issuer whether the Authorization is final or not. * 0 - unknown * 1 - is final auth amount * 2 - final auth amount may differ from original auth amount
restaurantIndustry.giftCardIndicatoroptionalstringThis field is specific to Amex card present transactions.
restaurantIndustry.transitAccessTermCardActTermoptionalstringWhen Field is used for Transit Access Terminal, send Amex authorization with value of 'Z' to indicate the transaction originated at a special terminal
restaurantIndustry.mcWalletIdentifieroptionalstringThis field is for applicable for MasterCard only; It is used to pass DE 48 SE 26 to MasterCard.
restaurantIndustry.posLaneIdStoreNumberoptionalstringDE41 is concatenation of POS Lane ID/Store Number and Device ID.
restaurantIndustry.merchantInitiatedTransactionIndicatoroptionalstringThis field indicates if the transaction is merchant initiated with cardholder credentials stored on file and the type of merchant initiated transaction
restaurantIndustry.digitalWalletIndicatoroptionalstringIndicates if the transaction is for a Staged or Pass-through Digital Wallet.
restaurantIndustry.digitalWalletProgramTypeoptionalstringThis field identifies the brand of digital wallet used in a transaction
restaurantIndustry.visaSpecialConditionIndicatoroptionalstringThis field identifies the DE 60.4 values for Visa transactions. 7: Purchase of crypto currency 8: Payment on existing debt
restaurantIndustry.deferredAuthIndicatoroptionalstringIndicator designating that a transaction is a deferred authorization. Y if using else space
restaurantIndustry.avsZipCodeoptionalstringAddress Verification Service ZIP code – ZIP code of principal cardholder’s address entered for address verification. Length can be 5 or 9 only
restaurantIndustry.posDataCodesoptionalstringPOS Codes for American Express Ticket Only Tran Code 3 transaction. Contact American Express to determine how these values are generated and used for American Express
retailIndustryoptionalobject
retailIndustry.descriptorCodesoptionalstringCode identifying a product or service; variable-length, optional field; edited for numeric values Used for Private Label Transactions only. Enter one or up to four 2-digit codes or enter one or up to four 4-digit codes. industryType 6. Optional Object Field · Example:
retailIndustry.operatorIDoptionalstringOperator Identification – Merchant-assigned code identifying the operator who entered the transaction; variable-length, optional field; · Example:
retailIndustry.retailTermsoptionalstringNumber identifying the Private Label terms or special payments options for a transaction; variable-length, optional field; edited for numeric values Used for Private Label Transactions only. · Example:
retailIndustry.motooptionalstringCode identifying whether the transaction is mail order, phone order or electronic commerce; one-position, numeric, optional field. * 1 - Mail or Telephone Order – Single Transaction * 2 - Recurring Transaction (ACI must be 'R') * 3 - Installment Billing Visa and Discover Values for E-Commerce * 5 - Secure (with certificate) Transaction * 6 - Non-Authenticated (without certificate) Transaction at 3D secure capable merchant * 7 - Non-Authenticated (Channel Encrypted) Transaction * 8 - Non-Secure Transaction MasterCard Values for E-Commerce * 5 - MasterPass without risk based decisioning * 7 - MasterPass with risk based decisioning * 8 - Chip/Cardholder Certificate Not Used · Example: 1
retailIndustry.avsZipCodeoptionalstringAddress Verification Service ZIP code – ZIP code of principal cardholder’s address entered for address verification; fixed-length, five-position or nine-position, optional field; edited for numeric values Do not use this field for a ticket-only, return or a void transaction code. Only valid for Transaction Code 1 (Sale) or Transaction Code 4 (Auth Only) · Example: 11933
retailIndustry.avsAddressoptionalstringAddress Verification Service Address – Principal cardholder’s address entered for address verification; variable-length, five-position field. Do not use this field for a ticket-only, return or a void transaction code. Only valid for Transaction Code 1 (Sale) or Transaction Code 4 (Auth Only) · Example: 123
retailIndustry.taxAmountoptionalstringDollar-and-cent amount ($$$$$.¢¢) of tax for the purchase; variable-length, optional field. 8 position Note: This is a required field for supporting Amex Level 2 Transactions · Example: 1.99
retailIndustry.retailTaxIndicatoroptionalstringThis field identifies the taxable status of the transaction * 0 - No tax information provided * 1 - Tax Amount is provided * 2 - Purchase item is tax exempt or non-taxable Note: This field is mandatory for Visa and MasterCard Purchase Card transactions only If this field is not sent, values 0 and 1 will be implied based on whether field ‘TAX AMOUNT’ is present or not. · Example: 1
retailIndustry.optionalField1optionalstringMerchant-defined field providing additional information about the transaction · Example:
retailIndustry.optionalField2optionalstringMerchant-defined field providing additional information about the transaction · Example:
retailIndustry.orderNumberoptionalstringMerchant-defined number identifying the purchase or service; variable-length · Example:
retailIndustry.authCharIndicatoroptionalstringAuthorization Characteristics Indicator (ACI) - Code identifying the type of transaction approval; optional field; * I - Incremental Charge – American Express requires an Incremental charge to be processed in a Keyed format only. For Check Card processing an Incremental charge must be in a Swiped format only. When using Hotel format and performing an Incremental authorization. The additional authorization amount should be for the additional amount only. The Total Auth Amount field should contain the originally authorized amount plus the Additional amount. Also, the ACI value must be an “I” for the Incremental transaction. * P - Card is not present at time of the authorization request, but the cardholder is a preferred customer participant. * R - Recurring Charge. Set 'eci' field to '2' when recurring. * Y - Card is present or the card is not present and request for address verification is needed. Valid Values in Host Response * A - Card is present at the time of the authorization request * C - Card is present with merchant name and location data that was activated by the cardholder, self-service terminal * E - Card is present with merchant name and location data * F - Card is not present at time of authorization request. Account funding transaction * K - Card is present at time of authorization request. Key-entered. * N - Authorization did not qualify as a Custom Payment Service or the acquirer or merchant does not participate in the Custom Payment Service (CPS). * R - Recurring * U - Authorization request is for a CPS Electronic Commerce Preferred 3-D SecureSM transaction. * V - Request for address verification – Card not present. * W - Authorization request is for CPS Electronic Commerce Basic. * Blank - Authorization did not qualify as a Custom Payment Service transaction or the acquirer or merchant does not participate in Custom Payment Service, (CPS) · Example: Y
retailIndustry.transactionIdentifieroptionalstringCode generated by the card associations on the authorization; known as TID for Visa and BankNet Reference Number for MasterCard; variable-length, optional field; edited for alphanumeric values Transaction Identifier (TID) is a required field for a ticket only transaction (Tran Code ‘3’) that is created from Original Auth Only. This TID should be the original TID returned on the auth-only response. Transaction Identifier (TID) is a required field for a merchant initiated sale transaction (Tran Code ‘1’) or merchant initiated authorization only transaction (Tran Code ‘4’). · Example:
retailIndustry.avsResponseCodeoptionalstringAddress Verification Service response - Code indicating whether address verification was performed and the results; used for ticket only transaction · Example:
retailIndustry.totalAuthorizedAmountoptionalstringDollar-and-cent amount ($$$$$.¢¢) of the purchase; variable-length, optional field. If transaction code is B, V or 4 a '0.00' amount is acceptable. · Example:
retailIndustry.pinBlockoptionalstringPIN Pad encrypted code; optional, fixed-length field; This field applies only to Credit EMV (online PIN), EBT and Debit card transaction types. For Debit Void and Debit reversal of partially approved amount, PIN BLOCK should be filled with '0's. For Example: 0000000000000000 for 16 digit length of PIN BLOCK. · Example:
retailIndustry.cardTypeIndicatoroptionalstringCharacter indicating the type of card. Credit or 'C' is assumed if field not in use. * C - Credit Card * D - Debit Card * F - EBT Food Stamp * B - EBT Benefits Transaction (Cash) * P - Pre-Paid Card * T - TIP - Transaction is open for a Revision (i.e. Tip acceptance) · Example: C
retailIndustry.cardholderSetCertificateoptionalstringCardholder Secure Electronic Transaction Certificate Serial number · Example:
retailIndustry.cashBackAmountoptionalstringDollar-and-cent amount ($$$.¢¢) of a debit/EBT cash back amount; variable-length, optional field · Example:
retailIndustry.surChargeoptionalstringDollar-and-cent amount ($$$.¢¢) of the charge that the cardholder paid the merchant for the ability to perform the transaction; variable-length, optional field. Position 1 contains the surcharge prefix. Valid values are '+' or '-'. '-' = Credit to the cardholder and '+' = Debit to the cardholder. Positions 2-9 contain the surcharge amount · Example:
retailIndustry.ebtVoucherNumberoptionalstringNumber from EBT Voucher Form; variable-length field, required if transaction is EBT Voucher Sale · Example:
retailIndustry.authorizationCodeoptionalstringRequired filed if transaction is EBT Voucher Sale or TICKET ONLY (transaction type ‘3’) or Void Auth Only ( transaction code ‘8’) · Example:
retailIndustry.smidIDoptionalstringSecurity Management Information Data – Optional, variable-length field; This field applies only to Credit EMV (online PIN), EBT and Debit card transaction types. For Debit Void and Debit reversal of partially approved amount, SMID ID should be filled with 'F's. For Example: FFFFFFFFFFFFFFFFFFFF for 20 digit length of SMID ID. · Example:
retailIndustry.partialAuthIndicatoroptionalstringValue that indicates to ETC Plus host that this POS application supports Partial Authorizations and Balance Information. This field is valid for Online Sale (ETC Tran Type =1). * 1 - Accepts Partial Authorizations and Balance from Issuer * 2 - Does Not Accept Partial Authorizations for an Estimated Transaction Amount and Balance from Issuer * 3 - Accepts Partial Authorizations for an Estimated Transaction Amount and Balance from Issuer · Example: 1
retailIndustry.fdrAssignedTPPoptionalstringThis is First Data assigned value, if it is not available do not send this field with a default value. This is a mandatory field. · Example:
retailIndustry.visaAUARoptionalstringIf the AUAR value is not available do not send this field with a default value. Notes: 1. If both the TPP and AUAR are not available do not send either field with a default value. 2. Input length will be 6 (TPP data only), 17 (AUAR data only) or 23 (TPP and AUAR data present). If the field input length is not one of these values the input will be ignored. · Example:
retailIndustry.mcTraceIdoptionalstringMust be included in subsequent /follow-ups transactions such as incremental authorization. · Example:
retailIndustry.mcFraudVoidFlagoptionalstringA value of ‘Y’ will notify MasterCard that the sale was voided due to suspected fraud. · Example:
retailIndustry.mcFinalAuthIndicatoroptionalstringMasterCard Final Authorization Indicator provides ability for the merchant to notify the Issuer whether the Authorization is final or not. * 0 - Unknown * 1 - Final Authorization - The settlement amount must equal the approved authorized amount. * 2 - Preauthorization - The settlement amount may be different than the approved amount authorized. · Example:
retailIndustry.giftCardIndicatoroptionalstringThis field is specific to Amex card present transactions. If the transaction amount contains the purchase of a gift card, then the merchant must send a value of “1” in this field to indicate that a Gift Card is purchased using an Amex Credit Card. Else, the merchant must send ‘0’. · Example:
retailIndustry.transitAccessTermCardoptionalstringWhen Field is used for Transit Access Terminal, send Amex authorization with value of “Z” to indicate the transaction originated at a special terminal. When Field is used for Card Activation Terminal to indicate transaction was initiated from Mobile POS; send value of “9” for MasterCard and Visa, “M” for Discover, and a no value for Amex. Mobile POS are always attended devices and not cardholder activated. · Example:
retailIndustry.mcWalletIdentifieroptionalstringThis field is for applicable for MasterCard only; It is used to pass DE 48 SE 26 to MasterCard * 101 - MasterPass Remote - this value is present if the wallet data was created by the cardholder manually key-entering the data at a consumer-controlled device * 102 - MasterPass Remote NFC Payment - this value is present if the wallet data was initially created by the cardholder tapping his or her PayPass card or device at a contactless card reader (for example, a PayPass card reader or an ultrabook enabled to read PayPass cards) * 103 - Wallet Service Provider 1 - This value is used in the issuer optional real-time messages for tokenization request and notification · Example:
retailIndustry.posLaneIDStoreNumoptionalstring* DE41 is concatenation of POS Lane ID/Store# and Device ID. * If the Field POS Lane ID/Store# is not present in request Payload, the Store# will be used from merchant master file. * If the Field POS Lane ID/Store# is not present in request Payload and store # in merchant master file is 0000, the DE41 will be defaulted to 8888 concatenated with Device ID. * If the Device ID is missing from Payload, the DE41 will be defaulted to POS Lane ID/Store# concatenated with 9999. * If the Field POS Lane ID/Store# is not present in request Payload, store # in merchant master file is 0000 and Device Id is also missing then the DE41 will be defaulted to 88889999 · Example:
retailIndustry.merchInitiatedTransIndicatoroptionalstringThis field indicates if the transaction is merchant initiated with cardholder credentials stored on file and the type of merchant initiated transaction. This field must be included with the value of ‘C’ whenever the cardholder credentials are being stored on file and it is possible that a future merchant initiated transaction other than a recurring payment or installment payment may be submitted with those cardholder credentials. The value of ‘S’ sends a COF value in the POS Entry Mode (Visa, MasterCard, and Discover) or POS Data Code (Amex). Merchants are subjected to submit an account verification transaction with the MIT Indicator value of ‘C’ if an unscheduled MIT is not being submitted at the time the cardholder credentials are being stored. If the cardholder credentials are being stored at the same time as an unscheduled transaction is being · Example:
retailIndustry.digitalWalletIndicatoroptionalstringIndicates if the transaction is for a Staged or Pass-through Digital Wallet. This field can be included for all Digital Wallet transactions, but it must be included for Visa Staged Digital Wallet transactions. * S - Staged Digital Wallet * P - Pass-through Digital Wallet · Example:
retailIndustry.digitalWalletProgramTypeoptionalstringThis field identifies the brand of digital wallet used in a transaction · Example:
retailIndustry.visaSpecConditionIndicatoroptionalstringThis field identifies the DE 60.4 values for Visa transactions. * 7 - Purchase of Cryptocurrency. Applicable to MCC 6051 * 9 - Payment on Existing Debt. Applicable to MCC 6012 and 6051 · Example:
retailIndustry.deferredAuthIndicatoroptionalstringIndicator designating that a transaction is a deferred authorization * Y - Deferred Authorization · Example:
retailIndustry.customerCodeoptionalstringMerchant-assigned code; variable-length, optional field. ### Required field for supporting Amex Level 2 Transactions · Example:
retailIndustry.merchantCertificateSerialNumberoptionalstringMerchant Secure Electronic Transaction Certificate Serial number; variable-length, optional field. · Example:
retailIndustry.cardHolderSetSerialNumberoptionalstringCardholder Secure Electronic Transaction Certificate Serial number; variable-length, optional field · Example:
retailIndustry.xidoptionalstringXID - A unique transaction identifier assigned to a SET Transaction; Or TAVV - This is a cryptographic value that is generated during the Visa transaction authentication process i.e. an In-App token transaction. Note: Visa Only. Merchants must send the TAVV (Token Authentication Verification Value) in this field only when the merchant has both the CAVV and TAVV. Merchants with only TAVV must continue sending the TAVV in the original Secure Data field. · Example:
retailIndustry.transStainoptionalstringA value used to define a merchant’s security settings for SET; variable-length, alphanumeric, optional field; valid code: 0 – 9 & A – F, Other values not valid. · Example:
retailIndustry.mcProgramProtocoloptionalstringThis field identifies the MasterCard 3DS version * 1 - 3DS Secure 1 * 2 - 3DS Secure 2 · Example:
retailIndustry.mcDirSrvrTransIdoptionalstringThis field identifies the MasterCard Directory Server Transaction ID. It is a Universally Unique Transaction ID (alphanumeric 36 bytes) which can be provided by the processors/acquirers as part of the authentication transaction. Example of a Directory Server Transaction ID: f38e6948-5388-41a6-bca4-b49723c19437 · Example:
retailIndustry.inAppTokenCryptooptionalstringThis is a cryptographic value that is generated during the MasterCard transaction authentication process i.e. an In-App token transaction. · Example:
retailIndustry.remoteCommerceAcceptorIdoptionalstringContains a merchant identifier in Base64 format, such as the merchant business website URL or reverse domain name as presented to the consumer during checkout. · Example:
retailIndustry.posDataCodesoptionalstringPOS Codes for American Express Ticket Only (Tran Code 3) transaction. Contact American Express to determine how these values are generated and used for American Express · Example:
retailIndustry.shipToPostalCodeoptionalstring### This is a required field for supporting Amex Level 2 Transactions. Supports 5 or 6 byte values. Length of 6 byte alphanumeric input can support both Domestic and International postal codes. · Example:
lodgingIndustryoptionalobjectIndustry specific fields used by merchants in the hotel/lodging industry. industryType 4. Optional Object Field
lodgingIndustry.arrivalDateoptionalstringDate (MMDDYY) the cardholder checks into the hotel; fixed-length, six-position, optional field
lodgingIndustry.departDateoptionalstringDate (MMDDYY) the cardholder checks out of the hotel; fixed-length, six-position, optional field
lodgingIndustry.specialProgramoptionalstringCode indicating the reason for the charge, especially when the cardholder did not stay at the hotel; optional field; * 1 - Normal charge, default code * 2 - Assured reservation, no show * 4 - Delayed charge * 5 - Express Service * 6 - Assured reservation
lodgingIndustry.folioNumberoptionalstringNumber assigned by the merchant indicating the hotel or lodging room number; variable length, optional field
lodgingIndustry.operatorIDoptionalstringOperator Identification - Merchant-assigned code identifying the operator who entered the transaction; variable-length, optional field
lodgingIndustry.amexChargeTypeoptionalstringNumber identifying the type of business to American Express; optional field * 1 - Hotel example: "1"
lodgingIndustry.authCharIndicatoroptionalstringAuthorization Characteristics Indicator (ACI) - Code identifying the type of transaction approval; optional field; * I - Incremental Charge – American Express requires an Incremental charge to be processed in a Keyed format only. For Check Card processing an Incremental charge must be in a Swiped format only. When using Hotel format and performing an Incremental authorization. The additional authorization amount should be for the additional amount only. The Total Auth Amount field should contain the originally authorized amount plus the Additional amount. Also, the ACI value must be an “I” for the Incremental transaction. * P - Card is not present at time of the authorization request, but the cardholder is a preferred customer participant. * R - Recurring Charge. Set 'eci' field to '2' when recurring. * Y - Card is present or the card is not present and request for address verification is needed. Valid Values in Host Response * A - Card is present at the time of the authorization request * C - Card is present with merchant name and location data that was activated by the cardholder, self-service terminal * E - Card is present with merchant name and location data * F - Card is not present at time of authorization request. Account funding transaction * K - Card is present at time of authorization request. Key-entered. * N - Authorization did not qualify as a Custom Payment Service or the acquirer or merchant does not participate in the Custom Payment Service (CPS). * R - Recurring * U - Authorization request is for a CPS Electronic Commerce Preferred 3-D SecureSM transaction. * V - Request for address verification – Card not present. * W - Authorization request is for CPS Electronic Commerce Basic. * Blank - Authorization did not qualify as a Custom Payment Service transaction or the acquirer or merchant does not participate in Custom Payment Service, (CPS) · Example: Y
lodgingIndustry.transactionIdentifieroptionalstringCode generated by the card associations on the authorization; known as TID for Visa and BankNet Reference Number for MasterCard; variable-length, optional field; edited for alphanumeric values Transaction Identifier (TID) is a required field for a ticket only transaction (Tran Code ‘3’) that is created from Original Auth Only. This TID should be the original TID returned on the auth-only response. Transaction Identifier (TID) is a required field for a merchant initiated sale transaction (Tran Code ‘1’) or merchant initiated authorization only transaction (Tran Code ‘4’). · Example:
lodgingIndustry.marketSpecificIndicatoroptionalstringCode identifying the type of industry; optional field * H - Received hotel data * B - Visa Bill Pay * N - Did not receive market-specific data.
lodgingIndustry.durationoptionalstringMerchant-entered number of nights stayed; optional field
lodgingIndustry.extraChargesoptionalstringCode identifying additional charges; fixed length, six-position field if data exist. Else, optional field; valid code for each position * 2 - Restaurant * 3 - Gift Shop * 4 - Mini Bar * 5 - Telephone * 6 - Other * 7 - Laundry When there are less than six additional charges, the field must be left justified and space-filled to the right
lodgingIndustry.totalAuthAmountoptionalstringDollar-and-cent amount ($$$$$.¢¢) of the original authorization; variable-length, optional field;
lodgingIndustry.pinBlockoptionalstringPIN Pad encrypted code; optional, fixed length field; This field applies only to Credit EMV (online PIN), EBT and Debit card transaction types. SMID ID field is required for sending a DUKPT (Derived Unique Key Per Transaction) PIN BLOCK. “For Debit Void and Debit reversal of partially approved amount, PIN BLOCK should be filled with '0's. For Example: 0000000000000000 for 16 digit length of PIN BLOCK.”
lodgingIndustry.cardTypeIndicatoroptionalstringCharacter indicating the type of card. Credit or 'C' is assumed if field not in use. * C - Credit Card * D - Debit Card * F - EBT Food Stamp * B - EBT Benefits Transaction (Cash) * P - Pre-Paid Card * T - TIP - Transaction is open for a Revision (i.e. Tip acceptance) · Example: C
lodgingIndustry.cashBackAmountoptionalstringDollar-and-cent amount ($$$.¢¢) of a debit/EBT cash back amount; variable-length, optional field
lodgingIndustry.surchargeoptionalstringDollar-and-cent amount ($$$.¢¢) of the charge that the cardholder paid the merchant for the ability to perform the transaction; variable length, optional field. Position 1 contains the surcharge prefix. Valid values are '+' or '-'. '-' = Credit to the cardholder and '+' = Debit to the cardholder. Positions 2-9 contain the surcharge amount
lodgingIndustry.aauthorizationCodeoptionalstringoptional, variable-length field; Required filed if transaction is EBT Voucher Sale or TICKET ONLY (transaction type ‘3’) or Void Auth Only (transaction code ‘8’)
lodgingIndustry.smidIDoptionalstring20 digit Key Serial Number Format ‘’F” (1) + Base Derivation Key ID(BDK ID) (9) + DeviceId (5) + TranCounter (5). Security Management Information Data – variable-length field; This field applies only to Credit EMV (online PIN), EBT and Debit card transaction types. “For Debit Void and Debit reversal of partially approved amount, SMID ID should be filled with 'F's. For Example: FFFFFFFFFFFFFFFFFFFF for 20 digit length of SMID ID.”
lodgingIndustry.partialAuthIndicatoroptionalstringValue that indicates to ETC Plus host that this POS application supports Partial Authorizations and Balance Information, This field is valid for Online Sale (ETC Tran Type =1). * 1 - Accepts Partial Authorizations and Balance from Issuer * 2 - Does Not Accept Partial Authorizations for an Estimated Transaction Amount and Balance from Issuer * 3 - Accepts Partial Authorizations for an Estimated Transaction Amount and Balance from Issuer · Example: 1
lodgingIndustry.fdrAssignedTPPoptionalstringThis is First Data assigned value, if it is not available do not send this field with a default value. This is a mandatory field. · Example:
lodgingIndustry.visaAUARoptionalstringIf the AUAR value is not available do not send this field with a default value. Notes: 1. If both the TPP and AUAR are not available do not send either field with a default value. 2. Input length will be 6 (TPP data only), 17 (AUAR data only) or 23 (TPP and AUAR data present). If the field input length is not one of these values the input will be ignored. · Example:
lodgingIndustry.mcTraceIDoptionalstringMust be included in subsequent follow-ups transactions such as incremental authorization. The Trace ID consists of the following: * First 9 digits contain the BankNet Reference Number that was received from MasterCard for original authorization * The next 4 digits contain the Settlement Date in the MMDD format * The 4 digit Settlement Date is followed by two spaces
lodgingIndustry.mcFraudVoidFlagoptionalstringA value of ‘Y’ will notify MasterCard that the sale was voided due to suspected fraud · Example: Y
lodgingIndustry.mcFinalAuthIndicatoroptionalstringMasterCard Final Authorization Indicator provides ability for the merchant to notify the Issuer whether the Authorization is final or not. * 0 - Unknown * 1 - Final Authorization - The settlement amount must equal the approved authorized amount * 2 - Preauthorization - The settlement amount may be different than the approved amount authorized. · Example: 1
lodgingIndustry.giftCardIndicatoroptionalstringThis field is specific to Amex card present transactions. If the transaction amount contains the purchase of a gift card, then the merchant must send a value of “1” in this field to indicate that a Gift Card is purchased using an Amex Credit Card. Else, the merchant must send ‘0’. · Example: 0
lodgingIndustry.transitAccessTermCardIndoptionalstringWhen Field is used for Transit Access Terminal, send Amex authorization with value of “Z” to indicate the transaction originated at a special terminal. When Field is used for Card Activation Terminal to indicate transaction was initiated from Mobile POS; send value of “9” for MasterCard and Visa, “M” for Discover, and a no value for Amex. Mobile POS are always attended devices and not cardholder activated.
lodgingIndustry.mcWalletIdentifieroptionalstringThis field is for applicable for MasterCard only; * 101 - MasterPass Remote - this value is present if the wallet data was created by the cardholder manually key-entering the data at a consumer-controlled device * 102 - MasterPass Remote NFC Payment - this value is present if the wallet data was initially created by the cardholder tapping his or her PayPass card or device at a contactless card reader (for example, a PayPass card reader or an ultrabook enabled to read PayPass cards) * 103 - Wallet Service Provider 1 - This value is used in the issuer optional real-time messages for tokenization request and notification * Other Values - Other values may be transmitted by the merchant or the MasterPass Wallet
lodgingIndustry.posLaneIDStoreoptionalstringConcatenation of POS Lane ID/Store# and Device ID. * If the Field POS Lane ID/Store# is not present in request Payload, the Store# will be used from merchant master file. * If the Field POS Lane ID/Store# is not present in request Payload and store # in merchant master file is 0000, the DE41 will be defaulted to 8888 concatenated with Device ID. * If the Device ID is missing from Payload, the DE41 will be defaulted to POS Lane ID/Store# concatenated with 9999. * If the Field POS Lane ID/Store# is not present in request Payload, store # in merchant master file is 0000 and Device Id is also missing then the DE41 will be defaulted to 88889999.
lodgingIndustry.merchantInitiatedTransIndicatoroptionalstringThis field indicates if the transaction is merchant initiated with cardholder credentials stored on file and the type of merchant initiated transaction. This field must be included with the value of ‘C’ whenever the cardholder credentials are being stored on file and it is possible that a future merchant initiated transaction other than a recurring payment or installment payment may be submitted with those cardholder credentials. Note: A ‘C’ does not send a COF value in the associations POS Entry Mode / POS Data Code. The ‘C’ indicates credentials are being stored for subsequent transactions. Installment payments are a type of merchant initiated transaction. Installment payment authorizations should not be preceded by a cardholder initiated transaction with a Merchant Initiated Transaction Indicator field value of ‘C’. Recurring payments are a type of merchant initiated transaction. Recurring payment authorizations should not be preceded by a cardholder initiated transaction with a Merchant Initiated Transaction Indicator field value of ‘C’. Installment and Recurring transactions are identified using the Phone Order/Mail Order/ECI Flag field. The value of ‘S’ sends a COF value in the POS Entry Mode (Visa, MasterCard, and Discover) or POS Data Code (Amex). Merchants are subjected to submit an account verification transaction with the MIT Indicator value of ‘C’ if an unscheduled MIT is not being submitted at the time the cardholder credentials are being stored. If the cardholder credentials are being stored at the same time as an unscheduled transaction is being performed, then only the unscheduled MIT should be submitted with MIT Indicator ‘U’. * 0 - Incremental Authorization * 1 - Resubmission * 2 - Delayed Charge * 3 - Reauthorization * 4 - No Show * 5 - Account Top Up * C - Cardholder credential stored on file for subsequent Credential on File transactions for both MIT and CIT * S - Customer Initiated COF subsequent transaction * U - Unscheduled Stored Credential MIT
lodgingIndustry.digitalWalletIndicatoroptionalstringIndicates if the transaction is for a Staged or Pass-through Digital Wallet. This field can be included for all Digital Wallet transactions, but it must be included for Visa Staged Digital Wallet transactions. * S - Staged Digital Wallet * P - Pass-through Digital Wallet
lodgingIndustry.visaSpecConditionIndicatoroptionalstringThis field identifies the DE 60.4 values for Visa transactions * 7 - Purchase of Cryptocurrency. * 9 - Payment on Existing Debt.
lodgingIndustry.deferredAuthIndicatoroptionalstringIndicator designating that a transaction is a deferred authorization. * Space - Not a Deferred Authorization * Y - Deferred Authorization · Example: Y
lodgingIndustry.avsZipCodeoptionalstringAddress Verification Service ZIP code – ZIP code of principal cardholder’s address entered for address verification; fixed-length, five position or nine-position, optional field; edited for numeric values
lodgingIndustry.posDataCodesoptionalstringPOS Codes for American Express Ticket Only (Tran Code 3) transaction. Contact American Express to determine how these values are generated and used for American Express. Optional Field, 3 Position, Fixed length field. Positions 5, 6, and 7 of electronic American Express direct transaction details. Contact American Express for more information on these POS Data Codes. Required field if Transaction Authorized by American Express and not Omaha ETC.
Responses
200Transaction processed400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/transaction" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
GET /transaction/{transactionid}

Fetch Request By Transaction Identifier

Bearer JWTor x-api-keyHost: https://dev-service.procharge.com/v1

Fetch request by transaction identifier

Path parameters
FieldTypeDescription
transactionidrequiredstringTransaction identifier · Example: 523315023656
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-service.procharge.com/v1/transaction/{transactionid}" \
  -H "Authorization: Bearer <access_token>"
GET /bindata/{cardnumber}

BIN Check

Bearer JWTor x-api-keyHost: https://dev-service.procharge.com/v1

Card validation

Path parameters
FieldTypeDescription
cardnumberrequiredstringFirst 6 to 8 digits of card number · Example: 530736
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-service.procharge.com/v1/bindata/{cardnumber}" \
  -H "Authorization: Bearer <access_token>"
Endpoint group

EMV Tags

Decode EMV tag data – either for a stored transaction or from a raw EMV TLV string.

GET/api/emv/tags/{transactionid}Fetch EMV Tags By Transaction Identifier
GET/api/emv/tags/{emv_data}Pass Encrypted EMV Data
GET /api/emv/tags/{transactionid}

Fetch EMV Tags By Transaction Identifier

Bearer JWTor x-api-key

Will return the EMV tags submitted for a chip read request. Below video demonstrates how to get an authorization token so you can try out the examples Complete List Of EMV Tags

Path parameters
FieldTypeDescription
transactionidrequiredstringTransaction identifier or Raw EMV Buffer · Example: 384163623659230
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/emv/tags/{transactionid}" \
  -H "Authorization: Bearer <access_token>"
GET /api/emv/tags/{emv_data}

Pass Encrypted EMV Data

Bearer JWTor x-api-key

Will decode EMV tags as it is sent from the device. Below video demonstrates how to get an authorization token so you can try out the examples Complete List Of EMV Tags

Path parameters
FieldTypeDescription
emv_datarequiredstringRaw EMV Buffer That is submitted from the emv reader · Example: C00AFFFF000000050EA00186C2820158D96BDACB076B86230FDC8AE955C64F40E182B5B9E54FE…
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/emv/tags/{emv_data}" \
  -H "Authorization: Bearer <access_token>"
Endpoint group

Payment Log

Paged transaction history for the authenticated merchant, filterable by date range and search text.

GET/api/payment/log/{pagenumber}/{pagecount}/{startdate}/{enddate}/{filter}Payment Log
GET /api/payment/log/{pagenumber}/{pagecount}/{startdate}/{enddate}/{filter}

Payment Log

Bearer JWTor x-api-key

Retrieve log entries for a specific merchant within a date range

Header parameters
FieldTypeDescription
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
pagenumberrequiredintegerPage number to fetch · Example: 1
pagecountrequiredintegerNumber of records to return per page · Example: 50
startdaterequiredstringStart date in ISO format · Example: 2022-05-26T19:00:00
enddaterequiredstringEnd date in ISO format · Example: 2022-12-31T19:00:00
filterrequiredstring (all | info | error)End date in UTC format · Example: all
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/payment/log/{pagenumber}/{pagecount}/{startdate}/{enddate}/{filter}" \
  -H "Authorization: Bearer <access_token>"
Endpoint group

Receipts & Email

Send transaction receipts and templated email through the DeliverMe mail service host.

POST/api/emailEmail Receipt
GET/api/receipt/{approvalcode}/{transactionid}/{emailaddress}Send Receipt
GET/api/receipt/{approvalcode}/{transactionid}/{emailaddress}/{ccemailaddress}Send Receipt With CC Email Address
POST /api/email

Email Receipt

Bearer JWTHost: https://api-dev.deliverme.com

Allows you to send a receipt to a customer. Use values from the payment request and response to populate emails fields.

Body parameters
FieldTypeDescription
Sourceoptionalstring Example: noreply@electronicpayments.com
Templateoptionalstring Example: emv_receipt
Destinationoptionalobject[]
Destination[].ToAddressesoptionalstring
Typeoptionalinteger (1 | 0)* 0 - Use DeliverMe online order template. * 1 - Use buffer provided in TemplateData field. · Example: 1
TemplateDataoptionalstringThe template data field follows a strict format. If any field is not properly escaped or a space exists between the property name and value or any field is missing the email will not deliver. Fields that require masking contain asterisks. · Example: {"businessname":"Jacks Pizza","merchantstreet":"7800 S Congress Ave","merchan…
ConfigurationSetNameoptionalstringProviding this field allows Electronic Payments to receive notifications when emails fail to send. · Example: email-json
Responses
200Transaction processed400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://api-dev.deliverme.com/api/email" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
GET /api/receipt/{approvalcode}/{transactionid}/{emailaddress}

Send Receipt

Bearer JWTor x-api-keyHost: https://api-dev.deliverme.com

Send receipt to specified email address by authorization code and transaction identifie

Path parameters
FieldTypeDescription
approvalcoderequiredstringAuthorization number returned in payment transaction · Example: 123456
transactionidrequiredstringTransaction identifier returned in payment transaction · Example: 1234567890
emailaddressrequiredstringDestination Email Address · Example: john.doe@widget.com
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://api-dev.deliverme.com/api/receipt/{approvalcode}/{transactionid}/{emailaddress}" \
  -H "Authorization: Bearer <access_token>"
GET /api/receipt/{approvalcode}/{transactionid}/{emailaddress}/{ccemailaddress}

Send Receipt With CC Email Address

Bearer JWTor x-api-keyHost: https://api-dev.deliverme.com

Send receipt to specified email and cc email address by authorization code and transaction identifier

Path parameters
FieldTypeDescription
approvalcoderequiredstringAuthorization number returned in payment transaction · Example: 123456
transactionidrequiredstringTransaction identifier returned in payment transaction · Example: 1234567890
emailaddressrequiredstringDestination Email Address · Example: john.doe@widget.com
ccemailaddressrequiredstringCC Email Address · Example: jane.doe@widget.com
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://api-dev.deliverme.com/api/receipt/{approvalcode}/{transactionid}/{emailaddress}/{ccemailaddress}" \
  -H "Authorization: Bearer <access_token>"
Endpoint group

Batching & Settlement

Open-batch totals, batch transaction detail, and terminal-style batch settlement (settle, trailer, inquiry, upload) against the Cygma back end.

POST/api/batch/totalsBatch Total (Cygma Only)
GET/api/batch/transactions/{mid}/{batchid}Get All Payment Records For A Batch (Cygma Only)
POST/api/batch/settleClose Batch
POST/api/batch/settlementtrailerBatch Settlement Trailer (Cygma Only)
POST/api/batch/inquiryDeposit Inquiry (Fiserv Only)
POST /api/batch/totals

Batch Total (Cygma Only)

Bearer JWT

Before the Merchant batches out a 500 Settlement batch total message is sent with ProcessingCode 00 to Cygma/Switch to get the batch total. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-api-keyoptionalstringMerchant Application Key. Sending this header is highly recommended but is optional. In the future will be required. · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
merchantNumberrequiredstringNumber assigned by merchant financial institution · Example: 889901550594702
acquirerIDoptionalstringCode identifying the acquiring institution (e.g. merchant's bank) or its agent. Optional · Example: 411763
terminalIDoptionalstringThe terminal ID, assigned by CYGMA, is used to uniquely identify the terminal within a card acceptor acquirer ID. Optional · Example: PROCHG02
batchNumberrequiredstringSent to the Host in all request messages. The terminal assigns the Batch Number when the batch is closed. Batch numbers may be set during terminal initialization. Required for Normal Capture and not present in Pure Host Capture. Zero padded · Example: 00026
Responses
200Success400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/batch/totals" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
GET /api/batch/transactions/{mid}/{batchid}

Get All Payment Records For A Batch (Cygma Only)

Bearer JWT

Fetch all payment records from ProCharge by merchant id and batch id for transaction codes 1, 2 and 3 and that were approved only, no declines will be included. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-api-keyoptionalstringMerchant Application Key. Sending this header is highly recommended but is optional. In the future will be required. · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
midrequirednumberThe Procharge merchant id assigned to the batch. You may send the merchant number/card acquirer id insted of the merchant id as well. · Example: 889901550594702
batchidrequirednumberThe batch id for a given batch. You may send the merchant number or card aquirer id instead of the procharge batch id. · Example: 285630965
Responses
200Success400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/batch/transactions/{mid}/{batchid}" \
  -H "Authorization: Bearer <access_token>"
POST /api/batch/settle

Close Batch

Bearer JWT

Will settle and close an open batch. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-api-keyrequiredstringMerchant Application Key. Sending this header is highly recommended but is optional. In the future will be required. · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body – request shape 1: Cygma Close Batch Request
FieldTypeDescription
merchantNumberrequiredstringThe merchant number associated with the terminal is assigned by CYGMA · Example: 889901550594702
acquirerIDoptionalstringCode identifying the acquiring institution (e.g. merchant's bank) or its agent. Required for bulk uploads otherwise optional · Example: 411763
terminalIDoptionalstringThe terminal ID, assigned by CYGMA, is used to uniquely identify the terminal within a card acceptor acquirer ID. Required for bulk uploads otherwise optional · Example: PROCHG02
batchNumberrequiredstringSent to the Host in all request messages. Batch numbers will be set during terminal initialization. Required for Normal Capture and not present in Pure Host Capture. Zero padded · Example: 00001
batchIDrequiredstringRecord id for the batch number in ProCharge. Not required for bulk uploads otherwise required · Example: 12345
creditCardSalesCountrequirednumberTotal number of credit card transaction in the batch. · Example: 5
creditCardSalesAmountrequirednumberTotal dollar amount of credit card sales in the batch. Format $$$$$$$$$$¢¢ · Example: 2500
creditCardRefundCountrequirednumberTotal number of credit card refunds in the batch. · Example: 1
creditCardRefundAmountrequirednumberTotal dollar amount of credit card refunds in the batch. Format $$$$$$$$$$¢¢ · Example: 500
debitCardSalesCountrequirednumberTotal number of debit card sales in the batch. · Example: 2
debitCardSalesAmountrequirednumberTotal dollar amount of debit card sales in the batch. Format $$$$$$$$$$¢¢ · Example: 1000
debitCardRefundCountrequirednumberTotal number of debit card refunds in the batch. · Example: 1
debitCardRefundAmountrequirednumberTotal dollar amount of debit card refunds in the batch. Format $$$$$$$$$$¢¢ · Example: 500
Body – request shape 2: Fiserv Close Batch Request
FieldTypeDescription
merchantNumberrequiredstringThe merchant number associated with the terminal is assigned by CYGMA · Example: 889901550594702
terminalIDoptionalstringThe terminal ID, assigned by Fiserv, is used to uniquely identify the terminal for the merchant number. Pass 0 for online processing · Example: PP001.
batchNumberrequiredstringSent to the Host in all request messages. Batch numbers will be set during terminal initialization. Required for Normal Capture and not present in Pure Host Capture. · Example: 0
batchIDrequiredintegerRecord id for the batch number in ProCharge. Not required for bulk uploads otherwise required · Example: 12345
deviceIDoptionalstringDevice ID for the batch in ProCharge. Not required for bulk uploads otherwise required · Example: 12345
batchedItemsoptionalintegerTotal number of offline items in the batch plus 1. Required · Example: 12345
itemNumberrequiredintegerTotal number of items in the batch plus 1. Required · Example: 12345
totalBatchAmountrequirednumberTotal amount to be settled for the batch. Required · Example: 125.00
Responses
200Batch Settlment Processed400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/batch/settle" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
POST /api/batch/settlementtrailer

Batch Settlement Trailer (Cygma Only)

Bearer JWT

To be performed after batch upload (MessageType 0320). Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-api-keyrequiredstringMerchant Application Key. Sending this header is highly recommended but is optional. In the future will be required. · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
merchantNumberrequiredstringThe merchant number associated with the terminal is assigned by CYGMA · Example: 889901550594702
acquirerIDoptionalstringCode identifying the acquiring institution (e.g. merchant's bank) or its agent. Optional · Example: 411763
terminalIDoptionalstringThe terminal ID, assigned by CYGMA, is used to uniquely identify the terminal within a card acceptor acquirer ID. Optional · Example: PROCHG02
batchNumberrequiredstringSent to the Host in all request messages. The terminal assigns the Batch Number when the batch is closed. Batch numbers may be set during terminal initialization. Required for Normal Capture and not present in Pure Host Capture. Zero padded · Example: 00001
batchIDrequiredstringRecord id for the batch number in ProCharge. Not required for bulk uploads otherwise required · Example: 12345
creditCardSalesCountrequirednumberTotal number of credit card transaction in the batch. · Example: 5
creditCardSalesAmountrequirednumberTotal dollar amount of credit card sales in the batch. Format $$$$$$$$$$¢¢ · Example: 2500
creditCardRefundCountrequirednumberTotal number of credit card refunds in the batch. · Example: 1
creditCardRefundAmountrequirednumberTotal dollar amount of credit card refunds in the batch. Format $$$$$$$$$$¢¢ · Example: 500
debitCardSalesCountrequirednumberTotal number of debit card sales in the batch. · Example: 2
debitCardSalesAmountrequirednumberTotal dollar amount of debit card sales in the batch. Format $$$$$$$$$$¢¢ · Example: 1000
debitCardRefundCountrequirednumberTotal number of debit card refunds in the batch. · Example: 0
debitCardRefundAmountrequirednumberTotal dollar amount of debit card refunds in the batch. Format $$$$$$$$$$¢¢ · Example: 0
Responses
200Transaction processed400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/batch/settlementtrailer" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
POST /api/batch/inquiry

Deposit Inquiry (Fiserv Only)

Bearer JWT

The deposit inquiry transaction allows a merchant to view the last batch closed with the same Merchant Number and Device Id from previous processing day.

Body parameters
FieldTypeDescription
applicationKeyrequiredstringApplication key specific to a merchant that allows them to process payments
targetrequiredstring (9 | 6)Target Environment * 6 - Production * 9 - Sandbox · Example: 9
terminalIDrequiredstringTerminal identification - code identifying the balancing features available to the POS from the Host; variable-length, nine-position (includes decimal point), required field · Example: PP001.
merchantNumberrequiredstringNumber assigned by merchant's financial institution; variable-length, 19-position, required field; edited for valid merchant number · Example: 889901550594702
deviceIDrequiredstring### Device Identification - Merchant-assigned code identifying the device at the merchant's location; variable-length, optional field; edited for alphanumeric values This field is required if there is one MERCHANT NUMBER assigned to more than one terminal at a merchant's location. It is also required during certification.
Responses
200Transaction processed400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/batch/inquiry" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
POST /api/batch/upload

Batch Upload Request (Cygma Only)

Bearer JWT

A Batch Upload message is used when the terminal and host are out of balance. The Terminal is expected to send a Batch Upload message for each captured transaction. After all captured transactions are uploaded a settlement trailer request will need to be submitted. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-api-keyoptionalstringMerchant Application Key. Sending this header is highly recommended but is optional. In the future will be required. · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
merchantNumberrequiredstringNumber assigned by merchant financial institution · Example: 889901550594702
acquirerIDoptionalstringCode identifying the acquiring institution (e.g. merchant's bank) or its agent. Optional · Example: 411763
terminalIDoptionalstringThe terminal ID, assigned by CYGMA, is used to uniquely identify the terminal within a card acceptor acquirer ID. Optional · Example: PROCHG02
batchNumberrequiredstringSent to the Host in all request messages. The terminal assigns the Batch Number when the batch is closed. Batch numbers may be set during terminal initialization. Required for Normal Capture and not present in Pure Host Capture. Zero padded · Example: 00026
amountrequiredstringTransaction amount that was approved.
LocalTransactionDateoptionalstringThe date stamp of the transaction when it was originally entered into the POS.
LocalTransactionTimeoptionalstringThe local timestamp (based on the time zone for which the terminal is located) of the transaction.
cardNumberoptionalstringThe Primary Account Number (PAN) that was used to pay for the order. Do not send if sending Track2Data or card token
tokenrequiredstringCard token that was returned by the original transaction request. If present will override Track2Data or Card Number.
trackDataoptionalstringTrack 2 data that was used on the original transaction request. Do not send if sending Token or PAN.
retrievalReferenceNumberoptionalstringRetrieval Reference Number that was returned by the original transaction request. This would be the Transaction Identifier.
approvalCoderequiredstringApproval code that was returned by the original transaction request
itemNumberrequiredstringInvoiceERCReferenceNumber aka Item Number that was submitted for the original transaction request.
Responses
200Success400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/batch/upload" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
Endpoint group

Cygma Reporting

Look up settled Cygma transactions and batches by batch number, STAN, reference number, transaction id, or date range.

GET/api/cygma/batch/{batchno}Get Transactions (Cygma Only)
GET/api/cygma/stan/{stan}Get Transaction (Cygma Only)
GET/api/cygma/refno/{refno}Get Cygma Transaction (Cygma Only)
GET/api/cygma/transid/{transid}Get Transaction (Cygma Only)
GET/api/cygma/{startdate}/{enddate}/{pageno}/{pagecount}Get Transactions (Cygma Only)
GET/api/cygma/batches/{startdate}/{enddate}/{pageno}/{pagecount}Batch History (Cygma Only)
GET /api/cygma/batch/{batchno}

Get Transactions (Cygma Only)

Bearer JWT

Fetch all transactions by batch number. This request returns results from the transactions recorded in the cloud Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-api-keyoptionalstringMerchant Application Key. Sending this header is highly recommended but is optional. In the future will be required. · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
Path parameters
FieldTypeDescription
batchnorequiredstringThe batch number to retrieve transactions for. · Example: 2
Responses
200Success400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/cygma/batch/{batchno}" \
  -H "Authorization: Bearer <access_token>"
GET /api/cygma/stan/{stan}

Get Transaction (Cygma Only)

Bearer JWT

Fetch transaction by system trace audit number. This request returns results from the transactions recorded in the cloud Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-api-keyoptionalstringMerchant Application Key. Sending this header is highly recommended but is optional. In the future will be required. · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
Path parameters
FieldTypeDescription
stanrequirednumberThe system trace audit number number assigned to a transaction. · Example: 21165
Responses
200Success400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/cygma/stan/{stan}" \
  -H "Authorization: Bearer <access_token>"
GET /api/cygma/refno/{refno}

Get Cygma Transaction (Cygma Only)

Bearer JWT

Fetch transaction by retrieval reference number. This request returns results from the transactions recorded in the cloud

Header parameters
FieldTypeDescription
x-api-keyoptionalstringMerchant Application Key. Sending this header is highly recommended but is optional. In the future will be required. · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
Path parameters
FieldTypeDescription
refnorequiredstringThe retrieval reference number assigned to a transaction. · Example: 516305021141
Responses
200Success400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/cygma/refno/{refno}" \
  -H "Authorization: Bearer <access_token>"
GET /api/cygma/transid/{transid}

Get Transaction (Cygma Only)

Bearer JWT

Fetch transaction by network transaction identifier. This request returns results from the transactions recorded in the cloud Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-api-keyoptionalstringMerchant Application Key. Sending this header is highly recommended but is optional. In the future will be required. · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
Path parameters
FieldTypeDescription
transidrequiredstringThe network transaction identifier assigned to a transaction. · Example: 516305021141
Responses
200Success400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/cygma/transid/{transid}" \
  -H "Authorization: Bearer <access_token>"
GET /api/cygma/{startdate}/{enddate}/{pageno}/{pagecount}

Get Transactions (Cygma Only)

Bearer JWT

Fetch transaction by date range. This request return results from the transactions recorded in the cloud.

Header parameters
FieldTypeDescription
x-api-keyoptionalstringMerchant Application Key. Sending this header is highly recommended but is optional. In the future will be required. · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
Path parameters
FieldTypeDescription
startdaterequiredstringBeginning date GMT · Example: 2025-06-24T04:00:00.000
enddaterequiredstringEnd date GMT · Example: 2025-06-25T23:59:59.999
pagenorequirednumberPage number to fetch · Example: 1
pagecountrequirednumberTotal number of records to return per page · Example: 50
Responses
200Success400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/cygma/{startdate}/{enddate}/{pageno}/{pagecount}" \
  -H "Authorization: Bearer <access_token>"
GET /api/cygma/batches/{startdate}/{enddate}/{pageno}/{pagecount}

Batch History (Cygma Only)

Bearer JWT

Fetch all close batch requests by date range. This request return results from the transactions recorded in the cloud.

Header parameters
FieldTypeDescription
x-api-keyoptionalstringMerchant Application Key. Sending this header is highly recommended but is optional. In the future will be required. · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
Path parameters
FieldTypeDescription
startdaterequiredstringBeginning date GMT · Example: 2025-06-24T04:00:00.000
enddaterequiredstringEnd date GMT · Example: 2025-06-25T23:59:59.999
pagenorequirednumberPage number to fetch · Example: 1
pagecountrequirednumberTotal number of records to return per page · Example: 50
Responses
200Success400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/cygma/batches/{startdate}/{enddate}/{pageno}/{pagecount}" \
  -H "Authorization: Bearer <access_token>"
Endpoint group

ACH – Request Access Token

Exchange your bearer token for a short-lived ACH access token. Every other ACH endpoint requires it in the x-ach-access-token header.

GET/api/ach/authenticateACH Request Access Token
GET /api/ach/authenticate

ACH Request Access Token

Bearer JWT

The access_token returned from a successful call will be used as the "Access Token" for OAuth 2.0 Authorization when making API calls. Pass this token to all other ach calls in the x-ach-access-token header.

Header parameters
FieldTypeDescription
x-ach-client-idrequiredstringMerchant Client ID. Will be assigned once merchant has been boarded with Vericheck. · Example: d9e9376f-299b-4022-9d47-03f358ab34ef
x-ach-client-keyrequiredstringMerchant Client Secret. Will be assigned once merchant has been boarded with Vericheck. · Example: CVt8Q~VsAl1SxJ~8AdeVCgFIcNm5VwIYRD0A7acN
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/ach/authenticate" \
  -H "Authorization: Bearer <access_token>"
Endpoint group

ACH – Customers

Create, update, and list the ACH customers (name, contact, bank account) that payments, payouts, and prenotes reference.

POST/api/ach/customerAdd Customer
PUT/api/ach/customerUpdate Customer
GET/api/ach/customer/{sort}/{pagelimit}/{pagenumber}List Customers
GET/api/ach/customer/{customer_uuid}Get Customer Detail
POST /api/ach/customer

Add Customer

Bearer JWTor x-api-key+ x-ach-access-token

Create a new customer to allow setup of subscription transactions, and track customer activity. __Note__ Bank account numbers must be unique. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
namerequiredstringCustomer Name
emailrequiredstringCustomer Email Address
phonerequiredstringCustomer Phone Number
bank_accountrequiredobject
bank_account.routing_numberoptionalstringBank Routing Number - for Sandbox use 130000006, 140000009, 150000002, 160000005, 170000008, 180000001, 190000004 · Example: 130000006
bank_account.account_numberoptionalstringBank Account Number - 4-17 chars
bank_account.account_typeoptionalstring (Checking | Savings | Loan | General Ledger)* Checking, Savings, Loan, General Ledger · Example: Checking
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/ach/customer" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
PUT /api/ach/customer

Update Customer

Bearer JWTor x-api-key+ x-ach-access-token

Update a specific customer to modify any current account and/or demographic data by passing the specific values in the body params list. The specified customer is updated by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
uuidrequiredstringCustomer ID · Example: CUS_5924215528622940167897456456
nameoptionalstringCustomer Name
emailoptionalstringCustomer Email Address
phoneoptionalstringCustomer Phone Number
activeoptionalboolean
bank_accountoptionalobject
bank_account.routing_numberoptionalstringBank Routing Number - for Sandbox use 130000006, 140000009, 150000002, 160000005, 170000008, 180000001, 190000004 · Example: 130000006
bank_account.account_numberoptionalstringBank Account Number - 4-17 chars
bank_account.account_typeoptionalstring (Checking | Savings | Loan | General Ledger)* Checking, Savings, Loan, General Ledger · Example: Checking
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X PUT "https://dev-api.procharge.com/api/ach/customer" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
GET /api/ach/customer/{sort}/{pagelimit}/{pagenumber}

List Customers

Bearer JWTor x-api-key+ x-ach-access-token

Retrieve a list of customers to review their current account and demographic data. Below video demonstrates how to get an authorization token so you can try out the examples.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
sortrequiredstringSorts by created_at or name (use '-' for descending, '+' for ascending followed by 'created_at or 'name') · Example: -created_at
pagelimitrequiredintegerNumber of record to be returned per page · Example: 100
pagenumberrequiredintegerPage number to be fetched · Example: 1
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/ach/customer/{sort}/{pagelimit}/{pagenumber}" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>"
GET /api/ach/customer/{customer_uuid}

Get Customer Detail

Bearer JWTor x-api-key+ x-ach-access-token

Retrieve information for a specific customer to review account and demographic details. Use the unique customer uuid provided when the customer was created.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
customer_uuidrequiredstringRetrieve detail for a specific customer · Example: CUS_5861788066656788487897456456
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/ach/customer/{customer_uuid}" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>"
Endpoint group

ACH – Payments

Debit a customer bank account: create payments (by bank details or token), search payment history, fetch or cancel a payment.

POST/api/ach/paymentsList Payments
GET/api/ach/payment/{payment_uuid}Get Payment Detail
PUT/api/ach/payment/{payment_uuid}Update Payment
POST/api/ach/paymentMake Payment
POST/api/ach/payment/tokenMake Payment With Customer Token
POST /api/ach/payments

List Payments

Bearer JWTor x-api-key+ x-ach-access-token

Retrieve a list of payments you've previously created. The payments are returned in sorted order based on the sort query param, or by default of the most recent payments appearing first. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
sortrequiredstringsort by create_date, status, amount, name (use '-' for descending) · Example: -1
pageLimitrequiredintegernumber of record to be returned per page · Example: 100
pageNumberrequiredintegerpage number to be returned · Example: 1
statusrequiredstringmust be one of: ACCEPTED, ERROR, ORIGINATED, SETTLED, PARTIAL SETTLED, VERIFYING, VOID, RETURN, NSF DECLINED
createdAtGterequiredstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
createdAtLterequiredstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
originatedAtGteoptionalstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
originatedAtLteoptionalstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
settledAtGteoptionalstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
settledAtLteoptionalstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
returnedAtGteoptionalstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
returnedAtLteoptionalstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/ach/payments" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
GET /api/ach/payment/{payment_uuid}

Get Payment Detail

Bearer JWTor x-api-key+ x-ach-access-token

Retrieve information for a specific payment that was previously created. Supply the unique payment uuid that was returned during the original payment creation and the API will return the corresponding payment details. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
payment_uuidrequiredstringView payment detail for a specific payment transaction · Example: PMT_13SY8BB308C8F70A14B0CB487198670C9B863
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/ach/payment/{payment_uuid}" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>"
PUT /api/ach/payment/{payment_uuid}

Update Payment

Bearer JWTor x-api-key+ x-ach-access-token

Update a payment. Use this to update a previously created payment in Accepted status, that you want to void for example.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
payment_uuidrequiredstringPayment uuid · Example: PMT_13SY8BADB835D5EFE4612BC8FCC544D0C12CD
Body parameters
FieldTypeDescription
statusoptionalstring Example: VOID
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X PUT "https://dev-api.procharge.com/api/ach/payment/{payment_uuid}" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
POST /api/ach/payment

Make Payment

Bearer JWTor x-api-key+ x-ach-access-token

Create a new payment transaction with the customer object. Payment data including the customer account and contact information is used to create a new payment for the customer. This is when the customer is making a payment to the merchant

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
amountrequirednumber
standard_entry_classrequiredstringMust be one of: PPD, CCD, BOC, WEB, TEL, POP Valid values: ACK &#9; ACH Payment Acknowledgment ARC &#9; Accounts Receivable Entry ATX &#9; Financial EDI Acknowledgment BOC &#9; Back Office Conversion Entry CCD &#9; Corporate Credit or Debit Entry CIE &#9; Customer Initiated Entry COR &#9; Notification of Change or Refused Notification of Change CTX &#9; Corporate Trade Exchange DNE &#9; Death Notification Entry ENR &#9; Automated Enrollment Entry IAT &#9; International ACH Transactions MTE &#9; Machine Transfer Entry POP &#9; Point-of-Purchase Entry POS &#9; Point-of-Sale Entry PPD &#9; Prearranged Payment and Deposit Entry RCK &#9; Re-presented Check Entry SHR &#9; Shared Network Transaction TEL &#9; Telephone-Initiated Entry TRC &#9; Check Truncation Entry TRX &#9; Check Truncation Entries Exchange WEB &#9; Internet-Initiated/Mobile Entry · Example: WEB
descriptionrequiredstringDescription of the transaction. Up to 10 character description
addendaoptionalstringA label sent to the customer for something they would identify like an invoice number.
customeroptionalobject
customer.namerequiredstringCustomer Name
customer.emailoptionalstringCustomer Email
customer.activeoptionalbooleantrue / false
customer.bank_accountoptionalobject
customer.bank_account.routing_numberrequiredstringCustomer Bank Routing Number · Example: 021406667
customer.bank_account.account_numberrequiredstringCustomer Bank Account Number · Example: 0130005457
customer.bank_account.account_typerequiredstringValid values: CHECKING, SAVINGS, LOAN, GL · Example: checking
checkoptionalobject
check.check_numberoptionalstringCheck Number - required for POP SEC
check.check_image_frontoptionalstringFront of Check Image- required for POP SEC
check.check_image_backoptionalstringBack of Check Image- required for POP SEC
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/ach/payment" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
POST /api/ach/payment/token

Make Payment With Customer Token

Bearer JWTor x-api-key+ x-ach-access-token

Create a new payment transaction with the customer object. Payment data including the customer account and contact information is used to create a new payment for the customer.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Idempotency-Keyoptionalstring Example: IK-3941a37f-4f7d-4f36-9b94-14f02b4312a9
Body parameters
FieldTypeDescription
amountrequirednumber
standard_entry_classrequiredstringMust be one of: PPD, CCD, BOC, WEB, TEL, POP Valid values: ACK &#9; ACH Payment Acknowledgment ARC &#9; Accounts Receivable Entry ATX &#9; Financial EDI Acknowledgment BOC &#9; Back Office Conversion Entry CCD &#9; Corporate Credit or Debit Entry CIE &#9; Customer Initiated Entry COR &#9; Notification of Change or Refused Notification of Change CTX &#9; Corporate Trade Exchange DNE &#9; Death Notification Entry ENR &#9; Automated Enrollment Entry IAT &#9; International ACH Transactions MTE &#9; Machine Transfer Entry POP &#9; Point-of-Purchase Entry POS &#9; Point-of-Sale Entry PPD &#9; Prearranged Payment and Deposit Entry RCK &#9; Re-presented Check Entry SHR &#9; Shared Network Transaction TEL &#9; Telephone-Initiated Entry TRC &#9; Check Truncation Entry TRX &#9; Check Truncation Entries Exchange WEB &#9; Internet-Initiated/Mobile Entry
customeroptionalobject
customer.uuidrequiredstring Example: CUS_836216284255727616abc3742419
descriptionrequiredstringDescription of the transaction. Maximum 10 chars
addendaoptionalstringA label sent to the customer for something they would identify like an invoice number.
checkoptionalobject
check.check_numberoptionalstringCheck Number - required for POP SEC
check.check_image_frontoptionalstringFront of Check Image- required for POP SEC
check.check_image_backoptionalstringBack of Check Image- required for POP SEC
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/ach/payment/token" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
Endpoint group

ACH – Payouts

Credit (push funds to) a customer bank account: create payouts, search payout history, fetch or cancel a payout.

POST/api/ach/payoutMake Payout
POST/api/ach/payout/tokenMake Payout With Customer Token
POST/api/ach/payoutsList Payouts
GET/api/ach/payout/{payout_uuid}Get Payout Detail
PUT/api/ach/payout/{payout_uuid}Update Payout
POST /api/ach/payout

Make Payout

Bearer JWTor x-api-key+ x-ach-access-token

Create a new payout transaction with the customer object. This will create a credit payout to an entity e.g. customer, vendor, using the customer account and contact information. This is when the merchant is depositing funds to the customer's account. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
amountrequirednumber
standard_entry_classrequiredstringMust be one of: PPD, CCD, BOC, WEB, TEL, POP Valid values: ACK &#9; ACH Payment Acknowledgment ARC &#9; Accounts Receivable Entry ATX &#9; Financial EDI Acknowledgment BOC &#9; Back Office Conversion Entry CCD &#9; Corporate Credit or Debit Entry CIE &#9; Customer Initiated Entry COR &#9; Notification of Change or Refused Notification of Change CTX &#9; Corporate Trade Exchange DNE &#9; Death Notification Entry ENR &#9; Automated Enrollment Entry IAT &#9; International ACH Transactions MTE &#9; Machine Transfer Entry POP &#9; Point-of-Purchase Entry POS &#9; Point-of-Sale Entry PPD &#9; Prearranged Payment and Deposit Entry RCK &#9; Re-presented Check Entry SHR &#9; Shared Network Transaction TEL &#9; Telephone-Initiated Entry TRC &#9; Check Truncation Entry TRX &#9; Check Truncation Entries Exchange WEB &#9; Internet-Initiated/Mobile Entry · Example: WEB
descriptionrequiredstringDescription of the transaction. Up to 10 character description
addendaoptionalstringA label sent to the customer for something they would identify like an invoice number.
customeroptionalobject
customer.namerequiredstringCustomer Name
customer.emailoptionalstringCustomer Email
customer.activeoptionalbooleantrue / false
customer.bank_accountoptionalobject
customer.bank_account.routing_numberrequiredstringCustomer Bank Routing Number · Example: 021406667
customer.bank_account.account_numberrequiredstringCustomer Bank Account Number · Example: 0130005457
customer.bank_account.account_typerequiredstringValid values: CHECKING, SAVINGS, LOAN, GL · Example: checking
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/ach/payout" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
POST /api/ach/payout/token

Make Payout With Customer Token

Bearer JWTor x-api-key+ x-ach-access-token

Create a new payout transaction with the customer token. This will create a credit payout to an entity e.g. customer, vendor, using the customer token provided for a previously created customer. This is when the merchant is depositing funds to another customer's account.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
amountrequirednumber
standard_entry_classrequiredstringMust be one of: PPD, CCD, BOC, WEB, TEL, POP Valid values: ACK &#9; ACH Payment Acknowledgment ARC &#9; Accounts Receivable Entry ATX &#9; Financial EDI Acknowledgment BOC &#9; Back Office Conversion Entry CCD &#9; Corporate Credit or Debit Entry CIE &#9; Customer Initiated Entry COR &#9; Notification of Change or Refused Notification of Change CTX &#9; Corporate Trade Exchange DNE &#9; Death Notification Entry ENR &#9; Automated Enrollment Entry IAT &#9; International ACH Transactions MTE &#9; Machine Transfer Entry POP &#9; Point-of-Purchase Entry POS &#9; Point-of-Sale Entry PPD &#9; Prearranged Payment and Deposit Entry RCK &#9; Re-presented Check Entry SHR &#9; Shared Network Transaction TEL &#9; Telephone-Initiated Entry TRC &#9; Check Truncation Entry TRX &#9; Check Truncation Entries Exchange WEB &#9; Internet-Initiated/Mobile Entry
customeroptionalobject
customer.uuidrequiredstring Example: CUS_836216284255727616abc3742419
descriptionrequiredstringDescription of the transaction. Maximum 10 chars
addendaoptionalstringA label sent to the customer for something they would identify like an invoice number.
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/ach/payout/token" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
POST /api/ach/payouts

List Payouts

Bearer JWTor x-api-key+ x-ach-access-token

Retrieve a list of payouts you've previously created. The payouts are returned in sorted order based on the sort query param, or by default of the most recent payouts appearing first. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
sortrequiredstringsort by create_date, status, amount, name (use '-' for descending) · Example: -1
pageLimitrequiredintegernumber of record to be returned per page · Example: 100
pageNumberrequiredintegerpage number to be returned · Example: 1
statusrequiredstringmust be one of: ACCEPTED, ERROR, ORIGINATED, SETTLED, PARTIAL SETTLED, VERIFYING, VOID, RETURN, NSF DECLINED
createdAtGterequiredstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
createdAtLterequiredstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
originatedAtGteoptionalstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
originatedAtLteoptionalstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
settledAtGteoptionalstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
settledAtLteoptionalstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
returnedAtGteoptionalstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
returnedAtLteoptionalstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/ach/payouts" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
GET /api/ach/payout/{payout_uuid}

Get Payout Detail

Bearer JWTor x-api-key+ x-ach-access-token

Retrieve information for a specific Payout transaction. Use the unique payout transaction uuid for a payout transaction to retrieve the details for the specific payout.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
payout_uuidrequiredstringPayout uuid · Example: POT_13SY8B73B83BFB7B142D0A9111814A5DD237C
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/ach/payout/{payout_uuid}" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>"
PUT /api/ach/payout/{payout_uuid}

Update Payout

Bearer JWTor x-api-key+ x-ach-access-token

Update a payout. Use this to update a previously created payout in Accepted status that you want to void.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
payout_uuidrequiredstringPayout uuid · Example: POT_13SY8B73B83BFB7B142D0A9111814A5DD237C
Body parameters
FieldTypeDescription
statusoptionalstring Example: VOID
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X PUT "https://dev-api.procharge.com/api/ach/payout/{payout_uuid}" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
Endpoint group

ACH – Refunds

Refund a settled ACH payment in full or in part, search refund history, fetch or cancel a refund.

POST/api/ach/refundsList Refunds
POST/api/ach/refundPost Refund
GET/api/ach/refund/{refund_uuid}Get Refund Detail
PUT/api/ach/refund/{refund_uuid}Update Refund
POST /api/ach/refunds

List Refunds

Bearer JWTor x-api-key+ x-ach-access-token

Retrieve a list of refunded payments you've previously created. The refunds are returned in sorted order based on the sort query param, or by default of the most recent refunds appearing first. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
sortrequiredstringsort by create_date, status, amount, name (use '-' for descending) · Example: -1
pageLimitrequiredintegernumber of record to be returned per page · Example: 100
pageNumberrequiredintegerpage number to be returned · Example: 1
statusrequiredstringmust be one of: ACCEPTED, ERROR, ORIGINATED, SETTLED, PARTIAL SETTLED, VERIFYING, VOID, RETURN, NSF DECLINED
createdAtGterequiredstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
createdAtLterequiredstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
originatedAtGteoptionalstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
originatedAtLteoptionalstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
settledAtGteoptionalstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
settledAtLteoptionalstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
returnedAtGteoptionalstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
returnedAtLteoptionalstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/ach/refunds" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
POST /api/ach/refund

Post Refund

Bearer JWTor x-api-key+ x-ach-access-token

Create a new Refund transaction using the original payment transaction UUID. This will refund a previous payment transaction that has Settled status. This is when the merchant is refunding a payment to a clients's account. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
original_payment_uuidoptionalstring Example: PMT_RV6TUD9A8714C7B5C43279BE72A255B17C0D4
amountoptionalnumber Example: 1.00
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/ach/refund" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
GET /api/ach/refund/{refund_uuid}

Get Refund Detail

Bearer JWTor x-api-key+ x-ach-access-token

Retrieve information for a specific refund transaction. Use the unique transaction uuid for a refund payment to retrieve the details for the specific refund. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
refund_uuidrequiredstringView detail for a specific refund transaction · Example: RFN_13SY8613B3FB2D8A24EF3B2A9F69E316C11AD
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/ach/refund/{refund_uuid}" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>"
PUT /api/ach/refund/{refund_uuid}

Update Refund

Bearer JWTor x-api-key+ x-ach-access-token

Void a refund. Use this to update a previously created refund that you want to void.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
refund_uuidrequiredstringRefund uuid · Example: RFN_13SY8884755FA069644A4926A253D576DE3D3
Body parameters
FieldTypeDescription
statusoptionalstring Example: VOID
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X PUT "https://dev-api.procharge.com/api/ach/refund/{refund_uuid}" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
Endpoint group

ACH – Bank Validations (PreNotes)

Zero-dollar prenote validation of a customer bank account before moving real money, plus prenote search, fetch, and cancel.

POST/api/ach/validationsList Validations
POST/api/ach/validateValidate Bank Account
GET/api/ach/validate/{prenote_uuid}Get Validation Detail
PUT/api/ach/validate/{prenote_uuid}Update Validation
POST /api/ach/validations

List Validations

Bearer JWTor x-api-key+ x-ach-access-token

Retrieve a list of bank account validation requests you've previously created. The bank account validations are returned in sorted order based on the sort or by default of the most recent validations appearing first.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
sortrequiredstringsort by create_date, status, amount, name (use '-' for descending) · Example: -1
pageLimitrequiredintegernumber of record to be returned per page · Example: 100
pageNumberrequiredintegerpage number to be returned · Example: 1
statusrequiredstringmust be one of: ACCEPTED, ERROR, ORIGINATED, SETTLED, PARTIAL SETTLED, VERIFYING, VOID, RETURN, NSF DECLINED
createdAtGterequiredstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
createdAtLterequiredstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
originatedAtGteoptionalstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
originatedAtLteoptionalstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
settledAtGteoptionalstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
settledAtLteoptionalstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
returnedAtGteoptionalstringDate is greater than or equal to. Use YYYY-MM-DD HH:MM:SS
returnedAtLteoptionalstringDate is less than or equal to. Use YYYY-MM-DD HH:MM:SS
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/ach/validations" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
POST /api/ach/validate

Validate Bank Account

Bearer JWTor x-api-key+ x-ach-access-token

Create a new bank account validation request (prenote) transaction with the customer object. Request (Prenote) data including the customer account and contact information is used to create a new request (prenote) to validate a bank account for the customer. Prenotes are used to validate the accuracy of the account information for the customer.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
standard_entry_classrequiredstringMust be one of: PPD, CCD, BOC, WEB, TEL, POP Valid values: ACK &#9; ACH Payment Acknowledgment ARC &#9; Accounts Receivable Entry ATX &#9; Financial EDI Acknowledgment BOC &#9; Back Office Conversion Entry CCD &#9; Corporate Credit or Debit Entry CIE &#9; Customer Initiated Entry COR &#9; Notification of Change or Refused Notification of Change CTX &#9; Corporate Trade Exchange DNE &#9; Death Notification Entry ENR &#9; Automated Enrollment Entry IAT &#9; International ACH Transactions MTE &#9; Machine Transfer Entry POP &#9; Point-of-Purchase Entry POS &#9; Point-of-Sale Entry PPD &#9; Prearranged Payment and Deposit Entry RCK &#9; Re-presented Check Entry SHR &#9; Shared Network Transaction TEL &#9; Telephone-Initiated Entry TRC &#9; Check Truncation Entry TRX &#9; Check Truncation Entries Exchange WEB &#9; Internet-Initiated/Mobile Entry · Example: WEB
descriptionrequiredstringDescription of the transaction. Up to 10 character description
addendaoptionalstringA label sent to the customer for something they would identify like an invoice number.
customeroptionalobject
customer.namerequiredstringCustomer Name
customer.emailoptionalstringCustomer Email
customer.activeoptionalbooleantrue / false
customer.bank_accountoptionalobject
customer.bank_account.routing_numberrequiredstringCustomer Bank Routing Number · Example: 021406667
customer.bank_account.account_numberrequiredstringCustomer Bank Account Number · Example: 0130005457
customer.bank_account.account_typerequiredstringValid values: CHECKING, SAVINGS, LOAN, GL · Example: checking
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/ach/validate" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
GET /api/ach/validate/{prenote_uuid}

Get Validation Detail

Bearer JWTor x-api-key+ x-ach-access-token

Retrieve information for a specific validation/prenote transaction that was previously created. Supply the unique prenote uuid that was returned during the original prenote/validation creation and the API will return the corresponding prenote/validation details.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
prenote_uuidrequiredstringPrenote uuid · Example: NTE_RV6TU6493F1176E80449FAEB52C519A529320
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/ach/validate/{prenote_uuid}" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>"
PUT /api/ach/validate/{prenote_uuid}

Update Validation

Bearer JWTor x-api-key+ x-ach-access-token

Void an existing Validation/Prenote request. Use this to update a previously created validation/prenote request that you want to void.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
prenote_uuidrequiredstringPrenote uuid · Example: NTE_RV6TU6493F1176E80449FAEB52C519A529320
Body parameters
FieldTypeDescription
statusoptionalstring Example: VOID
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X PUT "https://dev-api.procharge.com/api/ach/validate/{prenote_uuid}" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
Endpoint group

ACH – Events

Poll the ACH event stream (status changes, returns, settlements) from the last pointer you processed.

GET/api/ach/eventsGet Events
GET/api/ach/events/{last_pointer}Get Events Since Last Pointer
GET /api/ach/events

Get Events

Bearer JWTor x-api-key+ x-ach-access-token

Retrieve a list of transaction status updates. As events during the transaction flow occur, the transaction status is updated and Events list will include the status updates. Up to 1000 status events will be returned and multiple calls to Get /Events will be used to pull all events based on the exists_more_events flag. new_pointer is used to pull the events from the last pointer provided. The initial call will have no pointer.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/ach/events" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>"
GET /api/ach/events/{last_pointer}

Get Events Since Last Pointer

Bearer JWTor x-api-key+ x-ach-access-token

Retrieve a list of transaction events using the last_pointer. Use this request using the last pointer returned from the initial Event List request. Each subsequent request will use the last pointer returned from the previous request.

Header parameters
FieldTypeDescription
x-ach-access-tokenrequiredstringACH Access Token. This value will be overriden by the xAchAccessToken global header if set by the Authorize button. · Example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWM…
merchantnumberrequiredstringMerchant Identifier · Example: 889901550594702
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
last_pointerrequiredstringLast Event Pointer · Example: 164864386416
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/ach/events/{last_pointer}" \
  -H "Authorization: Bearer <access_token>" \
  -H "x-ach-access-token: <ach_token>"
Endpoint group

Gift Cards

EPI gift card processing – activate, redeem, reload, balance inquiry, and transfers via a single transaction-code endpoint.

POST/api/giftcardRedeem Gift Card
POST /api/giftcard

Redeem Gift Card

Bearer JWTor x-api-key

Redeem's a giftcard for a given amount. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
merchantnumberrequiredstringMerchant Identifier · Example: 530961210083176
Body parameters
FieldTypeDescription
transactionCodeoptionalstringValid Transaction Code Values * 001 - BALANCE * 002 - REDEEM * 003 - ADD_VALUE * 004 - VOID_TRAN * 005 - ACTIVATE * 006 - DEACT_WITH_REFUND * 007 - DEACT_WITHOUT_REFUND * 008 - CARD_REISSUE * 009 - STORE_CREDIT * 010 - SIGN_ON * 011 - SIGN_OFF * 012 - TIP_ADJUST * 013 - BATCH_CLOSE * 014 - BALANCE_TRANSFER * 020 - ADD_POINTS * 021 - REDEEM_POINTS * 022 - EXP_DATE_ADJUST * 023 - BALANCE_POINTS * 024 - ACTIVATE_POINTS * 025 - POINT_REFUND * 026 - POINT_BALANCE_TRANSFER * 027 - VOID_POINTS * 028 - DEACT_POINTS * 029 - TIP_ADJ_POINTS_DONOTUSE * 060 - HOUSECHARGE_INQUIRY * 061 - HOUSECHARGE_PURCHASE * 062 - HOUSECHARGE_PAYMENT * 063 - HOUSECHARGE_ACTIVATE * 064 - HOUSECHARGE_RETURN * 065 - HOUSECHARGE_FINANCE * 118 - CUSTOMER_SERVICE * 200 - CARD_HISTORY * 301 - EMPLOYEE_SIGN_IN * 302 - EMPLOYEE_SIGN_OUT * 303 - EMPLOYEE_CHANGE_PIN * 401 - SELF_REGISTER
cardnooptionalstringGift card number. This is sent for gift cards entered manually. For Balance Transfers this is the recipient gift card for the transfer.
fromCardNooptionalstringWhen performing a balance transfer (014) this is the originating gift card number for the funds. Required for Balance Transfer.
track2optionalstringEncrypted gift card number data. May be track2 format or a card number
amountoptionalnumberAmount to redeem · Example: 1.00
industryTypeoptionalstringValid Transaction Code Values * 0 - INACTIVE * 1 - RETAIL * 2 - RESTAURANT * 3 - HOTEL * 4 - FUEL * 10 - HOUSE ACCOUNT · Example: 1
entryModeoptionalstringHow the card information was entered. Swiped, Manual, Chip, EMV... * -1 - OMITTED * 0 - OTHER * 1 - MAGNETIC * 2 - MANUAL * 3 - BARCODE * 4 - CONTACTLESS * 5 - EMV · Example: 2
deviceModeloptionalstringBluetooth identifier model. * CHB - BBPOS Chipper * IDT - IDTech
transactionIDoptionalstringA unique identifier assigned to a gift card transaction. Required for voids and balance transfers.
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/giftcard" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
Endpoint group

Invoices

Create a hosted gateway invoice for a customer and read an invoice back by id.

POST/api/gateway/invoiceCreate Invoice
GET/api/gateway/invoice/{invoiceid}Fetch invoice by invoice id
POST /api/gateway/invoice

Create Invoice

Bearer JWTor x-api-key

Creates a Procharge Invoice. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Body parameters
FieldTypeDescription
MerchantNumberrequiredstringMerchant Identifier
AmountrequirednumberAmount to redeem · Example: 1.00
AddressrequiredstringCustomer Street Address · Example: 1161 Scott Ave
DueDaterequiredstringEncrypted gift card number data. May be track2 format or a card number
CityrequiredstringCustomer City · Example: Calverton
ZiprequiredstringCustomer Zipcode · Example: 11933
StaterequiredstringCustomer State · Example: NY
EmailrequiredstringCustomer Email · Example: john.doe@acme.com
CustomerIDoptionalnumberProcharge Gateway customer id number. Default is null
FirstNamerequiredstringCustomer First Name · Example: John
LastNamerequiredstringCustomer Last Name · Example: Doe
InvoiceModeoptionalnumberType of invoice * 1 - Regular * 2 - Auto Bill * 3 - Recurring Bill * 4 - QB Invoice · Example: 1
DescriptionrequiredstringA description for the invoice · Example: Repair tools for garage
InvoiceOperationModeoptionalstringType of operation to be performed for invoice. Default is 'Add' · Example: Add
SourceoptionalstringApplication identifier for who is originating the invoice * wg - Procharge Gateway. This is the default. * ie - iOS mobile * ae - Android mobile * dm - DeliverMe
TaxAmountoptionalnumberTax amount for invoice · Example: 1.00
TaxPercentoptionalnumberTax rate for invoice · Example: 6.75
XMLInvoiceItemsoptionalstringInvoice items in xml format. Note: If submitting from postman you must escape the double quotes. · Example: <InvoiceItemData><InvoiceLineItems ItemID="1" ItemRate="0.00" ItemQuantity="1…
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X POST "https://dev-api.procharge.com/api/gateway/invoice" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d @request.json   # see the JSON tab
GET /api/gateway/invoice/{invoiceid}

Fetch invoice by invoice id

Bearer JWTor x-api-key

Retrieve a list of transaction events using the last_pointer. Use this request using the last pointer returned from the initial Event List request. Each subsequent request will use the last pointer returned from the previous request. Below video demonstrates how to get an authorization token so you can try out the examples

Header parameters
FieldTypeDescription
x-api-keyrequiredstringMerchant Application Key · Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtb2RlIjoiZyIsIm1pZCI6Ijg4OTkwMTU1MDU5…
Path parameters
FieldTypeDescription
invoiceidrequirednumberRecord ID for Invoice · Example: 447799869
Responses
200Request Successful400Bad request401Authorization information is missing or invalid403Not Authorized404Not Found500Server Error503Service Unavailable
↑ Request – what you send
curl -X GET "https://dev-api.procharge.com/api/gateway/invoice/{invoiceid}" \
  -H "Authorization: Bearer <access_token>"
Transcribed in full from the OpenAPI 3.1 specification (“EPI Payment Service” v2.0.8) published at api.procharge.com/api/swagger. Deprecated – for new builds use the Cygma API or Merchant360 API.