Bank Account Number. Do not include any dashes, spaces, or additional zeros.
- Plaid Public Token Exchange
Shift4 Payment API (1.7.43)
https://api.shift4test.com/api/rest/v1/
https://api.shift4api.net/api/rest/v1/
Request
Used to verify an ach bank account prior to sending an ACH sale/refund transaction.
Integration Methods:
- Host Direct
See the Integration Methods and URLs Section sections of the Development Quick Start guide for details regarding each processing option.
Refers to the version of the program or application that is sending requests to Shift4. The following special characters are not allowed: $ % : ^ - ~ < > , ? “ ” ‘ ’ { } [ ] \ + =
Refers to the name of the program or application that is sending requests to Shift4. This should be the name of the program that you purchased or created. The following special characters are not allowed: $ % : ^ - ~ ` < > , ? “ ” ‘ ’ { } [ ] \ + =
Refers to the vendor or partner that designed and certified the interface. The information you use in this field should match what Shift4 has on file or what was agreed upon in your Integration Plan. The following special characters are not allowed: $ % : ^ - ~ ` < > , ? “ ” ‘ ’ { } [ ] \ + =
A security credential used to authenticate API requests and all i4Go® authorizeClient/preauthorizeClient requests. An Access Token is the alias for the merchant account and interface being used. The Access Token is required in all requests except an Access Token Exchange request, which generates an Access Token using an authToken
and clientGuid
.
The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
The routing number identifying the bank.
Bank account type
Value | Description |
---|---|
PC | Personal Checking |
PS | Personal Savings |
CC | Corporate Checking |
CS | Corporate Savings |
The type of verification used to validate the account.
Value | Description |
---|---|
P | Prenotification |
Public source IP Address where the request originates, not the IP Address of the web server.
- Host Direct Test URL
https://api.shift4test.com/api/rest/v1/ach/verify
- Host Direct Production URL
https://api.shift4api.net/api/rest/v1/ach/verify
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
{ "dateTime": "2023-02-08T09:18:23.283-07:00", "ach": { "accountNumber": "1234567890", "routingNumber": "121000248", "accountType": "PC", "verificationType": "P", "accountHolderName": "John Smith" }, "sourceIp": "172.110.166.244" }
Transaction was processed
{ "result": [ { "dateTime": "2023-02-08T09:18:23.283-07:00", "merchant": { "mid": 15877, "name": "Merchant XYZ" }, "token": { "value": "9829283019231234", "type": "ACH" }, "transaction": { "authSource": "A", "responseCode": "P" }, "notificationId": "6ca3c55e-1b7c-4cad-8ae2-cac052b5510d", "server": { "name": "TM01CE" } } ] }
Request
Used to process an ach sale transaction.
Integration Methods:
- Host Direct
See the Integration Methods and URLs Section sections of the Development Quick Start guide for details regarding each processing option.
See the JSON Body Schemas for more details on the various JSON body formats.
Refers to the version of the program or application that is sending requests to Shift4. The following special characters are not allowed: $ % : ^ - ~ < > , ? “ ” ‘ ’ { } [ ] \ + =
Refers to the name of the program or application that is sending requests to Shift4. This should be the name of the program that you purchased or created. The following special characters are not allowed: $ % : ^ - ~ ` < > , ? “ ” ‘ ’ { } [ ] \ + =
Refers to the vendor or partner that designed and certified the interface. The information you use in this field should match what Shift4 has on file or what was agreed upon in your Integration Plan. The following special characters are not allowed: $ % : ^ - ~ ` < > , ? “ ” ‘ ’ { } [ ] \ + =
A security credential used to authenticate API requests and all i4Go® authorizeClient/preauthorizeClient requests. An Access Token is the alias for the merchant account and interface being used. The Access Token is required in all requests except an Access Token Exchange request, which generates an Access Token using an authToken
and clientGuid
.
The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
Object containing information regarding the amount being requested. The total
field within the object is required and specifies the amount being requested.
10 character invoice number assigned by the interface to identify a transaction. An invoice number serves as a unique key that identifies a transaction within a batch in Shift4's Gateway.
Bank Account Number. Do not include any dashes, spaces, or additional zeros.
The routing number identifying the bank.
Bank account type
Value | Description |
---|---|
PC | Personal Checking |
PS | Personal Savings |
CC | Corporate Checking |
CS | Corporate Savings |
Send as true
if the ACH account was verified through a 3rd party.
Specifies the payment type. If not provided in the request the transaction will default to ST
.
Value | Description |
---|---|
S | Single Entry. Consumer authorizes the use of their ACH credentials for a single transaction. Each subsequent transaction requires the Consumer to authorize the use of their credentials. |
R | Recurring. Transaction is sent on a set time frame for a set amount. For example, a monthly gym membership. |
ST | Standing Authorization. Consumer authorizes the use of their ACH credentials for the initial and subsequent transactions. Each subsequent transaction does not require the consumer to authorize the use of their credentials. |
- Host Direct Test URL
https://api.shift4test.com/api/rest/v1/ach/sale
- Host Direct Production URL
https://api.shift4api.net/api/rest/v1/ach/sale
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
{ "dateTime": "2023-02-08T09:18:23.283-07:00", "amount": { "total": 135.87 }, "transaction": { "invoice": "192029" }, "ach": { "accountNumber": "1234567890", "routingNumber": "121000248", "accountHolderName": "John Smith", "accountType": "PC", "accountVerified": true }, "sourceIp": "172.110.166.244" }
{ "result": [ { "dateTime": "2023-02-08T09:18:23.283-07:00", "amount": { "total": 135.87 }, "merchant": { "mid": 15877, "name": "Merchant XYZ" }, "token": { "value": "9829283019231234", "type": "ACH" }, "ach": { "balanceVerificationResult": "VS" }, "transaction": { "authSource": "A", "invoice": "192029", "responseCode": "P" }, "notificationId": "6ca3c55e-1b7c-4cad-8ae2-cac052b5510d", "server": { "name": "TM01CE" } } ] }
Request
Used to process an ach refund transaction.
Integration Methods:
- Host Direct
See the Integration Methods and URLs Section sections of the Development Quick Start guide for details regarding each processing option.
See the JSON Body Schemas for more details on the various JSON body formats.
Refers to the version of the program or application that is sending requests to Shift4. The following special characters are not allowed: $ % : ^ - ~ < > , ? “ ” ‘ ’ { } [ ] \ + =
Refers to the name of the program or application that is sending requests to Shift4. This should be the name of the program that you purchased or created. The following special characters are not allowed: $ % : ^ - ~ ` < > , ? “ ” ‘ ’ { } [ ] \ + =
Refers to the vendor or partner that designed and certified the interface. The information you use in this field should match what Shift4 has on file or what was agreed upon in your Integration Plan. The following special characters are not allowed: $ % : ^ - ~ ` < > , ? “ ” ‘ ’ { } [ ] \ + =
A security credential used to authenticate API requests and all i4Go® authorizeClient/preauthorizeClient requests. An Access Token is the alias for the merchant account and interface being used. The Access Token is required in all requests except an Access Token Exchange request, which generates an Access Token using an authToken
and clientGuid
.
The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
Object containing information regarding the amount being requested. The total
field within the object is required and specifies the amount being requested.
10 character invoice number assigned by the interface to identify a transaction. An invoice number serves as a unique key that identifies a transaction within a batch in Shift4's Gateway.
The invoice number from the original sale. Used to link the refund to the original sale.
Note: For US and Canadian processing: Although the invoice number is sent as a JSON string it is a numeric value. No alpha characters are allowed.
For processing outside of the US and Canada alpha characters are allowed.
Bank Account Number. Do not include any dashes, spaces, or additional zeros.
The routing number identifying the bank.
Bank account type
Value | Description |
---|---|
PC | Personal Checking |
PS | Personal Savings |
CC | Corporate Checking |
CS | Corporate Savings |
- Host Direct Test URL
https://api.shift4test.com/api/rest/v1/ach/refund
- Host Direct Production URL
https://api.shift4api.net/api/rest/v1/ach/refund
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
{ "dateTime": "2023-02-08T09:18:23.283-07:00", "amount": { "total": 135.87 }, "transaction": { "invoice": "192030", "originalInvoice": "192029" }, "ach": { "accountNumber": "1234567890", "routingNumber": "121000248", "accountType": "PC", "accountHolderName": "John Smith" }, "sourceIp": "172.110.166.244" }
{ "result": [ { "dateTime": "2023-02-08T09:18:23.283-07:00", "amount": { "total": 135.87 }, "merchant": { "mid": 15877, "name": "Merchant XYZ" }, "token": { "value": "9829283019231234", "type": "ACH" }, "transaction": { "authSource": "A", "invoice": "192030", "originalInvoice": "192029", "responseCode": "P" }, "notificationId": "6ca3c55e-1b7c-4cad-8ae2-cac052b5510d", "server": { "name": "TM01CE" } } ] }
Request
Used to create a Plaid Link token to use with the Plaid Link UI.
Integration Methods:
- Host Direct
See the Integration Methods and URLs Section sections of the Development Quick Start guide for details regarding each processing option.
Refers to the version of the program or application that is sending requests to Shift4. The following special characters are not allowed: $ % : ^ - ~ < > , ? “ ” ‘ ’ { } [ ] \ + =
Refers to the name of the program or application that is sending requests to Shift4. This should be the name of the program that you purchased or created. The following special characters are not allowed: $ % : ^ - ~ ` < > , ? “ ” ‘ ’ { } [ ] \ + =
Refers to the vendor or partner that designed and certified the interface. The information you use in this field should match what Shift4 has on file or what was agreed upon in your Integration Plan. The following special characters are not allowed: $ % : ^ - ~ ` < > , ? “ ” ‘ ’ { } [ ] \ + =
A security credential used to authenticate API requests and all i4Go® authorizeClient/preauthorizeClient requests. An Access Token is the alias for the merchant account and interface being used. The Access Token is required in all requests except an Access Token Exchange request, which generates an Access Token using an authToken
and clientGuid
.
The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
A unique ID representing the end user. Typically this will be a user ID number from your application. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.
The language that Link should be displayed in. If no language is sent it will default to English.
Value | Description |
---|---|
da | Danish |
nl | Dutch |
en | English |
et | Estonian |
fr | French |
de | German |
it | Italian |
lv | Latvian |
lt | Lithuanian |
no | Norwegian |
po | Polish |
ro | Romanian |
es | Spanish |
se | Swedish |
- Host Direct Test URL
https://api.shift4test.com/api/rest/v1/ach/plaid/link_token/create
- Host Direct Production URL
https://api.shift4api.net/api/rest/v1/ach/plaid/link_token/create
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
{ "dateTime": "2024-05-21T09:18:23.283-07:00", "plaid": { "client_user_id": "ae1a59fe-8646-4637-bbb8-d270856c508c", "language": "en", "redirectUrl": "merchant.com" } }
{ "result": [ { "dateTime": "2023-02-08T09:18:23.283-07:00", "merchant": { "mid": 15877, "name": "Merchant XYZ" }, "transaction": { "authSource": "A", "responseCode": "S" }, "plaid": { "link_token": "link-sandbox-bea285c1-ad79-4191-8d1b-aaf537f7df59", "expiration": "2023-02-13T21:00:25Z", "client_user_id": "ae1a59fe-8646-4637-bbb8-d270856c508c" }, "server": { "name": "TM01CE" } } ] }
Request
Used to create a Plaid Link token to use with the Plaid Link UI.
Integration Methods:
- Host Direct
See the Integration Methods and URLs Section sections of the Development Quick Start guide for details regarding each processing option.
Refers to the version of the program or application that is sending requests to Shift4. The following special characters are not allowed: $ % : ^ - ~ < > , ? “ ” ‘ ’ { } [ ] \ + =
Refers to the name of the program or application that is sending requests to Shift4. This should be the name of the program that you purchased or created. The following special characters are not allowed: $ % : ^ - ~ ` < > , ? “ ” ‘ ’ { } [ ] \ + =
Refers to the vendor or partner that designed and certified the interface. The information you use in this field should match what Shift4 has on file or what was agreed upon in your Integration Plan. The following special characters are not allowed: $ % : ^ - ~ ` < > , ? “ ” ‘ ’ { } [ ] \ + =
A security credential used to authenticate API requests and all i4Go® authorizeClient/preauthorizeClient requests. An Access Token is the alias for the merchant account and interface being used. The Access Token is required in all requests except an Access Token Exchange request, which generates an Access Token using an authToken
and clientGuid
.
The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
- Host Direct Test URL
https://api.shift4test.com/api/rest/v1/ach/plaid/public_token/exchange
- Host Direct Production URL
https://api.shift4api.net/api/rest/v1/ach/plaid/public_token/exchange
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
{ "dateTime": "2024-05-21T09:18:23.283-07:00", "ach": { "accountHolderName": "John Smith" }, "plaid": { "public_token": "public-sandbox-0b7f845f-fa53-4e0a-b77b-9476e71be5ae", "metadata": "{\"status\":null,\"link_session_id\":\"81fcbacf-e2f8-422b-b041-5e629b32ae3c\",\"institution\":{\"name\":\"Houndstooth Bank\",\"institution_id\":\"ins_109512\"},\"accounts\":[{\"id\":\"dvMPrZ9kR1C8xdRvLR6QIaREG5vBo6SBjaRrr\",\"name\":\"Plaid Checking\",\"mask\":\"0000\",\"type\":\"depository\",\"subtype\":\"checking\",\"verification_status\":\"pending_automatic_verification\",\"class_type\":null}],\"account\":{\"id\":\"dvMPrZ9kR1C8xdRvLR6QIaREG5vBo6SBjaRrr\",\"name\":\"Plaid Checking\",\"mask\":\"0000\",\"type\":\"depository\",\"subtype\":\"checking\",\"verification_status\":\"pending_automatic_verification\",\"class_type\":null},\"account_id\":\"dvMPrZ9kR1C8xdRvLR6QIaREG5vBo6SBjaRrr\",\"transfer_status\":null,\"wallet\":null,\"public_token\":\"public-sandbox-b5e58738-1a75-4a51-b4de-10f24c561038\"}" } }
{ "result": [ { "dateTime": "2023-02-08T09:18:23.283-07:00", "merchant": { "mid": 15877, "name": "Merchant XYZ" }, "transaction": { "authSource": "A", "responseCode": "A" }, "notificationId": "6ca3c55e-1b7c-4cad-8ae2-cac052b5510d", "ach": { "accountLastFour": "7890" }, "token": { "value": "9829283019231234", "type": "ACH" }, "server": { "name": "TM01CE" } } ] }
Request
This is an outbound HTTP POST message from the Shift4 gateway to the merchant's environment that provides status of the ach request. This notification request will be sent from Shift4 to the URL provided in the merchant's boarding configuration.
This requires the interface vendor to establish a listening service to receive these requests.
- ACH Verification Status Update
- ACH Sale Status Update
- ACH Refund Status Update
- ACH Dispute Initiated
- ACH Dispute Status Update
- ACH Distribute Status Update
Notification ID value generated by Shift4 and returned in the response. Used for matching webhook notifications back to their original request.
- Host Direct Test URL
https://api.shift4test.com/api/rest/v1/ach-notification
- Host Direct Production URL
https://api.shift4api.net/api/rest/v1/ach-notification
{ "event": { "type": "ach.verify.verification_status_update" }, "ach": { "verificationType": "P" }, "token": { "value": "9829283019231234", "type": "ACH" }, "transaction": { "authSource": "A", "responseCode": "A" }, "notificationId": "6ca3c55e-1b7c-4cad-8ae2-cac052b5510d", "server": { "name": "TM01CE" } }