DEVELOPER

Custom Pay API Specification

Version 1.0

Custom Pay API

sales

This section includes credit card payment authorization and capture endpoints

Auth and Capture

post /sale

This endpoint authorizes and captures funds within the same transaction, provided the authorization portion is approved and is otherwise able to settle. When an auth and capture transaction is run against an account number, the authorization occurs for the dollar amount of the transaction. Immediately after, the capture automatically occurs so that it will settle during the next settlement window.

Parameters
EPI-Id required
string
Example:
1111-222222-3-4

Loading...

EPI-Signature required
string
Example:
0123456789ABCDEF

Loading...

Content-Type required
string
Example:
application/json

Loading...

EPI-Trace
string

Loading...

Request Schema
amount required
number
Example:
11.12

Loading...

account
string
Maximum:
30
Example:
4111111111111111

Loading...

expirationDate
string
Maximum:
4
Example:
2501

Loading...

capture
boolean
Default:
true

Loading...

cvv2
string
Example:
123

Loading...

transaction
integer
Example:
123

Loading...

batchID required
number

Loading...

industryType required
string
Enum:
P
M
E
Example:
P

Loading...

cardEntryMethod required
string
Maximum:
1
Enum:
A
B
D
G
H
M
Q
R
X
Z
0
1
2
3
E
Example:
G

Loading...

orderNumber
string
Maximum:
25
Example:
65421

Loading...

invoiceNumber
string
Maximum:
25
Example:
ABC-123

Loading...

address
object

Loading...

trackData
string
Maximum:
256
Example:
B4111111111111111^CARD/TEST^10121010000012345678

Loading...

emvData
string
Maximum:
510
Example:
9F34030200009F260828BF9D3AFCC8DD529F2701809F1008010103A0000000009F37044A BAA8C49F3602008595054040040000820258009F3303E0F8C89F1A0208409F3501229F1E0832323135 333731309F03060000000000009A031504309C01009F02060000000010005F2A0208409F090200025F 3401009F4104000000039F0607A0000000041010

Loading...

referencenumber
string
Maximum:
25
Example:
12345678

Loading...

rentalnumber
string
Maximum:
25
Example:
4512

Loading...

userdata
object

Loading...

taxExempt
string
Maximum:
1
Enum:
Y
N
Example:
Y

Loading...

special
object

Loading...

enhancedData
array

Loading...

taxAmount
number
Example:
1.12

Loading...

system/tranType
string

Loading...

pinBlock
string
Example:
2DD950BTA77CAD538FFF9876544510E0Z01A

Loading...

cardID
string
Enum:
0
1
M
P
Example:
P

Loading...

Example Request
Request with TransactionID (BRIC)
{
  "amount": 127.99,
  "batchID": 201203,
  "transaction": 181,
  "cardEntryMethod": "Z",
  "industryType": "E"
}
Example Response
200 Successful request
400 Bad request.
401 Unauthorized: EPI-Signature is required. Or the generated HMAC does not match the endpoint and JSON payload received. Please review your HMAC-SHA256 procedure or the endpoint/body that are being sent.
403 Forbidden: EPI-Id provided doesn’t have the right to perform the request
404 Requested resource was not found
405 HTTP method is not allowed
500 Internal server error

Capture

post /sale/capture

This endpoint captures the previous pre-authorization. A capture can be performed on the amount equal to or less than the dollar amount of the referenced pre-authorization. This endpoint queries the transaction database to identify an auth.

Parameters
EPI-Id required
string
Example:
1111-222222-3-4

Loading...

EPI-Signature required
string
Example:
0123456789ABCDEF

Loading...

Content-Type required
string
Example:
application/json

Loading...

EPI-Trace
string

Loading...

capture required
boolean
Default:
true

Loading...

Request Schema
amount
number
Example:
11.12

Loading...

account required
string
Maximum:
30
Example:
4111111111111111

Loading...

transaction
integer
Example:
123

Loading...

Example Request
{
  "account": "4111111111111111",
  "amount": 127.99,
  "transaction": 123
}
Example Response
200 Successful request
400 Invalid request
401 Unauthorized: EPI-Signature is required. Or the generated HMAC does not match the endpoint and JSON payload received. Please review your HMAC-SHA256 procedure or the endpoint/body that are being sent.
403 Forbidden: EPI-Id provided doesn’t have the right to perform the request
404 Requested resource was not found
405 HTTP method is not allowed
500 Internal server error

Batch Close

put /batch

This endpoint closes all captured transactions from all open batches.

Parameters
EPI-Id required
string
Example:
1111-222222-3-4

Loading...

EPI-Signature required
string
Example:
0123456789ABCDEF

Loading...

Content-Type required
string
Example:
application/json

Loading...

EPI-Trace
string

Loading...

Example Response
200 Request was successful
400 Invalid request
401 Unauthorized: EPI-Signature is required. Or the generated HMAC does not match the endpoint and JSON payload received. Please review your HMAC-SHA256 procedure or the endpoint/body that are being sent.
403 Forbidden: EPI-Id provided doesn’t have the right to perform the request
404 Requested resource was not found
405 HTTP method is not allowed
500 Internal server error

Capture by BRIC

put /sale/{BRIC}/capture

This endpoint captures a previous pre-authorization by its BRIC token. A capture can be performed on the amount equal to or less than the dollar amount of the referenced pre-authorization.

Parameters
EPI-Id required
string
Example:
1111-222222-3-4

Loading...

EPI-Signature required
string
Example:
0123456789ABCDEF

Loading...

Content-Type required
string
Example:
application/json

Loading...

EPI-Trace
string

Loading...

BRIC required
string
Example:
00DXDBWHB6WA5HJ3D71

Loading...

Request Schema
amount required
number
Example:
11.12

Loading...

batchID required
number

Loading...

transaction required
integer
Example:
123

Loading...

industryType required
string
Enum:
P
M
E
Example:
P

Loading...

cardEntryMethod required
string
Maximum:
1
Enum:
A
B
D
G
H
M
Q
R
X
Z
0
1
2
3
E
Example:
G

Loading...

Example Request
{
  "amount": 127.99,
  "batchID": 201217,
  "transaction": 123,
  "industryType": "E",
  "cardEntryMethod": "Z"
}
Example Response
200 Successful request
400 Invalid request
401 Unauthorized: EPI-Signature is required. Or the generated HMAC does not match the endpoint and JSON payload received. Please review your HMAC-SHA256 procedure or the endpoint/body that are being sent.
403 Forbidden: EPI-Id provided doesn’t have the right to perform the request
404 Requested resource was not found
405 HTTP method is not allowed
500 Internal server error

Incremental Authorization

put /sale/inc/{BRIC}

This endpoint adds a specific amount of money to an AuthorizeOnly transaction and incrementally authorizes a new amount. The original transaction BRIC (EPX Transaction Identifier) is required. The amount in the response example is the additional amount needed. For example, if the initial authorization was $20 and the new amount needs to be $30, the json payload would show an Amount of 10.

Parameters
EPI-Id required
string
Example:
1111-222222-3-4

Loading...

EPI-Signature required
string
Example:
0123456789ABCDEF

Loading...

Content-Type required
string
Example:
application/json

Loading...

EPI-Trace
string

Loading...

BRIC required
string
Example:
00DXDBWHB6WA5HJ3D71

Loading...

Request Schema
amount required
number
Example:
11.12

Loading...

batchID required
number

Loading...

transaction required
integer
Example:
123

Loading...

industryType required
string
Enum:
P
M
E
Example:
P

Loading...

cardEntryMethod required
string
Maximum:
1
Enum:
A
B
D
G
H
M
Q
R
X
Z
0
1
2
3
E
Example:
G

Loading...

Example Request
{
  "amount": 10,
  "batchID": 201217,
  "transaction": 123,
  "industryType": "E",
  "cardEntryMethod": "Z"
}
Example Response
200 Successful request
400 Invalid request
401 Unauthorized: EPI-Signature is required. Or the generated HMAC does not match the endpoint and JSON payload received. Please review your HMAC-SHA256 procedure or the endpoint/body that are being sent.
403 Forbidden: EPI-Id provided doesn’t have the right to perform the request
404 Requested resource was not found
405 HTTP method is not allowed
500 Internal server error

AVS Sale

post /avs

The account verification transaction is used to validate a customer's account information before running a financial transaction. This is done by sending a $0.00 amount during the transaction. The /avs endpoint requires Account, Expiration Date, Transaction ID, Card Entry Method, and Industry Type in the payload. Optional fields that will help with AVS and validation are Address, Zip Code, and CVV2

Parameters
EPI-Id required
string
Example:
1111-222222-3-4

Loading...

EPI-Signature required
string
Example:
0123456789ABCDEF

Loading...

Content-Type required
string
Example:
application/json

Loading...

EPI-Trace
string

Loading...

Request Schema
amount
number
Example:
11.12

Loading...

account required
string
Maximum:
30
Example:
4111111111111111

Loading...

expirationDate required
string
Maximum:
4
Example:
2501

Loading...

batchID required
number

Loading...

transaction required
integer
Example:
123

Loading...

industryType required
string
Enum:
P
M
E
Example:
P

Loading...

cardEntryMethod required
string
Maximum:
1
Enum:
A
B
D
G
H
M
Q
R
X
Z
0
1
2
3
E
Example:
G

Loading...

cvv2
string
Example:
123

Loading...

address
object

Loading...

Example Request
{
  "account": "4111111111111111",
  "expirationDate": "2512",
  "cvv2": "123",
  "transaction": 123,
  "industryType": "E",
  "cardEntryMethod": "E",
  "batchID": 201217,
  "address": {
    "firstName": "Joe",
    "lastName": "Doe",
    "address": "123 Main Street",
    "state": "DE",
    "zipCode": "12345"
  }
}
Example Response
200 Request was successful
400 Invalid request
401 Unauthorized: EPI-Signature is required. Or the generated HMAC does not match the endpoint and JSON payload received. Please review your HMAC-SHA256 procedure or the endpoint/body that are being sent.
403 Forbidden: EPI-Id provided doesn’t have the right to perform the request
404 Requested resource was not found
405 HTTP method is not allowed
500 Internal server error

Sale with BRIC

post /sale/{BRIC}

The BRIC is being used to reference a previous credit card transactions GUID / Token in the EPX system. Since the EPX BRIC is a unique reference value, there is no need to include the account number and expiration date. If the address and zip code was supplied with the original transaction for the BRIC in use it will be included with the transaction request

Parameters
EPI-Id required
string
Example:
1111-222222-3-4

Loading...

EPI-Signature required
string
Example:
0123456789ABCDEF

Loading...

Content-Type required
string
Example:
application/json

Loading...

EPI-Trace
string

Loading...

BRIC required
string
Example:
00DXDBWHB6WA5HJ3D71

Loading...

Request Schema
amount required
number
Example:
11.12

Loading...

batchID required
number

Loading...

transaction required
integer
Example:
123

Loading...

industryType required
string
Enum:
P
M
E
Example:
P

Loading...

cardEntryMethod required
string
Maximum:
1
Enum:
A
B
D
G
H
M
Q
R
X
Z
0
1
2
3
E
Example:
G

Loading...

Example Request
{
  "amount": 127.99,
  "batchID": 201203,
  "transaction": 181,
  "cardEntryMethod": "Z",
  "industryType": "E"
}
Example Response
200 Successful request
400 Bad request
401 Unauthorized: EPI-Signature is required. Or the generated HMAC does not match the endpoint and JSON payload received. Please review your HMAC-SHA256 procedure or the endpoint/body that are being sent.
403 Forbidden: EPI-Id provided doesn’t have the right to perform the request
404 Requested resource was not found
405 HTTP method is not allowed
500 Internal server error
©2025 North is a registered DBA of NorthAB, LLC. All rights reserved. North is a registered ISO of BMO Harris Bank N.A., Chicago, IL, Citizens Bank N.A., Providence, RI, The Bancorp Bank, Philadelphia, PA, FFB Bank, Fresno, CA, Wells Fargo Bank, N.A., Concord, CA, and PNC Bank, N.A.