Payments v0.81.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Create, Schedule and manage payment batches, payment batch templates (future), and payment contacts.
Payment batches are collections of one or more payments (or drafts) to one or more third-parties. An ACH batch is a payment batch with a payment batch type of ach
. A payment can also be a wire transfer (type wireTransfer
). Each batch can only manage one type of payment.
Each batch contains a list of payment instructions, which include an amount and specific payment details for that payment contact, such as an ACH payment to a specific bank account identified by a routing number and account number, or the intermediary financial institution and beneficiary financial institution for a wire transfer. Batches have a payment direction. In a credit batch, the business pays one or more recipients. In a debit batch, the business drafts payment from one or more payers. Batches imported from an ACH file may have payment instructions in both directions. Wire transfers must be credit
.
The third-parties involved in the payments are known as payment contacts. Each payment contact provides relevant information about a contact needed to facilitate a batch payment, such as a physical address and phone numbers. Payment contacts are used to create an association between payees and their accounts. They contain payment methods which are used to populate payment batch templates and payment batches, along with financial institution accounts and payment amounts.
A payment contact can contain multiple payment methods. Payment methods may contain a contact's financial institution account information or other account identification fields. A payment contact can be designated as being the primary
method. Only one payment method can be designated as primary
. If a new payment method is set as the primary method when the payment contact has an already existing primary payment method, the new payment method becomes the primary method.
A batch also has a schedule which consists of a scheduled date and optional recurrence. The schedule may be a one-time or recurring payment.
All the payments in a batch either draw from or are credited to a settlement account, usually a business checking account. The payment can be either a summary (all payment instructions are aggregated into one transaction) against the settlement account) or detailed settlement (one transaction per payment instruction).
Saved payment batches may have one or more problems associated with them:
- No payment instructions
- Insufficient funds for the payment
- The sum of all payments in the batch may exceed customer limits
- Some payment instructions may have invalid data, such as a 0 amount, an invalid ACH routing number, or an invalid account number
- Missing or invalid intermediary or beneficiary financial institutions for wire transfers
- It is past the cutoff time of the approval due date
If a payment batch contains new payment contacts whose ACH payment details have not yet been verified, the API supports creating and submitting a prenote batch which verifies the ACH payment routing number and account number where needed.
After editing all the payment details and payment instructions and all problems have been resolved, the customer may submit the payment batch. if the batch also requires additional approval from other business users, the author can list potential approvers and request approval from those with approval authority. Once all approvals have been given, the batch is scheduled for processing after the cutoff time on the derived processing date. An approver may reject the batch, requiring changes to it, and the approval process starts over.
The API provides an operation to list pending, scheduled, and previously processed or rejected payment batches.
Payment batches can be deleted in bulk by using the deletePaymentBatches
operation. Payment batches are not deleted if they are already processing or have been processed. When using deletePaymentBatches
, if any of payment batches are ineligible for deletion, they are excluded from processing. All remaining payment batches from the list will be deleted.
Approval Flows
The financial institution may require one or more account holders to approve payment batches. The listEligiblePaymentBatchApprovers
operation returns a list of eligible approvers. The customer creating or editing the batch should select one or more from that list and add them to the batch with the addPaymentBatchApprovers
operation. The length of the approvals
array in the batch indicates the minimum number of approvals before a payment batch may be processed.
If a customer has submit
permission on the batch, they can submit a batch with the submitPaymentBatch
operation. If they also have approval
permission, their approval is implicitly given. The batch remains in the pendingApproval
state as long as the number of approvals given is less than required. Other approvers can either approve the batch (approvePaymentBatch
) or reject it (rejectPaymentBatch
). Once the minimum number of approvers have approved the batch, its state changes to scheduled
. Customers with unlock
permissions may also remove all approvals (unlockPaymentBatch
) of a scheduled
batch in order to make the batch editable, for example to change the processing date. Rejected batches require updating to address the given reason for rejection; rejecting also removes all approvals. After removing all approvals or rejecting a payment batch, the approval process starts over.
Dates
Payments have several dates associated with them:
- The scheduled date is the target date when the payment must be completed. For example, if payroll is due the last day of the month, the scheduled date for May is the 31st. The scheduled date is required when creating a payment batch. The remaining dates are derived from the scheduled date.
- The effective date is the date when the processing must be completed. For example, if the payroll payments' scheduled date falls on a weekend or holiday, the effective date is computed so the payroll deposits complete the processing day immediately before. Thus, if the scheduled May 31 is a Memorial Day Monday, the effective date is Friday May 28.
- The approval due date is computed as the date when all approvals must be given (before the financial institution cutoff date) in order for the payment processing to begin and complete by the scheduled date. This may be a day earlier than the effective date.
Download OpenAPI Definition (YAML)
Base URLs:
License: Apiture API License
Authentication
- API Key (
apiKey
)- header parameter: API-Key
- API Key based client identification. See details at Secure Access.
- OpenID Connect authentication (
accessToken
)- OpenId Connect (OIDC) authentication/authorization. The client uses the
authorization_endpoint
andtoken_endpoint
to obtain an access token to pass in theAuthorization
header. Those endpoints are available via the OIDC Configuration URL. The actual URL may vary with each financial institution. See details at Secure Access. - OIDC Configuration URL =
https://oidc.apiture.com/oidc/.well-known/oidc-configuration
- OpenId Connect (OIDC) authentication/authorization. The client uses the
Payment Batches
Payment Batches
listPaymentBatches
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/paymentBatches \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/paymentBatches HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/paymentBatches',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/paymentBatches', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/paymentBatches", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of payment batches
GET https://api.apiture.com/banking/paymentBatches
Return a paginated collection of payment batches. This collection list operation includes pending, scheduled, and processed payment batches. Filter by the state
of the batches if you want just pending
or just processed
(historical) batches. The result is ordered in reverse chronological order based on the scheduled date, scheduledOn
.
Parameters
Parameter | Description |
---|---|
state | array[string] Return only payment batches whose state matches one of the items in this pipe-separated list. unique items minItems: 1 maxItems: 10 pipe-delimited items: » enum values: pending , pendingApproval , rejected , scheduled , processing , processed , reversalPending , partiallyReversed , reversed , canceled |
type | array[string] Return only payment batches whose type matches this value. unique items minItems: 1 pipe-delimited items: » enum values: ach , wireTransfer |
name | string Return payment batches whose name contains this substring (of at least two characters), ignoring case.minLength: 2 |
accountId | string Return only payment batches whose settlementAccount.id matches this value. Note that this is unrelated to the account number or masked account number. |
effectiveOn | dateRangeOrUnscheduled Return only payment batches whose effectiveOn date is in the given date range, and/or which are unscheduled. Date ranges use range notation. Examples:
YYYY-MM-DD single date values) may include the |unscheduled suffix. This notation matches payments batches that are scheduled in the given date range or which are unscheduled.minLength: 10 maxLength: 34 pattern: ^\d{4}-\d{2}-\d{2}|([[(](\d{4}-\d{2}-\d{2},(\d{4}-\d{2}-\d{2})?|,\d{4}-\d{2}-\d{2})[)\]](\|unscheduled)?)|unscheduled$ |
scheduledOn | dateRangeOrUnscheduled Return only payment batches whose scheduledOn date is in the given date range and/or which are unscheduled. Date ranges use range notation. The query parameter expression notation is the same as the effectiveOn query parameter above.minLength: 10 maxLength: 34 pattern: ^\d{4}-\d{2}-\d{2}|([[(](\d{4}-\d{2}-\d{2},(\d{4}-\d{2}-\d{2})?|,\d{4}-\d{2}-\d{2})[)\]](\|unscheduled)?)|unscheduled$ |
customerId | readOnlyResourceId Filter batches based on the banking customer ID. This is a business customer for business payment batches. read-only minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
companyId | string Return only payment batches where the company.id value matches this value. |
trackingNumber | string Return only payment batches whose trackingNumber contains this substring.minLength: 2 maxLength: 9 |
confidential | string Return only payment batches where the confidential flag matches this value. |
sameDay | boolean Return only same-day ACH payment batches (those where sameDay is true.) |
approvable | boolean Return only payment batches that the current authenticated user may approve but have not yet approved. |
instructionName | string Return only payment batches where any payment instruction's payment contact name contains this substring of at least two characters, ignoring case.minLength: 2 |
Example responses
200 Response
{
"items": [
{
"id": "0399abed-fd3d",
"type": "ach",
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"state": "pendingApprovals",
"toSummary": "47 payees",
"fromSummary": "Payroll Checking *7890",
"creditTotal": "2467.50",
"debitTotal": "0.00",
"creditCount": 12,
"debitCount": 30,
"trackingNumber": "15474162",
"remainingApprovalsCount": 0,
"approvalCount": 0,
"information": "You have missed the cutoff time. Please re-schedule.",
"ach": {
"secCode": "ppd",
"imported": false,
"direction": "credit",
"companyName": "Well's Roofing",
"confidentialCustomers": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
],
"approvalDueAt": "2022-06-09T20:30:00.000Z",
"sameDayApprovalDue": [
"2022-06-09T15:00:00.000Z",
"2022-06-09T18:00:00.000Z",
"2022-06-09T20:30:00.000Z"
]
},
"settlementType": "detailed",
"settlementAccount": {
"label": "Payroll Checking *7890",
"maskedNumber": "*1008",
"id": "bf23bc970-91e8",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"effectiveOn": "2022-04-30",
"frequency": "monthly"
},
"allows": {
"approve": false,
"edit": true,
"requestApproval": true,
"delete": false,
"unlock": false,
"reject": false,
"reverse": false,
"reverseInstructions": false,
"copy": true
},
"createdAt": "2022-04-28T07:48:20.375Z",
"updatedAt": "2022-04-28T07:48:49.375Z"
},
{
"id": "d62c0701-0d74",
"type": "ach",
"information": "other fields for batch d62c0701-0d74 omitted here for brevity"
},
{
"id": "89382459-6e1c",
"type": "ach",
"information": "other fields for d62c0701-0d74 omitted here for brevity"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: paymentBatches |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
createPaymentBatch
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatches \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatches HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"type": "ach",
"direction": "credit",
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"customerId": "4242923b-714e",
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"ach": {
"secCode": "ppd",
"sameDay": false,
"discretionaryData": "Payroll adjust 22-05",
"imported": false,
"companyName": "Well's Roofing"
},
"settlementAccount": {
"id": "69464d06366ac48f2ef6",
"maskedNumber": "*7890",
"label": "Payroll Checking *7890",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"frequency": "monthlyFirstDay"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatches',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatches', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatches", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new payment batch
POST https://api.apiture.com/banking/paymentBatches
Create a new payment batch within the payment batches collection.
Body parameter
{
"type": "ach",
"direction": "credit",
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"customerId": "4242923b-714e",
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"ach": {
"secCode": "ppd",
"sameDay": false,
"discretionaryData": "Payroll adjust 22-05",
"imported": false,
"companyName": "Well's Roofing"
},
"settlementAccount": {
"id": "69464d06366ac48f2ef6",
"maskedNumber": "*7890",
"label": "Payroll Checking *7890",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"frequency": "monthlyFirstDay"
}
}
Parameters
Parameter | Description |
---|---|
body | newPaymentBatch (required) The data necessary to create a new payment batch. |
Example responses
201 Response
{
"id": "0399abed-fd3d",
"type": "ach",
"state": "pendingApprovals",
"toSummary": 12,
"fromSummary": "Payroll Checking *7890",
"ach": {
"secCode": "ppd",
"companyName": "Well's Roofing",
"imported": false,
"confidentialCustomers": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
],
"approvalDueAt": "2022-06-09T20:30:00.000Z",
"sameDayApprovalDue": [
"2022-06-09T15:00:00.000Z",
"2022-06-09T18:00:00.000Z",
"2022-06-09T20:30:00.000Z"
]
},
"trackingNumber": "15474162",
"remainingApprovalsCount": 1,
"approvalCount": 1,
"creditTotal": "2467.50",
"debitTotal": "0.00",
"creditCount": 12,
"debitCount": 30,
"settlementAccount": {
"label": "Payroll Checking *7890",
"maskedNumber": "*7890",
"id": "bf23bc970-91e8",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"effectiveOn": "2022-04-30",
"frequency": "monthly"
},
"allows": {
"approve": false,
"edit": true,
"submit": true,
"delete": false,
"unlock": false,
"reject": false,
"reverse": false,
"reverseInstructions": false,
"copy": true,
"requestApproval": true
},
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"information": "You have missed the cutoff time. Please re-schedule.",
"imported": true,
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
],
"approvals": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "si...42@wellsroofing.com",
"approvedAt": "2022-04-25T09:02:57.375Z"
},
null
],
"direction": "credit",
"settlementType": "detailed",
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"customerId": "4242923b-714e",
"createdAt": "2022-04-28T07:48:20.375Z",
"updatedAt": "2022-04-28T07:48:49.375Z",
"problems": []
}
422 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/invalidSettlementAccount/v1.0.0",
"title": "Unprocessable Entity",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The settlement account does not exist or is not eligible for this payment",
"instance": "https://production.api.apiture.com/banking/payments/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/invalidSettlementAccount/v1.0.0",
"title": "Unprocessable Entity",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The settlement account does not exist or is not eligible for this payment",
"instance": "https://production.api.apiture.com/banking/payments/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: paymentBatch | |
Header | Location string uri-reference |
The URI of the new payment batch. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
getPaymentBatch
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId} HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this payment batch
GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}
Return the JSON representation of this payment batch resource.
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"type": "ach",
"state": "pendingApprovals",
"toSummary": 12,
"fromSummary": "Payroll Checking *7890",
"ach": {
"secCode": "ppd",
"companyName": "Well's Roofing",
"imported": false,
"confidentialCustomers": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
],
"approvalDueAt": "2022-06-09T20:30:00.000Z",
"sameDayApprovalDue": [
"2022-06-09T15:00:00.000Z",
"2022-06-09T18:00:00.000Z",
"2022-06-09T20:30:00.000Z"
]
},
"trackingNumber": "15474162",
"remainingApprovalsCount": 1,
"approvalCount": 1,
"creditTotal": "2467.50",
"debitTotal": "0.00",
"creditCount": 12,
"debitCount": 30,
"settlementAccount": {
"label": "Payroll Checking *7890",
"maskedNumber": "*7890",
"id": "bf23bc970-91e8",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"effectiveOn": "2022-04-30",
"frequency": "monthly"
},
"allows": {
"approve": false,
"edit": true,
"submit": true,
"delete": false,
"unlock": false,
"reject": false,
"reverse": false,
"reverseInstructions": false,
"copy": true,
"requestApproval": true
},
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"information": "You have missed the cutoff time. Please re-schedule.",
"imported": true,
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
],
"approvals": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "si...42@wellsroofing.com",
"approvedAt": "2022-04-25T09:02:57.375Z"
},
null
],
"direction": "credit",
"settlementType": "detailed",
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"customerId": "4242923b-714e",
"createdAt": "2022-04-28T07:48:20.375Z",
"updatedAt": "2022-04-28T07:48:49.375Z",
"problems": []
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: paymentBatch |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
patchPaymentBatch
Code samples
# You can also use wget
curl -X PATCH https://api.apiture.com/banking/paymentBatches/{paymentBatchId} \
-H 'Content-Type: application/merge-patch+json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.apiture.com/banking/paymentBatches/{paymentBatchId} HTTP/1.1
Host: api.apiture.com
Content-Type: application/merge-patch+json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"ach": {
"sameDay": false,
"discretionaryData": "Payroll adjust 22-05"
},
"settlementAccount": {
"id": "69464d06366ac48f2ef6",
"maskedNumber": "*7890",
"label": "Payroll Checking *7890",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"frequency": "monthlyFirstDay",
"recurrenceType": "fixed"
}
}';
const headers = {
'Content-Type':'application/merge-patch+json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/merge-patch+json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/merge-patch+json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/merge-patch+json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/merge-patch+json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this payment batch
PATCH https://api.apiture.com/banking/paymentBatches/{paymentBatchId}
Perform a partial update of this payment batch as per JSON Merge Patch. Only fields in the request body are updated on the resource; fields which are omitted are not updated.
This operation can be performed as a "dry run", which invokes request validation without a state change.
A dry run will return the same 4xx responses as the normal invocation when the request encounters any validation errors, but return a response of 204 (No Content) if the request is valid.
Body parameter
{
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"ach": {
"sameDay": false,
"discretionaryData": "Payroll adjust 22-05"
},
"settlementAccount": {
"id": "69464d06366ac48f2ef6",
"maskedNumber": "*7890",
"label": "Payroll Checking *7890",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"frequency": "monthlyFirstDay",
"recurrenceType": "fixed"
}
}
Parameters
Parameter | Description |
---|---|
dryRun | boolean Indicates that the associated operation should only validate the request and not change the state. If the request is valid, the operation returns 204 No Content. If the request is invalid, it returns the corresponding 4xx error response. |
body | paymentBatchPatch (required) The new payment batch. |
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"type": "ach",
"state": "pendingApprovals",
"toSummary": 12,
"fromSummary": "Payroll Checking *7890",
"ach": {
"secCode": "ppd",
"companyName": "Well's Roofing",
"imported": false,
"confidentialCustomers": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
],
"approvalDueAt": "2022-06-09T20:30:00.000Z",
"sameDayApprovalDue": [
"2022-06-09T15:00:00.000Z",
"2022-06-09T18:00:00.000Z",
"2022-06-09T20:30:00.000Z"
]
},
"trackingNumber": "15474162",
"remainingApprovalsCount": 1,
"approvalCount": 1,
"creditTotal": "2467.50",
"debitTotal": "0.00",
"creditCount": 12,
"debitCount": 30,
"settlementAccount": {
"label": "Payroll Checking *7890",
"maskedNumber": "*7890",
"id": "bf23bc970-91e8",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"effectiveOn": "2022-04-30",
"frequency": "monthly"
},
"allows": {
"approve": false,
"edit": true,
"submit": true,
"delete": false,
"unlock": false,
"reject": false,
"reverse": false,
"reverseInstructions": false,
"copy": true,
"requestApproval": true
},
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"information": "You have missed the cutoff time. Please re-schedule.",
"imported": true,
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
],
"approvals": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "si...42@wellsroofing.com",
"approvedAt": "2022-04-25T09:02:57.375Z"
},
null
],
"direction": "credit",
"settlementType": "detailed",
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"customerId": "4242923b-714e",
"createdAt": "2022-04-28T07:48:20.375Z",
"updatedAt": "2022-04-28T07:48:49.375Z",
"problems": []
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
422 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/invalidSettlementAccount/v1.0.0",
"title": "Unprocessable Entity",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The settlement account does not exist or may not be used for this type of payment.",
"instance": "https://production.api.apiture.com/banking/transfers/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/invalidSettlementAccount/v1.0.0",
"title": "Unprocessable Entity",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The settlement account does not exist or may not be used for this type of payment.",
"instance": "https://production.api.apiture.com/banking/transfers/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: paymentBatch | |
204 | No Content |
No Content. The operation succeeded but returned no response body. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
deletePaymentBatch
Code samples
# You can also use wget
curl -X DELETE https://api.apiture.com/banking/paymentBatches/{paymentBatchId} \
-H 'Accept: application/problem+json' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.apiture.com/banking/paymentBatches/{paymentBatchId} HTTP/1.1
Host: api.apiture.com
Accept: application/problem+json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/problem+json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/problem+json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/problem+json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/problem+json',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/problem+json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this payment batch resource
DELETE https://api.apiture.com/banking/paymentBatches/{paymentBatchId}
Delete this payment batch resource. One cannot delete a scheduled batch. You must first remove approvals for the batch in order to delete it.
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
401 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchAccount/v1.0.0",
"title": "Account Not Found",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No account exists for the given account reference",
"instance": "https://production.api.apiture.com/banking/transfers/bb709151-575041fcd617"
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The operation succeeded but returned no response body. |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. A batch that has already started processing may not be deleted. This error response may have one of the following
| |
Schema: problemResponse |
deletePaymentBatches
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatchDeletions \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatchDeletions HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatchDeletions',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatchDeletions',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatchDeletions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatchDeletions', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatchDeletions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatchDeletions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete payment batches
POST https://api.apiture.com/banking/paymentBatchDeletions
Delete a set of payment batches. The 204 response indicates all batches were deleted successfully. The 200 response indicates a partial success and includes details on any failed deletions.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
body | bulkPaymentBatchDeletionRequest (required) The data necessary to delete a set of payment batches. |
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. The request was successfully processed. However, at least one of the payment batch deletions may have failed; see the This error response may have one of the following
| |
Schema: paymentBatchDeletions | |
204 | No Content |
No Content. The operation succeeded but returned no response body. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. | |
Schema: problemResponse |
copyPaymentBatch
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/copies \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/copies HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/copies',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/copies',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/copies',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/copies', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/copies");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/copies", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a copy of this payment batch resource
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/copies
Create a copy of this payment batch resource. Copies of the payment batch resource has a status of pending
. The copy contains a reference to the original payment batch in the derivedFrom
object. The paymentBatch.allows.copy
property must be true
on the batch for the current customer.
The following fields are reset or assigned according to the new batch state:
id
schedule.scheduledOn
approvals
approvers
information
createdAt
modifiedAt
The copy operation should not be used to create a payment batch reversal. Instead, use the reverse payment batch operation.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
body | paymentBatchCopyRequest (required) |
Example responses
201 Response
{
"id": "0399abed-fd3d",
"type": "ach",
"state": "pendingApprovals",
"toSummary": 12,
"fromSummary": "Payroll Checking *7890",
"ach": {
"secCode": "ppd",
"companyName": "Well's Roofing",
"imported": false,
"confidentialCustomers": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
],
"approvalDueAt": "2022-06-09T20:30:00.000Z",
"sameDayApprovalDue": [
"2022-06-09T15:00:00.000Z",
"2022-06-09T18:00:00.000Z",
"2022-06-09T20:30:00.000Z"
]
},
"trackingNumber": "15474162",
"remainingApprovalsCount": 1,
"approvalCount": 1,
"creditTotal": "2467.50",
"debitTotal": "0.00",
"creditCount": 12,
"debitCount": 30,
"settlementAccount": {
"label": "Payroll Checking *7890",
"maskedNumber": "*7890",
"id": "bf23bc970-91e8",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"effectiveOn": "2022-04-30",
"frequency": "monthly"
},
"allows": {
"approve": false,
"edit": true,
"submit": true,
"delete": false,
"unlock": false,
"reject": false,
"reverse": false,
"reverseInstructions": false,
"copy": true,
"requestApproval": true
},
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"information": "You have missed the cutoff time. Please re-schedule.",
"imported": true,
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
],
"approvals": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "si...42@wellsroofing.com",
"approvedAt": "2022-04-25T09:02:57.375Z"
},
null
],
"direction": "credit",
"settlementType": "detailed",
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"customerId": "4242923b-714e",
"createdAt": "2022-04-28T07:48:20.375Z",
"updatedAt": "2022-04-28T07:48:49.375Z",
"problems": []
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: paymentBatch | |
Header | Location string uri-reference |
The URI of the new payment resource. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
listPaymentBatchEligibleApprovers
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/eligibleApprovers \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/eligibleApprovers HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/eligibleApprovers',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/eligibleApprovers',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/eligibleApprovers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/eligibleApprovers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/eligibleApprovers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/eligibleApprovers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
List Eligible Payment Batch Approvers
GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/eligibleApprovers
deprecated
Return a list of customers eligible to approve the batch. If the batch is marked confidential, the response includes only those who are also in the batch's list of confidential customers.
Warning: The operation listPaymentBatchEligibleApprovers
was deprecated on version v0.63.0
of the API. Use the listEligiblePaymentBatchApprovers
operation instead. listPaymentBatchEligibleApprovers
will be removed on version v0.82.0
of the API.
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"items": [
{
"paymentBatchId": "d366bc49-49a7",
"groupId": "group-00",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
]
},
{
"paymentBatchId": "8ea05bfc-0e9c",
"groupId": "group-00",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
]
},
{
"paymentBatchId": "071db898-b220",
"groupId": "group-01",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Carl Thompson",
"id": "d7da1cc5-8056",
"identification": "ca...39@wellsroofing.com"
}
]
}
]
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. | |
Schema: eligiblePaymentBatchApprovers |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
listEligiblePaymentBatchApprovers
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/paymentBatches/eligibleApprovers?paymentBatches=string \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/paymentBatches/eligibleApprovers?paymentBatches=string HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/eligibleApprovers?paymentBatches=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/eligibleApprovers',
method: 'get',
data: '?paymentBatches=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/paymentBatches/eligibleApprovers',
params: {
'paymentBatches' => '[paymentBatchIds](#schemapaymentbatchids)'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/paymentBatches/eligibleApprovers', params={
'paymentBatches': [
"string"
]
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/eligibleApprovers?paymentBatches=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/paymentBatches/eligibleApprovers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
List Eligible Approvers for Payment Batches
GET https://api.apiture.com/banking/paymentBatches/eligibleApprovers
Return a list of customers eligible to approve a list of payment batches. If a batch in the list is marked confidential, the response includes only those who are also in the batch's list of confidential customers.
The response of this operation may be reused as the request for the addPaymentBatchApprovers
operation, possibly after filtering the approvers list to reflect user selection.
Parameters
Parameter | Description |
---|---|
paymentBatches | paymentBatchIds (required) A list of payment batch IDs for building the list of eligible approvers. minItems: 1 maxItems: 999 comma-delimited items: » minLength: 6 » maxLength: 48 » pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"items": [
{
"paymentBatchId": "d366bc49-49a7",
"groupId": "group-00",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
]
},
{
"paymentBatchId": "8ea05bfc-0e9c",
"groupId": "group-00",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
]
},
{
"paymentBatchId": "071db898-b220",
"groupId": "group-01",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Carl Thompson",
"id": "d7da1cc5-8056",
"identification": "ca...39@wellsroofing.com"
}
]
}
]
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. | |
Schema: bulkEligiblePaymentBatchApprovers |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The batch has begun or completed processing and no approvers may be added. | |
Schema: problemResponse |
listAchCustomers
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/accounts/{accountId}/achCustomers?direction=debit&secCode=arc \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/accounts/{accountId}/achCustomers?direction=debit&secCode=arc HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/accounts/{accountId}/achCustomers?direction=debit&secCode=arc',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/accounts/{accountId}/achCustomers',
method: 'get',
data: '?direction=debit&secCode=arc',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/accounts/{accountId}/achCustomers',
params: {
'direction' => 'string',
'secCode' => '[paymentBatchAchSecCode](#schemapaymentbatchachseccode)'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/accounts/{accountId}/achCustomers', params={
'direction': 'debit', 'secCode': 'arc'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/accounts/{accountId}/achCustomers?direction=debit&secCode=arc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/accounts/{accountId}/achCustomers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
List ACH-entitled customers
GET https://api.apiture.com/banking/accounts/{accountId}/achCustomers
List ACH-entitled customers who have access to this account for viewing ACH payment batches or other ACH activity. This operation requires the secCode
and direction
query parameters. The items in the response may be used for the confidentialCustomers
property of a newAchPaymentBatch
or in a patch to an ACH payment batch.
Parameters
Parameter | Description |
---|---|
direction | string (required) List only customers who can manage ACH payments in the given direction. enum values: debit , credit , both |
secCode | paymentBatchAchSecCode (required) List only customers who can manage ACH payments of the given Standard Entry Class (SEC) code. enum values: arc , boc , ccd , cie , ctx , pop , ppd , rck , tel , web |
type | achPaymentBatchType List only customers who can manage ACH payments that have this specific ACH payment type. Omit this parameter to match any ACH payment type. enum values: other , vendorCredit |
accountId | resourceId (required) The unique identifier of this account resource. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"items": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: confidentialAchCustomerList |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such banking account resource at the specified {accountId} . The response body contains details about the request error. | |
Schema: problemResponse |
Payment Batch Actions
Actions on Payment Batches
importAch
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/importedAchBatches \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/importedAchBatches HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/importedAchBatches',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/importedAchBatches',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/importedAchBatches',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/importedAchBatches', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/importedAchBatches");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/importedAchBatches", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Import a NACHA ACH file to create one or more payment batches
POST https://api.apiture.com/banking/importedAchBatches
Import the contents of a NACHA ACH file. The result is an array of one or more payment batches. Each batch contains the same settlement account and have the imported
flag set to true
. Such batches are not editable except for the batch name or to toggle the hold
flag on individual payment instructions.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
body | achImport (required) The data necessary to create a new payment batch. |
Example responses
201 Response
{
"items": [
{
"state": "imported",
"paymentBatch": {
"id": "0399abed-fd3d",
"type": "ach",
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"state": "pendingApprovals",
"toSummary": "47 payees",
"fromSummary": "Payroll Checking *7890",
"creditTotal": "2467.50",
"debitTotal": "0.00",
"creditCount": 12,
"debitCount": 30,
"trackingNumber": "15474162",
"remainingApprovalsCount": 0,
"approvalCount": 0,
"information": "You have missed the cutoff time. Please re-schedule.",
"ach": {
"secCode": "ppd",
"imported": false,
"direction": "credit",
"companyName": "Well's Roofing",
"confidentialCustomers": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
],
"approvalDueAt": "2022-06-09T20:30:00.000Z",
"sameDayApprovalDue": [
"2022-06-09T15:00:00.000Z",
"2022-06-09T18:00:00.000Z",
"2022-06-09T20:30:00.000Z"
]
},
"settlementType": "detailed",
"settlementAccount": {
"label": "Payroll Checking *7890",
"maskedNumber": "*1008",
"id": "bf23bc970-91e8",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"effectiveOn": "2022-04-30",
"frequency": "monthly"
},
"allows": {
"approve": false,
"edit": true,
"requestApproval": true,
"delete": false,
"unlock": false,
"reject": false,
"reverse": false,
"reverseInstructions": false,
"copy": true
},
"createdAt": "2022-04-28T07:48:20.375Z",
"updatedAt": "2022-04-28T07:48:49.375Z"
}
},
{
"state": "imported",
"paymentBatch": {
"id": "d62c0701-0d74",
"type": "ach",
"information": "Other fields for batch d62c0701-0d74 omitted here for brevity"
}
},
{
"state": "failed",
"failure": {
"companyName": "Inland Transport",
"secCode": "ppd",
"direction": "debit",
"creditTotal": "2400.00",
"debitTotal": "1375.00",
"creditCount": 8,
"debitCount": 10,
"problems": [
{
"type": "https://production.api.apiture.com/errors/forbidden/v1.0.0",
"title": "Forbidden",
"detail": "Responsible customer 'Benny Billings' (bbillings) does not have 'Create PPD' privilege(s) over customer 'Inland Transport' (inland-transport)",
"attributes": {
"responsibleCustomerName": "Benny Billings",
"responsibleCustomerUsername": "bbillings",
"customerName": "Inland Transport",
"customerUsername": "inland-transport"
}
}
]
}
}
]
}
422 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/invalidSettlementAccount/v1.0.0",
"title": "Unprocessable Entity",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The settlement account does not exist or is not eligible for this payment",
"instance": "https://production.api.apiture.com/banking/payments/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/invalidSettlementAccount/v1.0.0",
"title": "Unprocessable Entity",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The settlement account does not exist or is not eligible for this payment",
"instance": "https://production.api.apiture.com/banking/payments/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
201 | Created |
Created. The errors listed below may appear in failed ACH imports or in ACH imports which were successfully imported but which may not be eligible for submitting or approval. This error response may have one of the following
| |
Schema: importedAchPaymentBatches | |
202 | Accepted |
Accepted. The request was accepted but validation is not yet complete. The system will notify the customer of success/failure of the ACH file import. The array of items in the response may have zero or more items accordingly. | |
Schema: importedAchPaymentBatches |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
addPaymentBatchApprovers
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatchApprovers \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatchApprovers HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"items": [
{
"paymentBatchId": "d366bc49-49a7",
"groupId": "group-00",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
]
},
{
"paymentBatchId": "8ea05bfc-0e9c",
"groupId": "group-00",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
]
},
{
"paymentBatchId": "071db898-b220",
"groupId": "group-01",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Carl Thompson",
"id": "d7da1cc5-8056",
"identification": "ca...39@wellsroofing.com"
}
]
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatchApprovers',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatchApprovers',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatchApprovers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatchApprovers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatchApprovers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatchApprovers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Add approvers to payment batches
POST https://api.apiture.com/banking/paymentBatchApprovers
Add approvers to a set of payment batches. This operation also notifies those approvers that they need to review/approve the batch(es). This operation is allowed even if the batch is in a pending
state and has errors. Approvers may not actually approve the batch until all the problems are fixed.
The request body for this operation may be derived from the response of the listEligiblePaymentBatchApprovers
operation, possibly with a subset of approvers per batch based on user selection.
The 204 response indicates the approvers were successfully added to all batches. The 200 response indicates a partial success and includes details on any failed additions, such as a batch has begun processing.
Body parameter
{
"items": [
{
"paymentBatchId": "d366bc49-49a7",
"groupId": "group-00",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
]
},
{
"paymentBatchId": "8ea05bfc-0e9c",
"groupId": "group-00",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
]
},
{
"paymentBatchId": "071db898-b220",
"groupId": "group-01",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Carl Thompson",
"id": "d7da1cc5-8056",
"identification": "ca...39@wellsroofing.com"
}
]
}
]
}
Parameters
Parameter | Description |
---|---|
body | bulkPaymentBatchApproversRequest (required) The data necessary to add the approvers of payment batches. |
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. The request was successfully processed. However, adding approvers to one or more payment batches may have failed; response body indicates which succeeded and which failed. This error response may have one of the following
| |
Schema: paymentBatchBulkApprovers | |
204 | No Content |
No Content. The operation succeeded but returned no response body. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. | |
Schema: problemResponse |
addApproversToPaymentBatch
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvers \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvers HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"items": [
{
"paymentBatchId": "8ea05bfc-0e9c",
"groupId": "group-00",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
]
},
{
"paymentBatchId": "071db898-b220",
"groupId": "group-01",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Carl Thompson",
"id": "d7da1cc5-8056",
"identification": "ca...39@wellsroofing.com"
}
]
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvers',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvers',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Add Payment Batch Approvers
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvers
deprecated
Add one or more approvers to this payment batch. The approvers should be items selected from the listEligiblePaymentBatchApprovers
operation's response. This operation also notifies those approvers that they need to review/approve the batch. This operation is not allowed if the batch has begun processing. This operation is allowed even if the batch is in a pending
state and has errors. Approvers may not actually approve the batch until all the problems are fixed.
Warning: The operation addApproversToPaymentBatch
was deprecated on version v0.63.0
of the API. Use the addPaymentBatchApprovers
operation instead. addApproversToPaymentBatch
will be removed on version v0.82.0
of the API.
Body parameter
{
"items": [
{
"paymentBatchId": "8ea05bfc-0e9c",
"groupId": "group-00",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
]
},
{
"paymentBatchId": "071db898-b220",
"groupId": "group-01",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Carl Thompson",
"id": "d7da1cc5-8056",
"identification": "ca...39@wellsroofing.com"
}
]
}
]
}
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
body | paymentBatchApprovers A list of approvers for this payment batch. |
Example responses
200 Response
{
"items": [
{
"paymentBatchId": "8ea05bfc-0e9c",
"groupId": "group-00",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
]
},
{
"paymentBatchId": "071db898-b220",
"groupId": "group-01",
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Carl Thompson",
"id": "d7da1cc5-8056",
"identification": "ca...39@wellsroofing.com"
}
]
}
]
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. The response is the full list of all approvers assigned to this batch. | |
Schema: paymentBatchApprovers |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The batch has already begun processing and no approvers may be added. | |
Schema: problemResponse |
exportAchBatches
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatchExports \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatchExports HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"paymentBatchIds": [
"f84547a1-37f0",
"8102d76af3d6-afe3",
"699c5803-b607",
"d88a1e1e017c-94d5"
],
"includeHolds": true,
"includePrenoteColumn": false,
"includeBatchNameColumn": true,
"includeTrackingNumberColumn": true,
"format": "ach"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatchExports',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatchExports',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatchExports',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatchExports', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatchExports");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatchExports", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Export a payment batch to a text file
POST https://api.apiture.com/banking/paymentBatchExports
Export the contents of one or more payment batches either as a NACHA ACH file or as a tab-separated values (TSV) file.
Body parameter
{
"paymentBatchIds": [
"f84547a1-37f0",
"8102d76af3d6-afe3",
"699c5803-b607",
"d88a1e1e017c-94d5"
],
"includeHolds": true,
"includePrenoteColumn": false,
"includeBatchNameColumn": true,
"includeTrackingNumberColumn": true,
"format": "ach"
}
Parameters
Parameter | Description |
---|---|
body | paymentBatchAchExportRequest (required) The data necessary to create a new payment batch. |
Example responses
201 Response
{
"paymentBatchIds": [
"f84547a1-37f0",
"8102d76af3d6-afe3",
"699c5803-b607",
"d88a1e1e017c-94d5"
],
"includeHolds": true,
"includePrenoteColumn": false,
"includeBatchNameColumn": true,
"includeTrackingNumberColumn": true,
"format": "ach",
"content": "... text content not included here ...",
"problems": []
}
Responses
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: paymentBatchAchExport |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body and/or query parameters were well formed but otherwise invalid. | |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
submitPaymentBatch
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/submitted \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/submitted HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/submitted',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/submitted',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/submitted',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/submitted', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/submitted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/submitted", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Submit a payment batch
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/submitted
Submit a batch payment for approval or scheduling. If the customer has approval permission this action does not automatically add the customer to the paymentBatch.approvers
list. The customer should manually approve the batch through the approvePaymentBatch
operation. Once submitted, the batch payment transitions to the approvalPending
state. The paymentBatch.allows.submit
property must be true
on the batch for the current customer to submit the batch. This operation is idempotent: no changes are made if the batch is already in the approvalPending
or scheduled
state.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
body | paymentBatchSubmitRequest (required) Request data accompanying the action to approve the batch. |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"type": "ach",
"state": "pendingApprovals",
"toSummary": 12,
"fromSummary": "Payroll Checking *7890",
"ach": {
"secCode": "ppd",
"companyName": "Well's Roofing",
"imported": false,
"confidentialCustomers": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
],
"approvalDueAt": "2022-06-09T20:30:00.000Z",
"sameDayApprovalDue": [
"2022-06-09T15:00:00.000Z",
"2022-06-09T18:00:00.000Z",
"2022-06-09T20:30:00.000Z"
]
},
"trackingNumber": "15474162",
"remainingApprovalsCount": 1,
"approvalCount": 1,
"creditTotal": "2467.50",
"debitTotal": "0.00",
"creditCount": 12,
"debitCount": 30,
"settlementAccount": {
"label": "Payroll Checking *7890",
"maskedNumber": "*7890",
"id": "bf23bc970-91e8",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"effectiveOn": "2022-04-30",
"frequency": "monthly"
},
"allows": {
"approve": false,
"edit": true,
"submit": true,
"delete": false,
"unlock": false,
"reject": false,
"reverse": false,
"reverseInstructions": false,
"copy": true,
"requestApproval": true
},
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"information": "You have missed the cutoff time. Please re-schedule.",
"imported": true,
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
],
"approvals": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "si...42@wellsroofing.com",
"approvedAt": "2022-04-25T09:02:57.375Z"
},
null
],
"direction": "credit",
"settlementType": "detailed",
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"customerId": "4242923b-714e",
"createdAt": "2022-04-28T07:48:20.375Z",
"updatedAt": "2022-04-28T07:48:49.375Z",
"problems": []
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. | |
Schema: paymentBatch |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to submit the payment batch is not allowed. Either the batch still has problems which prevent it from being submitted, or its state is This error response may have one of the following
| |
Schema: problemResponse |
approvePaymentBatch
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvals \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvals HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvals',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvals',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvals',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvals', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvals");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvals", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Approve a payment batch
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/approvals
Approve a payment batch for processing. This adds the customer to the paymentBatch.approvers
list unless already listed. If all the required approvals have been given, the batch changes to the scheduled
state to be processed. The paymentBatch.allows.approve
property must be true
on the batch for the current customer. This operation is idempotent: no changes are made if the customer has already approved this payment batch.
This operation may require additional step-up authentication to verify the customer's identity.
See also the approvePaymentBatches
operation to approve multiple batches. Using that operation will incur at most one step-up authentication.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
body | paymentBatchApprovalRequest (required) Request data accompanying the action to approve the batch. |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"type": "ach",
"state": "pendingApprovals",
"toSummary": 12,
"fromSummary": "Payroll Checking *7890",
"ach": {
"secCode": "ppd",
"companyName": "Well's Roofing",
"imported": false,
"confidentialCustomers": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
],
"approvalDueAt": "2022-06-09T20:30:00.000Z",
"sameDayApprovalDue": [
"2022-06-09T15:00:00.000Z",
"2022-06-09T18:00:00.000Z",
"2022-06-09T20:30:00.000Z"
]
},
"trackingNumber": "15474162",
"remainingApprovalsCount": 1,
"approvalCount": 1,
"creditTotal": "2467.50",
"debitTotal": "0.00",
"creditCount": 12,
"debitCount": 30,
"settlementAccount": {
"label": "Payroll Checking *7890",
"maskedNumber": "*7890",
"id": "bf23bc970-91e8",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"effectiveOn": "2022-04-30",
"frequency": "monthly"
},
"allows": {
"approve": false,
"edit": true,
"submit": true,
"delete": false,
"unlock": false,
"reject": false,
"reverse": false,
"reverseInstructions": false,
"copy": true,
"requestApproval": true
},
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"information": "You have missed the cutoff time. Please re-schedule.",
"imported": true,
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
],
"approvals": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "si...42@wellsroofing.com",
"approvedAt": "2022-04-25T09:02:57.375Z"
},
null
],
"direction": "credit",
"settlementType": "detailed",
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"customerId": "4242923b-714e",
"createdAt": "2022-04-28T07:48:20.375Z",
"updatedAt": "2022-04-28T07:48:49.375Z",
"problems": []
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. | |
Schema: paymentBatch |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to approve the payment batch is not allowed. This operation is not allowed if the batch has started processing, or if the batch is still This error response may have one of the following
| |
Schema: problemResponse |
approvePaymentBatches
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatchApprovals \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatchApprovals HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatchApprovals',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatchApprovals',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatchApprovals',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatchApprovals', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatchApprovals");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatchApprovals", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Approve payment batches
POST https://api.apiture.com/banking/paymentBatchApprovals
Approve a list of payment batches for processing. This adds the customer to the paymentBatch.approvers
list of each batch unless already listed. If all the required approvals have been given, the batch changes to the scheduled
state to be processed. This operation is idempotent: no changes are made to a batch if the customer has already approved it.
This operation may successfully approve some batches and fail on others. This includes failures due to the customer's permissions (for example if a payment batch's allows.approve
is false
) or the state of one or more batches. Errors and problems are returned in the paymentBatchApprovals
response items
instead of in 4xx error responses as with the approvePaymentBatch
operation.
This operation may require additional step-up authentication to verify the customer's identity, but will only require that once for this entire call instead of possibly requesting step-up authentication on each call to approvePaymentBatch
.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
body | bulkPaymentBatchApprovalRequest (required) Request data accompanying the action to approve the batch. |
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. The request was successfully processed. However, at least one of the payment batches approvals may have failed; the response body indicates which succeeded and which failed. This error response may have one of the following
| |
Schema: paymentBatchApprovals |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
unlockPaymentBatch
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/unlocked \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/unlocked HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/unlocked',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/unlocked',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/unlocked',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/unlocked', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/unlocked");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/unlocked", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Unlock a payment batch that is pending approvals or scheduled
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/unlocked
Unlock a payment batch that is pending approvals or scheduled. Batches which have been submitted or approved must be unlocked in order to move them back to a pending
state in order to edit and resubmit them. The updated batch requires new approvals. The paymentBatch.allows.unlock
property must be true
on the batch for the current customer to perform this operation. The response is the updated representation of the payment batch. This operation is idempotent: no changes are made if the payment batch state is already pending
.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
body | paymentBatchApprovalRemovalRequest (required) Request data accompanying the action to remove approvals. |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"type": "ach",
"state": "pendingApprovals",
"toSummary": 12,
"fromSummary": "Payroll Checking *7890",
"ach": {
"secCode": "ppd",
"companyName": "Well's Roofing",
"imported": false,
"confidentialCustomers": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
],
"approvalDueAt": "2022-06-09T20:30:00.000Z",
"sameDayApprovalDue": [
"2022-06-09T15:00:00.000Z",
"2022-06-09T18:00:00.000Z",
"2022-06-09T20:30:00.000Z"
]
},
"trackingNumber": "15474162",
"remainingApprovalsCount": 1,
"approvalCount": 1,
"creditTotal": "2467.50",
"debitTotal": "0.00",
"creditCount": 12,
"debitCount": 30,
"settlementAccount": {
"label": "Payroll Checking *7890",
"maskedNumber": "*7890",
"id": "bf23bc970-91e8",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"effectiveOn": "2022-04-30",
"frequency": "monthly"
},
"allows": {
"approve": false,
"edit": true,
"submit": true,
"delete": false,
"unlock": false,
"reject": false,
"reverse": false,
"reverseInstructions": false,
"copy": true,
"requestApproval": true
},
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"information": "You have missed the cutoff time. Please re-schedule.",
"imported": true,
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
],
"approvals": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "si...42@wellsroofing.com",
"approvedAt": "2022-04-25T09:02:57.375Z"
},
null
],
"direction": "credit",
"settlementType": "detailed",
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"customerId": "4242923b-714e",
"createdAt": "2022-04-28T07:48:20.375Z",
"updatedAt": "2022-04-28T07:48:49.375Z",
"problems": []
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. All approvals have been removed from the payment batch. If the batch is still valid, its state is changed to pendingApproval . If there are any problems with the batch, its state is changed to pending . | |
Schema: paymentBatch |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to remove approvals of the payment batch is not allowed. This operation is not allowed if the batch has been rejected or has started processing. | |
Schema: problemResponse |
rejectPaymentBatch
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/rejections \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/rejections HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/rejections',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/rejections',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/rejections',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/rejections', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/rejections");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/rejections", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Reject a payment batch
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/rejections
Reject a payment batch, requesting changes to the batch as described in the request body's reason
. Rejecting a batch allow for updating the payment batch and payment instructions and for resubmission. This is the opposite of approving a batch that is pending approval. Rejecting a batch allows editing the payment batch details and its payment instructions, then resubmitting it. The updated batch requires new approvals. The paymentBatch.allows.reject
property must be true
on the batch for the current customer. The response is the updated representation of the payment batch. This operation is idempotent: no changes are made if the payment batch state is already rejected
, pendingApproval
, or pending
.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
body | paymentBatchRejectionRequest (required) Request data accompanying the action to remove approvals. |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"type": "ach",
"state": "pendingApprovals",
"toSummary": 12,
"fromSummary": "Payroll Checking *7890",
"ach": {
"secCode": "ppd",
"companyName": "Well's Roofing",
"imported": false,
"confidentialCustomers": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
],
"approvalDueAt": "2022-06-09T20:30:00.000Z",
"sameDayApprovalDue": [
"2022-06-09T15:00:00.000Z",
"2022-06-09T18:00:00.000Z",
"2022-06-09T20:30:00.000Z"
]
},
"trackingNumber": "15474162",
"remainingApprovalsCount": 1,
"approvalCount": 1,
"creditTotal": "2467.50",
"debitTotal": "0.00",
"creditCount": 12,
"debitCount": 30,
"settlementAccount": {
"label": "Payroll Checking *7890",
"maskedNumber": "*7890",
"id": "bf23bc970-91e8",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"effectiveOn": "2022-04-30",
"frequency": "monthly"
},
"allows": {
"approve": false,
"edit": true,
"submit": true,
"delete": false,
"unlock": false,
"reject": false,
"reverse": false,
"reverseInstructions": false,
"copy": true,
"requestApproval": true
},
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"information": "You have missed the cutoff time. Please re-schedule.",
"imported": true,
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
],
"approvals": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "si...42@wellsroofing.com",
"approvedAt": "2022-04-25T09:02:57.375Z"
},
null
],
"direction": "credit",
"settlementType": "detailed",
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"customerId": "4242923b-714e",
"createdAt": "2022-04-28T07:48:20.375Z",
"updatedAt": "2022-04-28T07:48:49.375Z",
"problems": []
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. All approvals have been removed from the payment batch. The batch's state is changed to rejected . If there are any problems with the batch, its state is changed to pending . | |
Schema: paymentBatch |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to reject the payment batch is not allowed. This operation is not allowed if the batch is not pendingApprovals or rejected . | |
Schema: problemResponse |
rejectPaymentBatches
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatchRejections \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatchRejections HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatchRejections',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatchRejections',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatchRejections',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatchRejections', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatchRejections");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatchRejections", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Reject payment batches
POST https://api.apiture.com/banking/paymentBatchRejections
Reject a set of payment batches. The 204 response indicates all batches were rejected successfully. The 200 response indicates a partial success and includes details on any failed rejections.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
body | bulkPaymentBatchRejectionRequest (required) The data necessary to reject a set of payment batches. |
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. The request was successfully processed. However, one or more (or all) payment batch rejections may have failed; see the This error response may have one of the following
| |
Schema: paymentBatchRejections | |
204 | No Content |
No Content. The operation succeeded but returned no response body. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. | |
Schema: problemResponse |
reversePaymentBatch
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/reversals \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/reversals HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/reversals',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/reversals',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/reversals',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/reversals', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/reversals");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/reversals", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Reverse a payment batch
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/reversals
Request reversal of a payment batch or a subset of its instructions. The system attempts to cancel any unprocessed payments in the batch, or to reverse any payments that have already been submitted. Reversal ignores instructions marked as hold
.
The paymentBatch.allows.reverse
property must be true
on the batch for the current customer. To reverse individual instructions, batch.allows.reverseInstructions
must be true. Some financial institutions may allow reversing entire batch but disallow reversing sets of individual instructions.
If the payment batch has not started processing, the batch is canceled without creating a new reversal batch and the response is 200 OK. (The batch's state becomes canceled
.)
Otherwise, a successful request creates and returns a new payment batch (201 Created). The initial batch's state becomes partiallyReversed
or reversed
depending on whether some or all of the instructions have been reversed. The client should re-fetch the payment batch after submitting this operation to see the new state.
This operation is idempotent and additive. For example, one can reverse one subset of the instructions, then reverse another subset later.
Use reversePaymentBatches
to reverse a set of batches rather than just one.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
body | paymentBatchReversalRequest (required) Request data accompanying the action to reverse a payment batch. |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"type": "ach",
"state": "pendingApprovals",
"toSummary": 12,
"fromSummary": "Payroll Checking *7890",
"ach": {
"secCode": "ppd",
"companyName": "Well's Roofing",
"imported": false,
"confidentialCustomers": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
],
"approvalDueAt": "2022-06-09T20:30:00.000Z",
"sameDayApprovalDue": [
"2022-06-09T15:00:00.000Z",
"2022-06-09T18:00:00.000Z",
"2022-06-09T20:30:00.000Z"
]
},
"trackingNumber": "15474162",
"remainingApprovalsCount": 1,
"approvalCount": 1,
"creditTotal": "2467.50",
"debitTotal": "0.00",
"creditCount": 12,
"debitCount": 30,
"settlementAccount": {
"label": "Payroll Checking *7890",
"maskedNumber": "*7890",
"id": "bf23bc970-91e8",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"effectiveOn": "2022-04-30",
"frequency": "monthly"
},
"allows": {
"approve": false,
"edit": true,
"submit": true,
"delete": false,
"unlock": false,
"reject": false,
"reverse": false,
"reverseInstructions": false,
"copy": true,
"requestApproval": true
},
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"information": "You have missed the cutoff time. Please re-schedule.",
"imported": true,
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
],
"approvals": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "si...42@wellsroofing.com",
"approvedAt": "2022-04-25T09:02:57.375Z"
},
null
],
"direction": "credit",
"settlementType": "detailed",
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"customerId": "4242923b-714e",
"createdAt": "2022-04-28T07:48:20.375Z",
"updatedAt": "2022-04-28T07:48:49.375Z",
"problems": []
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The payment batch has not started processing and was reversed (canceled) without having to create a new reversal batch. | |
Schema: paymentBatch | |
201 | Created |
Created. The operation succeeded and a new reversal payment batch was created and returned. | |
Schema: paymentBatch | |
Header | Location string uri-reference |
The URI of the new payment method. |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not found. There is no such resource at the request URL. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to request reversal of the payment batch is not allowed. The batch must have started processing to allow reversing. The operation is only valid if batch.allows.reverse or if attempting to reverse a set of individual instructions, if batch.allows.reverseInstructions is true . | |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
reversePaymentBatches
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatchReversals \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatchReversals HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatchReversals',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatchReversals',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatchReversals',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatchReversals', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatchReversals");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatchReversals", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Reverse payment batches
POST https://api.apiture.com/banking/paymentBatchReversals
Reverse a set of payment batches. This operations is like reversePaymentBatch
but applies to a set of batches rather than just one.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
body | bulkPaymentBatchReversalRequest (required) The data necessary to reject a set of payment batches. |
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. The request was successfully processed. However, one or more of the payment batch reversals may have failed; see the This error response may have one of the following
| |
Schema: paymentBatchReversals |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. | |
Schema: problemResponse |
Payment Instructions
Payment Instructions
listPaymentInstructions
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of payment instructions
GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions
Return a collection of payment instructions within this payment batch.
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"items": [
{
"id": "0399abed-fd3d",
"traceNumber": 8706658,
"name": "Pauline Stonemason",
"identifier": "C-00523",
"amount": "1287.65",
"hold": false,
"direction": "credit",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"prenote": false
},
"methodId": "ach0001",
"contactId": "3e8375b1-8c34"
},
{
"id": "0399abed-fd3d",
"traceNumber": 8764783,
"name": "Pauline Stonemason",
"identifier": "C-012295",
"amount": "2090.35",
"hold": false,
"direction": "credit",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "234567890",
"prenote": false
},
"methodId": "ach0002",
"contactId": "3a32a4a8-5502"
}
]
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. This error response may have one of the following
| |
Schema: paymentInstructions |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
createPaymentInstruction
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"name": "Pauline Stonemason",
"identifier": "C-00523",
"amount": "1287.65",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789"
},
"methodId": "ach0001",
"contactId": "3e8375b1-8c34"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new payment instruction
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions
Add a new payment instruction to the payment instructions in this payment batch.
Body parameter
{
"name": "Pauline Stonemason",
"identifier": "C-00523",
"amount": "1287.65",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789"
},
"methodId": "ach0001",
"contactId": "3e8375b1-8c34"
}
Parameters
Parameter | Description |
---|---|
body | newPaymentInstruction (required) The data necessary to create a new payment instruction. |
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
201 Response
{
"id": "0399abed-fd3d",
"traceNumber": 8706658,
"name": "Pauline Stonemason",
"identifier": "C-00523",
"amount": "1287.65",
"hold": false,
"direction": "credit",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"type": "checking",
"prenote": false
},
"methodId": "ach0001",
"contactId": "3e8375b1-8c34"
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchPaymentBatch/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No such transaction exists for the given `{paymentBatchId}` bb709151-5750",
"instance": "https://production.api.apiture.com/banking/payments/bb709151-5750/instructions/3dfda85a-ce87"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchPaymentBatch/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No such transaction exists for the given `{paymentBatchId}` bb709151-5750",
"instance": "https://production.api.apiture.com/banking/payments/bb709151-5750/instructions/3dfda85a-ce87"
}
Responses
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: paymentInstruction | |
Header | Location string uri-reference |
The URI of the new payment instruction. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment instruction resource at the specified This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
getPaymentInstruction
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId} HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this payment instruction
GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}
Return the JSON representation of this payment instruction resource for the given payment batch or payment batch template.
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
paymentInstructionId | resourceId (required) The unique identifier of this payment instruction. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"traceNumber": 8706658,
"name": "Pauline Stonemason",
"identifier": "C-00523",
"amount": "1287.65",
"hold": false,
"direction": "credit",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"type": "checking",
"prenote": false
},
"methodId": "ach0001",
"contactId": "3e8375b1-8c34"
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchPaymentBatch/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No such transaction exists for the given `{paymentBatchId}` bb709151-5750",
"instance": "https://production.api.apiture.com/banking/payments/bb709151-5750/instructions/3dfda85a-ce87"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchPaymentBatch/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No such transaction exists for the given `{paymentBatchId}` bb709151-5750",
"instance": "https://production.api.apiture.com/banking/payments/bb709151-5750/instructions/3dfda85a-ce87"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: paymentInstruction |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment instruction resource at the specified This error response may have one of the following
| |
Schema: problemResponse |
patchPaymentInstruction
Code samples
# You can also use wget
curl -X PATCH https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId} \
-H 'Content-Type: application/merge-patch+json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId} HTTP/1.1
Host: api.apiture.com
Content-Type: application/merge-patch+json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"name": "Pauline Stonemason",
"identifier": "C-00523",
"amount": "1287.65",
"hold": true,
"ach": {
"accountNumber": "123456789"
}
}';
const headers = {
'Content-Type':'application/merge-patch+json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/merge-patch+json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/merge-patch+json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/merge-patch+json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/merge-patch+json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this payment instruction
PATCH https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}
Perform a partial update of this payment instruction as per JSON Merge Patch. Only fields in the request body are updated on the resource; fields which are omitted are not updated.
Body parameter
{
"name": "Pauline Stonemason",
"identifier": "C-00523",
"amount": "1287.65",
"hold": true,
"ach": {
"accountNumber": "123456789"
}
}
Parameters
Parameter | Description |
---|---|
body | paymentInstructionPatch (required) The new payment instruction. |
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
paymentInstructionId | resourceId (required) The unique identifier of this payment instruction. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"traceNumber": 8706658,
"name": "Pauline Stonemason",
"identifier": "C-00523",
"amount": "1287.65",
"hold": false,
"direction": "credit",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"type": "checking",
"prenote": false
},
"methodId": "ach0001",
"contactId": "3e8375b1-8c34"
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchPaymentBatch/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No such transaction exists for the given `{paymentBatchId}` bb709151-5750",
"instance": "https://production.api.apiture.com/banking/payments/bb709151-5750/instructions/3dfda85a-ce87"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchPaymentBatch/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No such transaction exists for the given `{paymentBatchId}` bb709151-5750",
"instance": "https://production.api.apiture.com/banking/payments/bb709151-5750/instructions/3dfda85a-ce87"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. This error response may have one of the following
| |
Schema: paymentInstruction |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment instruction resource at the specified This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
deletePaymentInstruction
Code samples
# You can also use wget
curl -X DELETE https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId} \
-H 'Accept: application/problem+json' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId} HTTP/1.1
Host: api.apiture.com
Accept: application/problem+json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/problem+json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/problem+json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/problem+json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/problem+json',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/problem+json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this payment instruction resource
DELETE https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}
deprecated
Delete this payment instruction resource from this payment batch.
Warning: The operation deletePaymentInstruction
was deprecated on version v0.66.0
of the API. Use the deletePaymentInstructions
operation instead. deletePaymentInstruction
will be removed on version v0.82.0
of the API.
Parameters
Parameter | Description |
---|---|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
paymentInstructionId | resourceId (required) The unique identifier of this payment instruction. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
401 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchAccount/v1.0.0",
"title": "Account Not Found",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No account exists for the given account reference",
"instance": "https://production.api.apiture.com/banking/transfers/bb709151-575041fcd617"
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchPaymentBatch/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No such transaction exists for the given `{paymentBatchId}` bb709151-5750",
"instance": "https://production.api.apiture.com/banking/payments/bb709151-5750/instructions/3dfda85a-ce87"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchPaymentBatch/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No such transaction exists for the given `{paymentBatchId}` bb709151-5750",
"instance": "https://production.api.apiture.com/banking/payments/bb709151-5750/instructions/3dfda85a-ce87"
}
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The operation succeeded but returned no response body. |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment instruction resource at the specified This error response may have one of the following
| |
Schema: problemResponse |
Payment History Records
Payment History Records
listPaymentHistoryRecords
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentHistoryRecords \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentHistoryRecords HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentHistoryRecords',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentHistoryRecords',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentHistoryRecords',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentHistoryRecords', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentHistoryRecords");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentHistoryRecords", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return payment batch history records
GET https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/paymentHistoryRecords
Return a list of history records for this payment batch.
Parameters
Parameter | Description |
---|---|
compress | boolean If
|
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"items": [
{
"type": "created",
"occurredAt": "2022-07-28T12:44:46.375Z",
"customerId": "4242923b-714e",
"customerName": "Karl Knox",
"creationType": "copy",
"secondaryTrackingNumber": "62115474",
"secondaryPaymentBatchId": "45b9a55a-9811"
},
{
"type": "updated",
"occurredAt": "2022-07-28T12:49:22.000Z",
"customerId": "4242923b-714e",
"customerName": "Karl Knox"
},
{
"type": "requestedApproval",
"occurredAt": "2022-07-28T12:54:30.000Z",
"customerId": "4242923b-714e",
"customerName": "Karl Knox"
},
{
"type": "approved",
"customerId": "b9815cc6-85a7",
"customerName": "Alex Frank",
"occurredAt": "2022-07-29T04:18:49.375Z"
}
]
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: paymentHistoryRecords |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
Payment Instruction Actions
Payment Instruction Actions
importAchPaymentInstructions
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/importedAchPaymentInstructions \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/importedAchPaymentInstructions HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"strategy": "append",
"content": "<Base-64 encoded TSV content here...>"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/importedAchPaymentInstructions',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/importedAchPaymentInstructions',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/importedAchPaymentInstructions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/importedAchPaymentInstructions', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/importedAchPaymentInstructions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/importedAchPaymentInstructions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Import ACH payment instructions
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/importedAchPaymentInstructions
Import a tab-separated values (TSV) file of ACH payment instructions, either appending to the existing instructions in this batch or replacing them.
Body parameter
{
"strategy": "append",
"content": "<Base-64 encoded TSV content here...>"
}
Parameters
Parameter | Description |
---|---|
body | achPaymentInstructionImport (required) Request containing the contents of the file to import |
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"type": "ach",
"state": "pendingApprovals",
"toSummary": 12,
"fromSummary": "Payroll Checking *7890",
"ach": {
"secCode": "ppd",
"companyName": "Well's Roofing",
"imported": false,
"confidentialCustomers": [
{
"id": "64446f8d-780f",
"name": "Philip F. Duciary"
},
{
"id": "58853981-24bb",
"name": "Alice A. Tuary"
}
],
"approvalDueAt": "2022-06-09T20:30:00.000Z",
"sameDayApprovalDue": [
"2022-06-09T15:00:00.000Z",
"2022-06-09T18:00:00.000Z",
"2022-06-09T20:30:00.000Z"
]
},
"trackingNumber": "15474162",
"remainingApprovalsCount": 1,
"approvalCount": 1,
"creditTotal": "2467.50",
"debitTotal": "0.00",
"creditCount": 12,
"debitCount": 30,
"settlementAccount": {
"label": "Payroll Checking *7890",
"maskedNumber": "*7890",
"id": "bf23bc970-91e8",
"risk": "normal"
},
"schedule": {
"scheduledOn": "2022-05-01",
"effectiveOn": "2022-04-30",
"frequency": "monthly"
},
"allows": {
"approve": false,
"edit": true,
"submit": true,
"delete": false,
"unlock": false,
"reject": false,
"reverse": false,
"reverseInstructions": false,
"copy": true,
"requestApproval": true
},
"name": "Payroll 03",
"description": "2022-03 Employee Payroll",
"information": "You have missed the cutoff time. Please re-schedule.",
"imported": true,
"approvers": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "to...58@wellsroofing.com"
},
{
"name": "Silvia Wilkenson",
"id": "06cf8996-d093",
"identification": "si...42@wellsroofing.com"
}
],
"approvals": [
{
"name": "Tom Allison",
"id": "327d8bea-2553",
"identification": "si...42@wellsroofing.com",
"approvedAt": "2022-04-25T09:02:57.375Z"
},
null
],
"direction": "credit",
"settlementType": "detailed",
"company": {
"id": "123-56-7890",
"type": "taxId"
},
"customerId": "4242923b-714e",
"createdAt": "2022-04-28T07:48:20.375Z",
"updatedAt": "2022-04-28T07:48:49.375Z",
"problems": []
}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The This error response may have one of the following
| |
Schema: paymentBatch | |
202 | Accepted |
Accepted. The request was accepted but validation is not yet complete. After the import processing completes, the problems in the response lists any errors from the import. | |
Schema: paymentBatch |
Status | Description |
---|---|
400 | Bad Request |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. If there were multiple validation errors, they are listed in the This error response may have one of the following
| |
Schema: problemResponse |
updatePaymentInstructionHolds
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/heldPaymentInstructions \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/heldPaymentInstructions HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/heldPaymentInstructions',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/heldPaymentInstructions',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/heldPaymentInstructions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/heldPaymentInstructions', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/heldPaymentInstructions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/heldPaymentInstructions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Set the hold
value of payment instructions
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/heldPaymentInstructions
Set the hold
value for a list of payment instructions from a payment batch. This is an idempotent action; if a instruction already has the given hold
state, it does not change and is considered a success.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
body | bulkPaymentInstructionHoldRequest (required) |
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The request was successfully processed. However, at least one of the payment instructions failed to update; see the This error response may have one of the following
| |
Schema: paymentInstructionHoldUpdate | |
204 | No Content |
No Content. All instructions were successfully updated without any problems. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
deletePaymentInstructions
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/deletedPaymentInstructions \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/deletedPaymentInstructions HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/deletedPaymentInstructions',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/deletedPaymentInstructions',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/deletedPaymentInstructions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/deletedPaymentInstructions', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/deletedPaymentInstructions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/deletedPaymentInstructions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete payment instruction resources
POST https://api.apiture.com/banking/paymentBatches/{paymentBatchId}/deletedPaymentInstructions
Delete the provided payment instruction resources from this payment batch.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
body | bulkPaymentInstructionDeletionRequest (required) |
paymentBatchId | resourceId (required) The unique identifier of a payment batch. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{}
404 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/notFound/v1.0.0",
"title": "Not Found",
"status": 404,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "The resource at the request URL does not exist.",
"instance": "https://production.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The request was successfully processed. However, at least one of the payment instructions failed to delete; see the This error response may have one of the following
| |
Schema: paymentInstructionDeletions | |
204 | No Content |
No Content. All instructions were successfully deleted without any problems. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment batch resource at the specified {paymentBatchId} . The response body contains details about the request error. | |
Schema: problemResponse |
Payment Contacts
Payment Contacts
listPaymentContacts
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/paymentContacts \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/paymentContacts HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentContacts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentContacts',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/paymentContacts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/paymentContacts', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentContacts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/paymentContacts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of payment contacts
GET https://api.apiture.com/banking/paymentContacts
Return a paginated collection of payment contacts. The nextPage_url in the response is a pagination link.
Parameters
Parameter | Description |
---|---|
type | contactType Filter payment contacts to a subset of individual or business contacts.enum values: individual , business |
name | string Filter payment contacts to a subset of contacts which contain the query string (case insensitive) in the contact's name .maxLength: 55 |
q | string Filter payment contacts to a subset of contacts which contain the query string (case insensitive) in the contact's name or contactIdentification .maxLength: 55 |
customerId | resourceId Filter contacts based on the banking customer ID. This is the ID of the business customer that owns the payment contact resource. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
method | string Filter payment contacts to a subset of contacts with ach or wire payment method.enum values: ach , wireTransfer |
wireTransferScope | string Filter payment contacts to a subset of contacts with a specified wireTransfer scope . This parameter should only be used when method is wireTransfer .enum values: domestic , international |
state | paymentContactState Filter payment contacts to a subset of contacts with active or inactive state. The default is to return all contacts, regardless of their state .enum values: active , inactive |
start | string The location of the next item in the collection. This is an opaque cursor supplied by the API service. Omit this to start at the beginning of the collection. The client does not define this value; the API services automatically pass the ?start= parameter on the nextPage_url .Default: "" maxLength: 256 |
limit | integer(int32) The maximum number of items to return in this paged response. Default: 100 minimum: 0 maximum: 1000 |
Example responses
200 Response
{
"start": "d1b48af913464aa49fcb07065dcc0616",
"limit": 10,
"nextPage_url": "https://production.api.apiture.com/payments/paymentContacts?start=6117a4dcefb841cab7316cef1ac8b58c&limit=10",
"items": [
{
"id": "0399abed-fd3d",
"name": "James Bond",
"contactIdentification": "007",
"address": {
"address1": "1405 Tiburon Dr",
"locality": "Wilmington",
"regionCode": "NC",
"postalCode": "28403",
"countryCode": "US"
},
"phone": [
{
"type": "business",
"number": "+19105550007"
}
],
"email": "james.bond@mi6.gov.uk",
"type": "individual",
"employee": true,
"customerId": "0399abed-fd3d",
"state": "active"
},
{
"id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"name": "Dr. Stephen Strange",
"address": {
"address1": "177A Bleecker Street",
"locality": "New York",
"regionCode": "NY",
"postalCode": "10012",
"countryCode": "US"
},
"phone": [
{
"type": "cell",
"number": "+19105550007"
}
],
"email": "stephen.strange@marvel.com",
"type": "individual",
"employee": false,
"customerId": "0399abed-fd3d",
"state": "active"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: paymentContacts |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. | |
Schema: problemResponse |
createPaymentContact
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentContacts \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentContacts HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"name": "James Bond",
"contactIdentification": "007",
"address": {
"address1": "1405 Tiburon Dr",
"locality": "Wilmington",
"regionCode": "NC",
"postalCode": "28403",
"countryCode": "US"
},
"type": "individual",
"employee": true,
"customerId": "0399abed-fd3d"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentContacts',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentContacts',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentContacts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentContacts', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentContacts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentContacts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new payment contact
POST https://api.apiture.com/banking/paymentContacts
Create a new payment contact within the payment contacts collection.
Body parameter
{
"name": "James Bond",
"contactIdentification": "007",
"address": {
"address1": "1405 Tiburon Dr",
"locality": "Wilmington",
"regionCode": "NC",
"postalCode": "28403",
"countryCode": "US"
},
"type": "individual",
"employee": true,
"customerId": "0399abed-fd3d"
}
Parameters
Parameter | Description |
---|---|
body | newPaymentContact (required) The data necessary to create a new payment contact. |
Example responses
201 Response
{
"id": "0399abed-fd3d",
"name": "James Bond",
"contactIdentification": "007",
"address": {
"address1": "1405 Tiburon Dr",
"locality": "Wilmington",
"regionCode": "NC",
"postalCode": "28403",
"countryCode": "US"
},
"type": "individual",
"employee": true,
"customerId": "0399abed-fd3d",
"state": "active",
"paymentMethods": [
{
"id": "0399abed-fd3d",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"type": "checking",
"primary": true
}
},
{
"id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123457780",
"type": "checking",
"primary": false
}
}
]
}
Responses
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: paymentContact | |
Header | Location string uri-reference |
The URI of the new payment contact. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. | |
Schema: problemResponse |
getPaymentContact
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/paymentContacts/{paymentContactId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/paymentContacts/{paymentContactId} HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentContacts/{paymentContactId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/paymentContacts/{paymentContactId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentContacts/{paymentContactId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/paymentContacts/{paymentContactId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this payment contact
GET https://api.apiture.com/banking/paymentContacts/{paymentContactId}
Return the JSON representation of this payment contact resource.
Parameters
Parameter | Description |
---|---|
paymentContactId | resourceId (required) The unique identifier of a payment contact. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"name": "James Bond",
"contactIdentification": "007",
"address": {
"address1": "1405 Tiburon Dr",
"locality": "Wilmington",
"regionCode": "NC",
"postalCode": "28403",
"countryCode": "US"
},
"type": "individual",
"employee": true,
"customerId": "0399abed-fd3d",
"state": "active",
"paymentMethods": [
{
"id": "0399abed-fd3d",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"type": "checking",
"primary": true
}
},
{
"id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123457780",
"type": "checking",
"primary": false
}
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: paymentContact |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment contact resource at the specified {paymentContactId} . | |
Schema: problemResponse |
patchPaymentContact
Code samples
# You can also use wget
curl -X PATCH https://api.apiture.com/banking/paymentContacts/{paymentContactId} \
-H 'Content-Type: application/merge-patch+json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.apiture.com/banking/paymentContacts/{paymentContactId} HTTP/1.1
Host: api.apiture.com
Content-Type: application/merge-patch+json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"state": "inactive"
}';
const headers = {
'Content-Type':'application/merge-patch+json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentContacts/{paymentContactId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/merge-patch+json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/merge-patch+json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/merge-patch+json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.apiture.com/banking/paymentContacts/{paymentContactId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentContacts/{paymentContactId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/merge-patch+json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.apiture.com/banking/paymentContacts/{paymentContactId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this payment contact
PATCH https://api.apiture.com/banking/paymentContacts/{paymentContactId}
Perform a partial update of this payment contact as per JSON Merge Patch format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated. Patch operations do not modify the payment contact's existing payment batches or templates; payment instructions contain only copies of the contact's information.
Body parameter
{
"state": "inactive"
}
Parameters
Parameter | Description |
---|---|
body | paymentContactPatch (required) The fields to update within the payment contact. |
paymentContactId | resourceId (required) The unique identifier of a payment contact. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"name": "James Bond",
"contactIdentification": "007",
"address": {
"address1": "1405 Tiburon Dr",
"locality": "Wilmington",
"regionCode": "NC",
"postalCode": "28403",
"countryCode": "US"
},
"type": "individual",
"employee": true,
"customerId": "0399abed-fd3d",
"state": "active",
"paymentMethods": [
{
"id": "0399abed-fd3d",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"type": "checking",
"primary": true
}
},
{
"id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123457780",
"type": "checking",
"primary": false
}
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: paymentContact |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment contact resource at the specified {paymentContactId} . | |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. | |
Schema: problemResponse |
deletePaymentContact
Code samples
# You can also use wget
curl -X DELETE https://api.apiture.com/banking/paymentContacts/{paymentContactId} \
-H 'Accept: application/problem+json' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.apiture.com/banking/paymentContacts/{paymentContactId} HTTP/1.1
Host: api.apiture.com
Accept: application/problem+json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/problem+json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentContacts/{paymentContactId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/problem+json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/problem+json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/problem+json',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.apiture.com/banking/paymentContacts/{paymentContactId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentContacts/{paymentContactId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/problem+json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.apiture.com/banking/paymentContacts/{paymentContactId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this payment contact resource
DELETE https://api.apiture.com/banking/paymentContacts/{paymentContactId}
Deleting contacts does not modify any existing payment batches or templates; payment instructions contain only copies of the contact's information.
Parameters
Parameter | Description |
---|---|
paymentContactId | resourceId (required) The unique identifier of a payment contact. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
401 Response
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchAccount/v1.0.0",
"title": "Account Not Found",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No account exists for the given account reference",
"instance": "https://production.api.apiture.com/banking/transfers/bb709151-575041fcd617"
}
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The operation succeeded but returned no response body. |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such payment contact resource at the specified {paymentContactId} . | |
Schema: problemResponse |
listContactPayments
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/paymentContacts/{paymentContactId}/payments \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/paymentContacts/{paymentContactId}/payments HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentContacts/{paymentContactId}/payments',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}/payments',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}/payments',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/paymentContacts/{paymentContactId}/payments', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentContacts/{paymentContactId}/payments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/paymentContacts/{paymentContactId}/payments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return this contact's pending and historical payments
GET https://api.apiture.com/banking/paymentContacts/{paymentContactId}/payments
Return a paginated collection of this contact's pending and historical payments.
The response is sorted in reverse chronological order by default. The default response lists unscheduled payments first, then pending/scheduled/processing and other unprocessed payments, followed by historical processed payments.
If an individual payment batch contains multiple payment instructions to this contact, each payment instruction is listed as a separate item in the response.
The result does not include payments that are not explicitly attached to the contact. For example, an ACH payment instruction with a recipient routing number and account number that exactly matches a contact but which does not include the contactId
is not included in the response.
If the request includes a dateRage
, the response include previous and next date ranges, each based on the same number of days in the dateRange
, to facilitate scrolling through time.
Parameters
Parameter | Description |
---|---|
paymentContactId | resourceId (required) The unique identifier of a payment contact. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
effectiveOn | dateRangeOrUnscheduled Return only payments whose effectiveOn date is in the given date range, and/or which are unscheduled. Date ranges use range notation. Examples:
YYYY-MM-DD single date values) may include the |unscheduled suffix. This notation matches payments batches that are scheduled in the given date range or which are unscheduled.minLength: 10 maxLength: 34 pattern: ^\d{4}-\d{2}-\d{2}|([[(](\d{4}-\d{2}-\d{2},(\d{4}-\d{2}-\d{2})?|,\d{4}-\d{2}-\d{2})[)\]](\|unscheduled)?)|unscheduled$ |
state | array[string] Return only payment instructions whose payment batch state matches one of the items in this pipe-separated list. The default is all payment batch states.unique items minItems: 1 maxItems: 10 pipe-delimited items: » enum values: pending , pendingApproval , rejected , scheduled , processing , processed , reversalPending , partiallyReversed , reversed , canceled |
direction | paymentInstructionDirection List only payments whose direction matches the request. The default matches either direction.enum values: credit , debit |
ascending | boolean If true , the response is sorted in ascending order, starting with the oldest payments. The default is false , sorting in descending date order. Unscheduled payments sort later than scheduled ones. |
Example responses
200 Response
{
"paymentContactId": "4d8c-8004-a650d0242f66",
"items": [
{
"paymentBatch": {
"id": "fbc7cb5d-0f98",
"type": "ach",
"traceNumber": 86302,
"name": "22/09 Pay",
"state": "processed",
"effectiveOn": "2022-09-12"
},
"amount": "1592.58",
"instructionId": "c148e81f-ec0a",
"direction": "credit",
"ach": {
"accountNumber": "123456789"
}
},
{
"paymentBatch": {
"id": "fbc7cb5d-0f98",
"type": "ach",
"traceNumber": 85932,
"name": "22/08 Pay",
"state": "processed",
"effectiveOn": "2022-08-12"
},
"amount": "1640.72",
"instructionId": "fb7c04f5-8b79",
"direction": "credit",
"ach": {
"accountNumber": "123456789"
}
},
{
"paymentBatch": {
"id": "0939cdfb-c77d",
"type": "ach",
"traceNumber": 84329,
"name": "22/07 Pay",
"state": "processed",
"effectiveOn": "2022-07-12"
},
"amount": "1578.90",
"instructionId": "f674b43c-e74a",
"direction": "credit",
"ach": {
"accountNumber": "123456789"
}
}
],
"previousDateRange": "[2022-04-01,2022-07-01)"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: paymentContactPayments |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not found. There is no such resource at the request URL. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
exportPaymentContacts
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentContactExport \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentContactExport HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"paymentContactIds": [
"f84547a1-37f0",
"8102d76af3d6-afe3",
"699c5803-b607",
"d88a1e1e017c-94d5"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentContactExport',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentContactExport',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentContactExport',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentContactExport', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentContactExport");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentContactExport", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Export Payment Contacts
POST https://api.apiture.com/banking/paymentContactExport
Export a comma-separated values (CSV) file of payment contacts and their associated payment methods.
Body parameter
{
"paymentContactIds": [
"f84547a1-37f0",
"8102d76af3d6-afe3",
"699c5803-b607",
"d88a1e1e017c-94d5"
]
}
Parameters
Parameter | Description |
---|---|
body | paymentContactsExportRequest (required) |
Example responses
201 Response
{
"paymentContactIds": [
"f84547a1-37f0",
"8102d76af3d6-afe3",
"699c5803-b607",
"d88a1e1e017c-94d5"
],
"content": "... text content not included here ..."
}
Responses
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: paymentContactsCsvExport | |
Header | Content-Disposition string |
The file information provided for the text/csv response, such as attachment; filename="payment-contacts.csv" . |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. | |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
Payment Contact Actions
Payment Contact Actions
deactivatePaymentContact
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentContacts/{paymentContactId}/inactive \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentContacts/{paymentContactId}/inactive HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentContacts/{paymentContactId}/inactive',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}/inactive',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}/inactive',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentContacts/{paymentContactId}/inactive', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentContacts/{paymentContactId}/inactive");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentContacts/{paymentContactId}/inactive", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Deactivate a payment contact
POST https://api.apiture.com/banking/paymentContacts/{paymentContactId}/inactive
Deactivate a payment contact. This changes the state
property of the payment contact to inactive
. The response is the updated representation of the payment contact. This operation is idempotent: no changes are made if the payment contact is already inactive
.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
paymentContactId | resourceId (required) The unique identifier of a payment contact. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
body | deactivatePaymentContactRequest (required) Request body for activating a payment contact. |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"name": "James Bond",
"contactIdentification": "007",
"address": {
"address1": "1405 Tiburon Dr",
"locality": "Wilmington",
"regionCode": "NC",
"postalCode": "28403",
"countryCode": "US"
},
"type": "individual",
"employee": true,
"customerId": "0399abed-fd3d",
"state": "active",
"paymentMethods": [
{
"id": "0399abed-fd3d",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"type": "checking",
"primary": true
}
},
{
"id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123457780",
"type": "checking",
"primary": false
}
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. The payment contact was updated and its state changed to inactive . | |
Schema: paymentContact |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not found. There is no such resource at the request URL. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to deactivate the payment contact is not allowed. | |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Bad Request. The paymentContact parameter was malformed or does not refer to an existing or accessible payment contact. | |
Schema: problemResponse |
activatePaymentContact
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentContacts/{paymentContactId}/active \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentContacts/{paymentContactId}/active HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentContacts/{paymentContactId}/active',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}/active',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}/active',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentContacts/{paymentContactId}/active', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentContacts/{paymentContactId}/active");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentContacts/{paymentContactId}/active", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Activate a payment contact
POST https://api.apiture.com/banking/paymentContacts/{paymentContactId}/active
Activate a payment contact. This changes the state
property of the payment contact to active
. The response is the updated representation of the payment contact. This operation is idempotent: no changes are made if the payment contact is already active
.
Body parameter
{}
Parameters
Parameter | Description |
---|---|
paymentContactId | resourceId (required) The unique identifier of a payment contact. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
body | activatePaymentContactRequest (required) Request body for activating a payment contact. |
Example responses
200 Response
{
"id": "0399abed-fd3d",
"name": "James Bond",
"contactIdentification": "007",
"address": {
"address1": "1405 Tiburon Dr",
"locality": "Wilmington",
"regionCode": "NC",
"postalCode": "28403",
"countryCode": "US"
},
"type": "individual",
"employee": true,
"customerId": "0399abed-fd3d",
"state": "active",
"paymentMethods": [
{
"id": "0399abed-fd3d",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"type": "checking",
"primary": true
}
},
{
"id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123457780",
"type": "checking",
"primary": false
}
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. The payment contact was updated and its state changed to active . | |
Schema: paymentContact |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not found. There is no such resource at the request URL. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to activate the payment contact is not allowed. | |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Bad Request. The paymentContact parameter was malformed or does not refer to an existing or accessible payment contact. | |
Schema: problemResponse |
Payment Methods
Payment Methods
listPaymentMethods
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return this contact's collection of payment methods
GET https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods
Return a payment method collection for this contact.
Parameters
Parameter | Description |
---|---|
paymentContactId | resourceId (required) The unique identifier of a payment contact. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"items": [
{
"id": "0399abed-fd3d",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"type": "checking",
"primary": true
}
},
{
"id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123457780",
"type": "checking",
"primary": false
}
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: paymentMethods |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not found. There is no such resource at the request URL. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
createPaymentMethod
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"type": "checking",
"primary": true
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new payment method
POST https://api.apiture.com/banking/paymentContacts/{paymentContactId}/paymentMethods
Create a new payment method for this contact.
Body parameter
{
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"type": "checking",
"primary": true
}
}
Parameters
Parameter | Description |
---|---|
paymentContactId | resourceId (required) The unique identifier of a payment contact. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
body | newPaymentMethod (required) The data necessary to create a new payment method. |
Example responses
201 Response
{
"id": "0399abed-fd3d",
"type": "ach",
"ach": {
"routingNumber": "123123123",
"accountNumber": "123456789",
"type": "checking",
"primary": true
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: paymentMethod | |
Header | Location string uri-reference |
The URI of the new payment method. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
|