Shell HTTP JavaScript Node.JS Ruby Python Java Go

Payments v0.2.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.

The Payments API allows banking customers to submit instructions to pay people or businesses using one of several payment methods, such as wire transfers, bill payment, or person to person payment. The payment is drafted from an eligle account. This API does not process or execute the payments.

The API provides metadata which describes each available payment method, its terms and conditions, whether the payment method supports scheduling payments in the future, or whether the user can edit or cancel submitted payment instructions.

The customer can create payees and manage the payment method details of each payee, such as how to pay them via wire transfer and/or bill pay. Payees may be people or businesses (or other non-person entity). Use the createPayee operation to create a new payee. The customer owns their payees, which are not visible to other customers. However, the details of payment instructions, which includes some details of the payee, are visible to other account holders.

The client can create a payment instruction. A payment instruction represents a user's request to make a payment. Payment instructions contain an existing payee or data for a new payee, and details of one payment method with which to pay that payee. The new payment instruction is in the pending state. the client application may update the pending payment instruction or delete it. When ready, the client should submit the payment instruction. (Payment instructions are not processed unless they are submitted.) The client may cancel some submitted payment instruction, before they are processed, although not all payment methods support canceling.

The customer can view their pending, submitted, and processing getPaymentInstructions. Other account holders can also view payment instructions on the account.

Finally, the customer can view their payment history - a list of completed or failed payments.

Multi-factor authentication challenges

Some payment methods, such as wire transfers, may require multi-factor authentication (MFA) when submitting payment instructions. An MFA challenge is a process to verify the user's identity through one or more additional authentication steps.

If the client tries the operation without a valid redeemable Apiture-Challenge request header, the operation may fail with a 409 Conflict. The response body, defined by the challengeErrorResponse schema, contains a challenge resource which includes one or more authenticators. The client should start at least one of the authenticators, optionally allowing the user to choose which one to use, depending on how many authenticators are required.

For example, the challenge may include an authenticator that sends a verification code to the user's mobile phone. The user completes the authentication by entering the code in the client application. Once the authentication step has completed successfully, the client must pass the resource ID of the challenge resource in the Apiture-Challenge request header in order to complete the operation. Thus, these operations require two tries: the first (without the Apiture-Challenge header), which fails with a 409 status but returns the challenge object, then after completing the challenges' authenticators, a second try, passing in the Apiture-Challenge header.

Payment instruction processing

After submitting, the financial institution may begin processing the payment instructions There may be some delay, from minutes to hours or days, depending on the payment method.

The financial institution may reject the payment instructions, for example, if the account has insufficient funds when the payment is processed, or if the account is locked or closed.

The financial institution executes submitted payment instructions through other processes. The API supports two types of payment processing:

  1. Instantaneous (or "real time"), where the submitted payment is complete (the account has been debited) as soon as it is processed. For this case, the financial institution should invoke the completePaymentInstruction operation on the submitted payment instruction. This may be the case with wire transfers.
  2. Batch, where the financial institution first marks payment instruction as processed. When the financial institution later gets confirmation that the payment has completed and the account has been debited, the financial institution should mark the payment instruction as complete.

If the financial institution tries but is is unable to process or complete the payment instructions, it should invoke the failPaymentInstruction operation.

Error Types

Error responses in this API may have one of the type values described below. See Errors for more information on error responses and error types.

cannotChangePaymentMethodType

Description: Once a payment instruction has been submitted, the payment method type is not mutable.
Remediation: Contact the financial institution to cancel the payment and submit a new payment instruction.

cannotUpdateCompletedPaymentInstructions

Description: Completed payment instructions are immutable.
Remediation: Only update pending requests or submitted requests that allow updates as per the payment method definition.

challengeRefNotFound

Description: There is no challence resource corresponding to the referenced challenge.
Remediation: Pass a reference to a valid challence resource.

challengedAlreadyRedeemed

Description: The challenge resource has already been redeemed.
Remediation: Use the most recently issued challenge.

challengedExpired

Description: The challenge resource has expired.
Remediation: Use the most recently issued challenge and complete the authenticators before the challenge expires.

invalidAccount

Description: The apiture:account link was missing, was not a valid URL, or refers to an account that is not eligible for debiting for payments.
Remediation: Pass the URL of an account that is suitable for payments.

invalidAttachment

Description: A file attachment URL is invalid, no such resource exists, the attachment content does not match the document type, or the attachment content is not an allowed.
Remediation: Pass a valid attachment document URL.

missingApitureChallengeHeader

Description: The Apiture-Challenge request header is missing.
Remediation: Pass a reference to a valid challence resource in the Apiture-Challenge header.

noSuchPayee

Description: The payment instruction included a payee _id but no such payee exists.
Remediation: Update a payment instruction using an existing payee or a payee without _id to create a new payee.

payeeMismatch

Description: A payee with type of person must contain the person object and its required properties, and a payee with type of organization must contain the organization object and its required properties. Only one of the person and organization objects is allowed.
Remediation: Pass the required object corresponding to the payee's type.

paymentMethodDisallowsUpdates

Description: Updates to payment instructions are not allowed for requests using this payment method.
Remediation: Contact the financial institution to cancel the payment and submit a new payment instruction.

paymentMethodMismatch

Description: The payment instruction does not include the corresponding payment details for the paymentMethod.type.
Remediation: Set the correct details in the request. For example if the paymentMethod.type is wireTransfer, the body must contain the paymentMethod.wireTransfer object.

Download OpenAPI Definition (YAML)

Base URLs:

Terms of service

Email: Apiture Web: Apiture

Authentication

Scope Scope Description
banking/read Read access to accounts and account-related resources such as transfers and transactions.
banking/write Write (update) access to accounts and account-related resources such as transfers and transactions.
banking/delete Delete access to If deletable accounts and account-related resources such as transfers.
banking/readBalance Read access to account balances. This must be granted in addition to the banking/read scope in order to view balances, but is included in the banking/full scope.
banking/full Full access to accounts and account-related resources such as transfers and transactions.

Payees

Payment Recipients

getPayees

Code samples

# You can also use wget
curl -X GET /payments/payees \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /payments/payees HTTP/1.1

Accept: application/json

var headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/payees',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/payees',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/payments/payees',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/payments/payees', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/payees");
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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/payments/payees", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of payees

GET /payees

Return a paginated sortable filterable searchable collection of payees. The links in the response include pagination links.

Parameters

Parameter Description
type
(query)
string
Filter the response to list only payees of this type.
Enumerated values:
person
organization
start
(query)
integer(int64)
The zero-based index of the first payee item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of payee representations to return in this page.
Default: 100
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2. The default sort order is by type, then by name (organization name or person lastname, firstname, middle name).
This collection may be sorted by following properties:
• createdAt
• name
• type
• state
filter
(query)
string
Optional filter criteria. See filtering.
This collection may be filtered by following properties and functions:
• Property state using functions eq, ne
q
(query)
string
Optional search string. See searching.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/payments/payees/v1.0.0/profile.json",
  "name": "payees",
  "start": 10,
  "limit": 10,
  "count": 67,
  "_links": {
    "self": {
      "href": "/payments/payees?start=10&limit=10"
    },
    "first": {
      "href": "/payments/payees?start=0&limit=10"
    },
    "next": {
      "href": "/payments/payees?start=20&limit=10"
    },
    "collection": {
      "href": "/payments/payees"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
        "type": "person",
        "person": {
          "firstName": "John",
          "middleName": "Daniel",
          "lastName": "Smith"
        },
        "address": {
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        "createdBy": "johnsmith1234",
        "createdAt": "2020-10-02T11:09:20.375Z",
        "updatedAt": "2020-10-02T11:15:25.375Z",
        "_embedded": {
          "wireTransfer": {
            "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
            "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
            "institution": {
              "name": "3rd Party Bank",
              "address": {
                "addressLine1": "500 N. Elm St",
                "city": "Norman",
                "regionCode": "OK",
                "postalCode": "73070",
                "countryCode": "US"
              },
              "routingNumber": "021000021",
              "forFurtherCreditMemo": "Attention: John Smith"
            },
            "accountNumber": "9876543210"
          }
        },
        "_links": {
          "self": {
            "href": "/payments/payees/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        }
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: payees
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createPayee

Code samples

# You can also use wget
curl -X POST /payments/payees \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /payments/payees HTTP/1.1

Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/payees',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://api.apiture.com/schemas/payments/createPayee/v1.0.0/profile.json",
  "type": "person",
  "person": {
    "firstName": "John",
    "middleName": "Daniel",
    "lastName": "Smith"
  },
  "address": {
    "addressLine1": "555 N Front Street",
    "addressLine2": "Suite 5555",
    "city": "Wilmington",
    "regionCode": "NC",
    "postalCode": "28401-5405",
    "countryCode": "US"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/payees',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/payments/payees',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/payments/payees', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/payees");
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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/payments/payees", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new payee

POST /payees

Create a new payee in the payees collection.

Body parameter

{
  "_profile": "https://api.apiture.com/schemas/payments/createPayee/v1.0.0/profile.json",
  "type": "person",
  "person": {
    "firstName": "John",
    "middleName": "Daniel",
    "lastName": "Smith"
  },
  "address": {
    "addressLine1": "555 N Front Street",
    "addressLine2": "Suite 5555",
    "city": "Wilmington",
    "regionCode": "NC",
    "postalCode": "28401-5405",
    "countryCode": "US"
  }
}

Parameters

Parameter Description
body
(body)
createPayee
The data necessary to create a new payee.

Try It

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
  "type": "person",
  "person": {
    "firstName": "John",
    "middleName": "Daniel",
    "lastName": "Smith"
  },
  "address": {
    "addressLine1": "555 N Front Street",
    "addressLine2": "Suite 5555",
    "city": "Wilmington",
    "regionCode": "NC",
    "postalCode": "28401-5405",
    "countryCode": "US"
  },
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "_embedded": {
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210"
    }
  }
}

Responses

StatusDescription
201 Created
Created
Schema: payee
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity

Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response contains details about the request error.

This error response may have one of the following type values:

Schema: errorResponse

Response Headers

StatusDescription
201 Location string uri
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme://host
201 ETag string
An entity tag which may be passed in the If-Match request header for PUT or PATCH operations which update the resource.

getPayee

Code samples

# You can also use wget
curl -X GET /payments/payees/{payeeId} \
  -H 'Accept: application/json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /payments/payees/{payeeId} HTTP/1.1

Accept: application/json
If-None-Match: string

var headers = {
  'Accept':'application/json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/payees/{payeeId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/payees/{payeeId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/payments/payees/{payeeId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/payments/payees/{payeeId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/payees/{payeeId}");
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"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/payments/payees/{payeeId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this payee

GET /payees/{payeeId}

Return a HAL representation of this payee resource.

Parameters

Parameter Description
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET returns 304 (Not Modified) and no response body, else the resource representation will be returned.
payeeId
(path)
string (required)
The unique identifier of this payee. This is an opaque string.

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
  "type": "person",
  "person": {
    "firstName": "John",
    "middleName": "Daniel",
    "lastName": "Smith"
  },
  "address": {
    "addressLine1": "555 N Front Street",
    "addressLine2": "Suite 5555",
    "city": "Wilmington",
    "regionCode": "NC",
    "postalCode": "28401-5405",
    "countryCode": "US"
  },
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "_embedded": {
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: payee
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such payee resource at the specified {payeeId}. The _error field in the response contains details about the payment instruction error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this payee resource.

updatePayee

Code samples

# You can also use wget
curl -X PUT /payments/payees/{payeeId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT /payments/payees/{payeeId} HTTP/1.1

Content-Type: application/json
Accept: application/json
If-Match: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/payees/{payeeId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
  "type": "person",
  "person": {
    "firstName": "John",
    "middleName": "Daniel",
    "lastName": "Smith"
  },
  "address": {
    "addressLine1": "555 N Front Street",
    "addressLine2": "Suite 5555",
    "city": "Wilmington",
    "regionCode": "NC",
    "postalCode": "28401-5405",
    "countryCode": "US"
  },
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "_embedded": {
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/payees/{payeeId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put '/payments/payees/{payeeId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('/payments/payees/{payeeId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/payees/{payeeId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
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"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/payments/payees/{payeeId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this payee

PUT /payees/{payeeId}

Perform a complete replacement of this payee. Note that this operation may change the payee type, although only one of the person and organization objects is allowed. If type is person, the person object must be provided , and if type is organization, the organization object must be provided. Nested _embedded and _links are ignored if included.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
  "type": "person",
  "person": {
    "firstName": "John",
    "middleName": "Daniel",
    "lastName": "Smith"
  },
  "address": {
    "addressLine1": "555 N Front Street",
    "addressLine2": "Suite 5555",
    "city": "Wilmington",
    "regionCode": "NC",
    "postalCode": "28401-5405",
    "countryCode": "US"
  },
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "_embedded": {
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210"
    }
  }
}

Parameters

Parameter Description
If-Match
(header)
string
The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource.
body
(body)
payee
A new payee
payeeId
(path)
string (required)
The unique identifier of this payee. This is an opaque string.

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
  "type": "person",
  "person": {
    "firstName": "John",
    "middleName": "Daniel",
    "lastName": "Smith"
  },
  "address": {
    "addressLine1": "555 N Front Street",
    "addressLine2": "Suite 5555",
    "city": "Wilmington",
    "regionCode": "NC",
    "postalCode": "28401-5405",
    "countryCode": "US"
  },
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "_embedded": {
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: payee
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such payee resource at the specified {payeeId}. The _error field in the response contains details about the payment instruction error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this payee resource.

patchPayee

Code samples

# You can also use wget
curl -X PATCH /payments/payees/{payeeId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PATCH /payments/payees/{payeeId} HTTP/1.1

Content-Type: application/json
Accept: application/json
If-Match: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/payees/{payeeId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
  "type": "person",
  "person": {
    "firstName": "John",
    "middleName": "Daniel",
    "lastName": "Smith"
  },
  "address": {
    "addressLine1": "555 N Front Street",
    "addressLine2": "Suite 5555",
    "city": "Wilmington",
    "regionCode": "NC",
    "postalCode": "28401-5405",
    "countryCode": "US"
  },
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "_embedded": {
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/payees/{payeeId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch '/payments/payees/{payeeId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('/payments/payees/{payeeId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/payees/{payeeId}");
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/json"},
        "Accept": []string{"application/json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/payments/payees/{payeeId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this payee

PATCH /payees/{payeeId}

Perform a partial update of this payee. Fields which are omitted are not updated. See also the constraints in updatePayee which also apply to this patch operation. Nested _embedded and _links are ignored if included.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
  "type": "person",
  "person": {
    "firstName": "John",
    "middleName": "Daniel",
    "lastName": "Smith"
  },
  "address": {
    "addressLine1": "555 N Front Street",
    "addressLine2": "Suite 5555",
    "city": "Wilmington",
    "regionCode": "NC",
    "postalCode": "28401-5405",
    "countryCode": "US"
  },
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "_embedded": {
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210"
    }
  }
}

Parameters

Parameter Description
If-Match
(header)
string
The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource.
body
(body)
payee
The new payee.
payeeId
(path)
string (required)
The unique identifier of this payee. This is an opaque string.

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
  "type": "person",
  "person": {
    "firstName": "John",
    "middleName": "Daniel",
    "lastName": "Smith"
  },
  "address": {
    "addressLine1": "555 N Front Street",
    "addressLine2": "Suite 5555",
    "city": "Wilmington",
    "regionCode": "NC",
    "postalCode": "28401-5405",
    "countryCode": "US"
  },
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "_embedded": {
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: payee
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such payee resource at the specified {payeeId}. The _error field in the response contains details about the payment instruction error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this payee resource.

deletePayee

Code samples

# You can also use wget
curl -X DELETE /payments/payees/{payeeId} \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE /payments/payees/{payeeId} HTTP/1.1

var headers = {
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/payees/{payeeId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/payees/{payeeId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete '/payments/payees/{payeeId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('/payments/payees/{payeeId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/payees/{payeeId}");
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{
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/payments/payees/{payeeId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Delete this payee resource

DELETE /payees/{payeeId}

Delete this payee resource and any resources that are owned by it.

Parameters

Parameter Description
payeeId
(path)
string (required)
The unique identifier of this payee. This is an opaque string.

Try It

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.

Payment Instructions

Requests to Make a Payment

getPaymentInstructions

Code samples

# You can also use wget
curl -X GET /payments/paymentInstructions \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /payments/paymentInstructions HTTP/1.1

Accept: application/json

var headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/paymentInstructions',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/paymentInstructions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/payments/paymentInstructions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/payments/paymentInstructions', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/payments/paymentInstructions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of payment instructions

GET /paymentInstructions

Return a paginated sortable filterable searchable collection of payment instructions. The links in the response include pagination links.

Parameters

Parameter Description
type
(query)
string
Filter the response to list only payments of this payment method type.
Enumerated values:
billPay
personToPerson
wireTransfer
state
(query)
array[string]
Filter the response to list only payment instructions in this state.
uniqueItems: true
account
(query)
array[string]
Filter the response to list only payment instructions for the specified accounts, identified by the accountId.
maxItems: 8
uniqueItems: true
start
(query)
integer(int64)
The zero-based index of the first payment instruction item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of payment instruction representations to return in this page.
Default: 100
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2. The default sort order is by createdAt (descending).
This collection may be sorted by following properties:
• createdAt
• type
• state
• payeeName
• amount.value
filter
(query)
string
Optional filter criteria. See filtering.
This collection may be filtered by following properties and functions:
• Property state using functions eq, ne, in
• Property type using functions eq, ne, in
• Property submittedAt using functions lt, le, gt, ge
• Property amount.value using functions lt, le, gt, ge, eq, ne
• Property account using functions eq, ne, in
• Property createdAt using functions lt, le, gt, ge
• Property createdBy using functions eq, in
• Property payeeName using functions eq, contains
q
(query)
string
Optional search string. See searching.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstructions/v1.0.0/profile.json",
  "name": "paymentInstructions",
  "start": 10,
  "limit": 10,
  "count": 67,
  "_links": {
    "self": {
      "href": "/payments/paymentInstructions?start=10&limit=10"
    },
    "first": {
      "href": "/payments/paymentInstructions?start=0&limit=10"
    },
    "next": {
      "href": "/payments/paymentInstructions?start=20&limit=10"
    },
    "collection": {
      "href": "/payments/paymentInstructions"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
        "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
        "amount": {
          "value": "5000.00",
          "currency": "USD"
        },
        "purpose": "Advance consulting fee",
        "payee": {
          "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
          "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
          "type": "person",
          "payeeName": "John Daniel Smith",
          "accountName": "Premiere Checking",
          "person": {
            "firstName": "John",
            "middleName": "Daniel",
            "lastName": "Smith"
          },
          "address": {
            "addressLine1": "555 N Front Street",
            "addressLine2": "Suite 5555",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28401-5405",
            "countryCode": "US"
          }
        },
        "paymentMethod": {
          "type": "wireTransfer",
          "wireTransfer": {
            "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
            "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
            "institution": {
              "name": "3rd Party Bank",
              "address": {
                "addressLine1": "500 N. Elm St",
                "city": "Norman",
                "regionCode": "OK",
                "postalCode": "73070",
                "countryCode": "US"
              },
              "routingNumber": "021000021",
              "forFurtherCreditMemo": "Attention: John Smith"
            },
            "accountNumber": "9876543210",
            "attachments": [
              {
                "name": "invoice-2020-10-01a.pdf",
                "contentType": "application/pdf",
                "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
              }
            ]
          }
        },
        "state": "submitted",
        "createdBy": "johnsmith1234",
        "createdAt": "2020-10-02T11:09:20.375Z",
        "updatedAt": "2020-10-02T11:15:25.375Z",
        "expiresAt": "2020-10-05T11:15:25.375Z",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
          },
          "apiture:paymentMethod": {
            "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
          },
          "apiture:account": {
            "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
          }
        }
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: paymentInstructions
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createPaymentInstruction

Code samples

# You can also use wget
curl -X POST /payments/paymentInstructions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /payments/paymentInstructions HTTP/1.1

Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/paymentInstructions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://api.apiture.com/schemas/payments/createPaymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "256.50",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/paymentInstructions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/payments/paymentInstructions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/payments/paymentInstructions', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/payments/paymentInstructions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new payment instruction

POST /paymentInstructions

Create a new payment instruction. The new resource appears in the payment instructions collection.

The request body includes the payment amount, the payee, the details of a payment method, and the apiture:account link of the account where the payment is debited.

Upon creating the payment instruction, the service automatically writes the payee and payment method properties to the associated payee resource and its corresponding nested payment methods resource. This operation creates a new payee if the request body does not contain an payee._id (a refererence to an existing payee).

The payment remains pending until submitted with the submitPaymentInstruction. Pending payment instructions may be deleted via deletePaymentInstruction.

Body parameter

{
  "_profile": "https://api.apiture.com/schemas/payments/createPaymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "256.50",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Parameters

Parameter Description
body
(body)
createPaymentInstruction
The data necessary to create a new payment instruction.

Try It

Example responses

201 Response

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Responses

StatusDescription
201 Created
Created
Schema: paymentInstruction
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity

Conflict. The payment instruction cannot be updated.

This error response may have one of the following type values:

Schema: errorResponse

Response Headers

StatusDescription
201 Location string uri
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme://host
201 ETag string
An entity tag which may be passed in the If-Match request header for PUT or PATCH operations which update the resource.

getPaymentInstruction

Code samples

# You can also use wget
curl -X GET /payments/paymentInstructions/{paymentInstructionId} \
  -H 'Accept: application/json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /payments/paymentInstructions/{paymentInstructionId} HTTP/1.1

Accept: application/json
If-None-Match: string

var headers = {
  'Accept':'application/json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/paymentInstructions/{paymentInstructionId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/paymentInstructions/{paymentInstructionId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/payments/paymentInstructions/{paymentInstructionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/payments/paymentInstructions/{paymentInstructionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/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"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/payments/paymentInstructions/{paymentInstructionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this payment instruction

GET /paymentInstructions/{paymentInstructionId}

Return a HAL representation of this payment instruction resource.

Parameters

Parameter Description
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET returns 304 (Not Modified) and no response body, else the resource representation will be returned.
paymentInstructionId
(path)
string (required)
The unique identifier of this payment instruction. This is an opaque string.

Try It

Example responses

200 Response

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: paymentInstruction
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such payment instruction resource at the specified {paymentInstructionId}. The _error field in the response contains details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this payment instruction resource.

updatePaymentInstruction

Code samples

# You can also use wget
curl -X PUT /payments/paymentInstructions/{paymentInstructionId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT /payments/paymentInstructions/{paymentInstructionId} HTTP/1.1

Content-Type: application/json
Accept: application/json
If-Match: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/paymentInstructions/{paymentInstructionId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/paymentInstructions/{paymentInstructionId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put '/payments/paymentInstructions/{paymentInstructionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('/payments/paymentInstructions/{paymentInstructionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/paymentInstructions/{paymentInstructionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
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"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/payments/paymentInstructions/{paymentInstructionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this payment instruction

PUT /paymentInstructions/{paymentInstructionId}

Perform a complete replacement of this payment instruction. Upon updating a payment instruction, the service automatically writes the payee and payment method properties to the associated payee resource. This operation may also update the account, by passing a new account URL in the apiture:account link.

Some payment methods do not allow updating the payment instruction after it has been submitted. Updates are also prohibited if the state is completed or rejected or failed.

Body parameter

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Parameters

Parameter Description
If-Match
(header)
string
The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource.
body
(body)
paymentInstruction
A new payment instruction
paymentInstructionId
(path)
string (required)
The unique identifier of this payment instruction. This is an opaque string.

Try It

Example responses

200 Response

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: paymentInstruction
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such payment instruction resource at the specified {paymentInstructionId}. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
409 Conflict

Conflict. The payment instruction cannot be updated.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity

Conflict. The payment instruction cannot be updated.

This error response may have one of the following type values:

Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this payment instruction resource.

patchPaymentInstruction

Code samples

# You can also use wget
curl -X PATCH /payments/paymentInstructions/{paymentInstructionId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PATCH /payments/paymentInstructions/{paymentInstructionId} HTTP/1.1

Content-Type: application/json
Accept: application/json
If-Match: string

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/paymentInstructions/{paymentInstructionId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/paymentInstructions/{paymentInstructionId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch '/payments/paymentInstructions/{paymentInstructionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('/payments/paymentInstructions/{paymentInstructionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/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/json"},
        "Accept": []string{"application/json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/payments/paymentInstructions/{paymentInstructionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this payment instruction

PATCH /paymentInstructions/{paymentInstructionId}

Perform a partial update of this payment instruction. Fields which are omitted are not updated. Nested _embedded and _links are ignored if included.

Upon updating a payment instruction, the details in the payment are automatically written to the associated payee and to the corresponding payee's details for the payment method. A new payee is created if the payment instruction does not contain an _id that refers to an existing payee.

Some payment methods do not allow updating the payment instruction after it has been submitted. Updates are also prohibited if the state is completed or rejected or failed.

Body parameter

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Parameters

Parameter Description
If-Match
(header)
string
The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource.
body
(body)
paymentInstruction
The new payment instruction.
paymentInstructionId
(path)
string (required)
The unique identifier of this payment instruction. This is an opaque string.

Try It

Example responses

200 Response

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: paymentInstruction
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such payment instruction resource at the specified {paymentInstructionId}. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
409 Conflict

Conflict. The payment instruction cannot be updated.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity

Conflict. The payment instruction cannot be updated.

This error response may have one of the following type values:

Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this payment instruction resource.

deletePaymentInstruction

Code samples

# You can also use wget
curl -X DELETE /payments/paymentInstructions/{paymentInstructionId} \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE /payments/paymentInstructions/{paymentInstructionId} HTTP/1.1

Accept: application/json

var headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/paymentInstructions/{paymentInstructionId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/paymentInstructions/{paymentInstructionId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete '/payments/paymentInstructions/{paymentInstructionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('/payments/paymentInstructions/{paymentInstructionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/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/json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/payments/paymentInstructions/{paymentInstructionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Delete this payment instruction resource

DELETE /paymentInstructions/{paymentInstructionId}

Delete this payment instruction resource and any resources that are owned by it. Only payment instruction with the state of pending may be deleted.

Parameters

Parameter Description
paymentInstructionId
(path)
string (required)
The unique identifier of this payment instruction. This is an opaque string.

Try It

Example responses

409 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
StatusDescription
409 Conflict
Conflict. The payment instruction cannot be updated. Only pending payment instructions may be deleted.
Schema: errorResponse

Payment Instruction Actions

Actions on Payment Instructions

submitPaymentInstruction

Code samples

# You can also use wget
curl -X POST /payments/submittedPaymentInstructions?paymentInstruction=string \
  -H 'Accept: application/json' \
  -H 'If-Match: string' \
  -H 'Apiture-Challenge: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /payments/submittedPaymentInstructions?paymentInstruction=string HTTP/1.1

Accept: application/json
If-Match: string
Apiture-Challenge: string

var headers = {
  'Accept':'application/json',
  'If-Match':'string',
  'Apiture-Challenge':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/submittedPaymentInstructions',
  method: 'post',
  data: '?paymentInstruction=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'If-Match':'string',
  'Apiture-Challenge':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/submittedPaymentInstructions?paymentInstruction=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'If-Match' => 'string',
  'Apiture-Challenge' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/payments/submittedPaymentInstructions',
  params: {
  'paymentInstruction' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'If-Match': 'string',
  'Apiture-Challenge': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/payments/submittedPaymentInstructions', params={
  'paymentInstruction': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/payments/submittedPaymentInstructions?paymentInstruction=string");
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{
        "Accept": []string{"application/json"},
        "If-Match": []string{"string"},
        "Apiture-Challenge": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/payments/submittedPaymentInstructions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Submit a payment instruction

POST /submittedPaymentInstructions

Submit a payment instruction to be processed by the financial institution. This changes the state property of the payment instruction to submitted. This operation is available via the apiture:submit link on the payment instruction resource, if and only if the payment instruction is eligible for the submit operation. The response is the updated representation of the payment instruction. The If-Match request header value, if passed, must match the current entity tag value of the payment instruction. This is a no-op if the state is submitted.

This operation requires passing a valid challenge ID in the Apiture-Challenge request header if the requiresMfaChallenge is true in the payment method definition. (See Multi-factor authentication challenges in the API overview.)

Parameters

Parameter Description
paymentInstruction
(query)
string (required)
A string which uniquely identifies a payment instruction which is to added to the submitted payment instructions resource set. This may be the unique _id of the payment instruction ({paymentInstructionId}) or the URI of the payment instruction.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource.
Apiture-Challenge
(header)
string
The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeemable Challenge resource which matches the challenge context.

Try It

Example responses

200 Response

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Responses

StatusDescription
200 OK
OK. The operation succeeded. The payment instruction was updated and its state changed to submitted.
Schema: paymentInstruction
204 No Content
No Content. If the payment has already been submitted, no changes are made. (This is an idempotent operation.)
StatusDescription
400 Bad Request

Bad Request. The paymentInstruction parameter was malformed or does not refer to an existing or accessible payment instruction.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
409 Conflict

Conflict. The request to submit the payment instruction is not allowed, or the MFA challenge content (if required) is missing or invalid. The _error field in the response contains details about the request error.

This error response may have one of the following type values:

Schema: challengeErrorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource to perform conditional updates.

cancelPaymentInstruction

Code samples

# You can also use wget
curl -X POST /payments/cancelingPaymentInstructions?paymentInstruction=string \
  -H 'Accept: application/json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /payments/cancelingPaymentInstructions?paymentInstruction=string HTTP/1.1

Accept: application/json
If-Match: string

var headers = {
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/cancelingPaymentInstructions',
  method: 'post',
  data: '?paymentInstruction=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/cancelingPaymentInstructions?paymentInstruction=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/payments/cancelingPaymentInstructions',
  params: {
  'paymentInstruction' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/payments/cancelingPaymentInstructions', params={
  'paymentInstruction': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/payments/cancelingPaymentInstructions?paymentInstruction=string");
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{
        "Accept": []string{"application/json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/payments/cancelingPaymentInstructions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Cancel a payment instruction

POST /cancelingPaymentInstructions

Cancel a payment instruction. This changes the state property of the payment instruction to canceled. This operation is available via the apiture:cancel link on the payment instruction resource, if and only if the payment instruction is eligible for the cancel operation. Some payment memthods do not allow canceling. The response is the updated representation of the payment instruction. The If-Match request header value, if passed, must match the current entity tag value of the payment instruction. This is a no-op if the state is canceled.

Parameters

Parameter Description
paymentInstruction
(query)
string (required)
A string which uniquely identifies a payment instruction which is to added to the submitted payment instructions resource set. This may be the unique _id of the payment instruction ({paymentInstructionId}) or the URI of the payment instruction.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource.

Try It

Example responses

200 Response

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Responses

StatusDescription
200 OK
OK. The operation succeeded. The payment instruction was updated and its state changed to canceled.
Schema: paymentInstruction
204 No Content
No Content. If the payment has already been canceled, no changes are made. (This is an idempotent operation.)
StatusDescription
400 Bad Request

Bad Request. The paymentInstruction parameter was malformed or does not refer to an existing or accessible payment instruction.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
409 Conflict
Conflict. The request to process the payment instruction is not allowed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource to perform conditional updates.

processPaymentInstruction

Code samples

# You can also use wget
curl -X POST /payments/processingPaymentInstructions?paymentInstruction=string \
  -H 'Accept: application/json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /payments/processingPaymentInstructions?paymentInstruction=string HTTP/1.1

Accept: application/json
If-Match: string

var headers = {
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/processingPaymentInstructions',
  method: 'post',
  data: '?paymentInstruction=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/processingPaymentInstructions?paymentInstruction=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/payments/processingPaymentInstructions',
  params: {
  'paymentInstruction' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/payments/processingPaymentInstructions', params={
  'paymentInstruction': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/payments/processingPaymentInstructions?paymentInstruction=string");
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{
        "Accept": []string{"application/json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/payments/processingPaymentInstructions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Process a payment instruction

POST /processingPaymentInstructions

Mark a payment instruction as in process. The state property of the payment is processing. This operation is available via the apiture:process link on the payment instruction resource, if and only if the payment instruction is eligible for the process operation. The response is the updated representation of the payment instruction. The If-Match request header value, if passed, must match the current entity tag value of the payment instruction. This is a no-op if the state is processed.

This operation is allowed only for administrative applications.

Parameters

Parameter Description
paymentInstruction
(query)
string (required)
A string which uniquely identifies a payment instruction which is to added to the submitted payment instructions resource set. This may be the unique _id of the payment instruction ({paymentInstructionId}) or the URI of the payment instruction.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource.

Try It

Example responses

200 Response

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Responses

StatusDescription
200 OK
OK. The operation succeeded. The payment instruction was updated and its state changed to processing.
Schema: paymentInstruction
204 No Content
No Content. If the payment has already been processed, no changes are made. (This is an idempotent operation.)
StatusDescription
400 Bad Request

Bad Request. The paymentInstruction parameter was malformed or does not refer to an existing or accessible payment instruction.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
409 Conflict
Conflict. The request to process the payment instruction is not allowed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource to perform conditional updates.

rejectPaymentInstruction

Code samples

# You can also use wget
curl -X POST /payments/rejectedPaymentInstructions?paymentInstruction=string \
  -H 'Accept: application/json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /payments/rejectedPaymentInstructions?paymentInstruction=string HTTP/1.1

Accept: application/json
If-Match: string

var headers = {
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/rejectedPaymentInstructions',
  method: 'post',
  data: '?paymentInstruction=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/rejectedPaymentInstructions?paymentInstruction=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/payments/rejectedPaymentInstructions',
  params: {
  'paymentInstruction' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/payments/rejectedPaymentInstructions', params={
  'paymentInstruction': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/payments/rejectedPaymentInstructions?paymentInstruction=string");
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{
        "Accept": []string{"application/json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/payments/rejectedPaymentInstructions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Reject a payment instruction

POST /rejectedPaymentInstructions

Reject a payment instruction. This changes the state property of the payment instruction to rejected. This operation is available via the apiture:reject link on the payment instruction resource, if and only if the payment instruction is eligible for the reject operation. The response is the updated representation of the payment instruction. The If-Match request header value, if passed, must match the current entity tag value of the payment instruction. This is a no-op if the state is rejected.

This operation is allowed only for administrative applications.

Parameters

Parameter Description
paymentInstruction
(query)
string (required)
A string which uniquely identifies a payment instruction which is to added to the submitted payment instructions resource set. This may be the unique _id of the payment instruction ({paymentInstructionId}) or the URI of the payment instruction.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource.

Try It

Example responses

200 Response

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Responses

StatusDescription
200 OK
OK. The operation succeeded. The payment instruction was updated and its state changed to rejected.
Schema: paymentInstruction
204 No Content
No Content. If the payment has already been rejected, no changes are made. (This is an idempotent operation.)
StatusDescription
400 Bad Request

Bad Request. The paymentInstruction parameter was malformed or does not refer to an existing or accessible payment instruction.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
409 Conflict
Conflict. The request to reject the payment instruction is not allowed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource to perform conditional updates.

completePaymentInstruction

Code samples

# You can also use wget
curl -X POST /payments/completedPaymentInstructions?paymentInstruction=string \
  -H 'Accept: application/json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /payments/completedPaymentInstructions?paymentInstruction=string HTTP/1.1

Accept: application/json
If-Match: string

var headers = {
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/completedPaymentInstructions',
  method: 'post',
  data: '?paymentInstruction=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/completedPaymentInstructions?paymentInstruction=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/payments/completedPaymentInstructions',
  params: {
  'paymentInstruction' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/payments/completedPaymentInstructions', params={
  'paymentInstruction': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/payments/completedPaymentInstructions?paymentInstruction=string");
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{
        "Accept": []string{"application/json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/payments/completedPaymentInstructions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Complete a payment instruction

POST /completedPaymentInstructions

Complete a payment instruction and create a payment in the payment history. This changes the state property of the payment instruction to completed the system deletes it after its expiration date has passed. The state of the new historical payment is also completed. This operation is available via the apiture:complete link on the payment instruction resource, if and only if the payment instruction is eligible for the complete operation. The response is the updated representation of the payment instruction. The If-Match request header value, if passed, must match the current entity tag value of the payment instruction. This is a no-op if the state is completed.

This operation is allowed only for administrative applications.

Parameters

Parameter Description
paymentInstruction
(query)
string (required)
A string which uniquely identifies a payment instruction which is to added to the submitted payment instructions resource set. This may be the unique _id of the payment instruction ({paymentInstructionId}) or the URI of the payment instruction.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource.

Try It

Example responses

200 Response

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Responses

StatusDescription
200 OK
OK. The operation succeeded. The payment instruction was updated and its state changed to completed.
Schema: paymentInstruction
204 No Content
No Content. If the payment has already been completed, no changes are made. (This is an idempotent operation.)
StatusDescription
400 Bad Request

Bad Request. The paymentInstruction parameter was malformed or does not refer to an existing or accessible payment instruction.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
409 Conflict
Conflict. The request to complete the payment instruction is not allowed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource to perform conditional updates.

failPaymentInstruction

Code samples

# You can also use wget
curl -X POST /payments/failedPaymentInstructions?paymentInstruction=string \
  -H 'Accept: application/json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /payments/failedPaymentInstructions?paymentInstruction=string HTTP/1.1

Accept: application/json
If-Match: string

var headers = {
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/failedPaymentInstructions',
  method: 'post',
  data: '?paymentInstruction=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/failedPaymentInstructions?paymentInstruction=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/payments/failedPaymentInstructions',
  params: {
  'paymentInstruction' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/payments/failedPaymentInstructions', params={
  'paymentInstruction': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/payments/failedPaymentInstructions?paymentInstruction=string");
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{
        "Accept": []string{"application/json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/payments/failedPaymentInstructions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fail a payment instruction

POST /failedPaymentInstructions

Mark payment instruction as failed and create a payment in the payment history. This changes the state property of the payment instruction to failed; the system deletes it after its expiration date has passed. The state of the new historical payment is also failed. Mark a payment instruction as failed. This changes the state property of the payment instruction to failed. This operation is available via the apiture:fail link on the payment instruction resource, if and only if the payment instruction is eligible for the reject operation. The response is the updated representation of the payment instruction. The If-Match request header value, if passed, must match the current entity tag value of the payment instruction. This is a no-op if the state is failed.

This operation is allowed only for administrative applications.

Parameters

Parameter Description
paymentInstruction
(query)
string (required)
A string which uniquely identifies a payment instruction which is to added to the submitted payment instructions resource set. This may be the unique _id of the payment instruction ({paymentInstructionId}) or the URI of the payment instruction.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource.

Try It

Example responses

200 Response

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Responses

StatusDescription
200 OK
OK. The operation succeeded. The payment instruction was updated and its state changed to failed.
Schema: paymentInstruction
204 No Content
No Content. If the payment has already failed, no changes are made. (This is an idempotent operation.)
StatusDescription
400 Bad Request

Bad Request. The paymentInstruction parameter was malformed or does not refer to an existing or accessible payment instruction.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
409 Conflict
Conflict. The request to reject the payment instruction is not allowed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource to perform conditional updates.

Payments

Completed Payments

getHistory

Code samples

# You can also use wget
curl -X GET /payments/history \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /payments/history HTTP/1.1

Accept: application/json

var headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/history',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/history',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/payments/history',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/payments/history', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/history");
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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/payments/history", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a page of payments from the payment history. This lists payments for all the user's accounts unless the ?account= filter is applied.

GET /history

Return a paginated sortable filterable searchable collection of payments. The links in the response include pagination links.

Parameters

Parameter Description
type
(query)
string
Filter the response to list only payments of this payment method type.
Enumerated values:
billPay
personToPerson
wireTransfer
state
(query)
array[string]
Filter the response to list only payment in this state.
uniqueItems: true
account
(query)
array[string]
Filter the response to list only payment for the specified accounts, identified by the accountId.
maxItems: 8
uniqueItems: true
start
(query)
integer(int64)
The zero-based index of the first payment item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of payment representations to return in this page.
Default: 100
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2. The default sort order is by completedAt (descending).
This collection may be sorted by following properties:
• completedAt
• type
• state
• amount.value
filter
(query)
string
Optional filter criteria. See filtering.
This collection may be filtered by following properties and functions:
• Property type using functions eq, ne, in
• Property state using functions eq, ne, in
• Property account using functions eq, ne, in
• Property completedAt using functions lt, le, gt, ge
• Property createdBy using functions eq, in
• Property amount.value using functions lt, le, gt, ge, eq, ne
q
(query)
string
Optional search string. See searching.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/payments/paymentHistory/v1.0.0/profile.json",
  "name": "history",
  "start": 10,
  "limit": 10,
  "count": 67,
  "_links": {
    "self": {
      "href": "/payments/history?start=10&limit=10"
    },
    "first": {
      "href": "/payments/history?start=0&limit=10"
    },
    "next": {
      "href": "/payments/history?start=20&limit=10"
    },
    "collection": {
      "href": "/payments/history"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "3a0b0818-93d2-448d-a7d8-ed526f6ba80d",
        "_profile": "https://api.apiture.com/schemas/payments/summaryPayment/v1.0.0/profile.json",
        "amount": {
          "value": "256.50",
          "currency": "USD"
        },
        "payeeName": "John Daniel Smith",
        "accountName": "Premiere Checking",
        "paymentMethodType": "wireTransfer",
        "state": "submitted",
        "createdBy": "johnsmith1234",
        "createdAt": "2020-10-02T11:09:20.375Z",
        "completedAt": "2020-10-02T11:15:25.375Z",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/payments/paymentInstructions/3a0b0818-93d2-448d-a7d8-ed526f6ba80d"
          },
          "apiture:paymentInstruction": {
            "href": "https://api.devbank.apiture.com/payments/paymentInstructions/3a0b0818-93d2-448d-a7d8-ed526f6ba80d"
          },
          "apiture:paymentMethod": {
            "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
          },
          "apiture:account": {
            "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
          }
        }
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: paymentHistory
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

getPayment

Code samples

# You can also use wget
curl -X GET /payments/history/{paymentId} \
  -H 'Accept: application/json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /payments/history/{paymentId} HTTP/1.1

Accept: application/json
If-None-Match: string

var headers = {
  'Accept':'application/json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/history/{paymentId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/history/{paymentId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/payments/history/{paymentId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/payments/history/{paymentId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/history/{paymentId}");
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"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/payments/history/{paymentId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this payment

GET /history/{paymentId}

Return a HAL representation of this payment resource.

Parameters

Parameter Description
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET returns 304 (Not Modified) and no response body, else the resource representation will be returned.
paymentId
(path)
string (required)
The unique identifier of this payment. This is an opaque string.

Try It

Example responses

200 Response

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/payment/v1.0.0/profile.json",
  "amount": {
    "value": "256.50",
    "currency": "USD"
  },
  "payeeName": "John Daniel Smith",
  "accountName": "Premiere Checking",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "state": "completed",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "completedAt": "2020-10-02T11:15:25.375Z",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentInstruction": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/3f9e4f91-f3a1-4bf0-87f1-d12c09b6a46f"
    },
    "apiture:paymentMethodDefinition": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: payment
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such payment resource at the specified {paymentId}. The _error field in the response contains details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this payment resource.

Payment Methods

Methods of Making Payments

getPaymentMethods

Code samples

# You can also use wget
curl -X GET /payments/paymentMethodDefinitions \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

GET /payments/paymentMethodDefinitions HTTP/1.1

Accept: application/json

var headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

$.ajax({
  url: '/payments/paymentMethodDefinitions',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

fetch('/payments/paymentMethodDefinitions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'API-Key' => 'API_KEY'
}

result = RestClient.get '/payments/paymentMethodDefinitions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'API-Key': 'API_KEY'
}

r = requests.get('/payments/paymentMethodDefinitions', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/paymentMethodDefinitions");
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"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/payments/paymentMethodDefinitions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of payment methods definition

GET /paymentMethodDefinitions

Return a collection of payment methods definitions. This is a small, fixed collection (one per paymentMethodType), so there is no pagination or filtering.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/payments/paymentMethodDefinitions/v1.0.0/profile.json",
  "name": "paymentMethodDefinitions",
  "start": 10,
  "limit": 10,
  "count": 3,
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethodDefinitions"
    }
  },
  "_embedded": {
    "items": [
      {
        "type": "wireTransfer",
        "label": "Wire Transfer",
        "description": "Send funds via _wire transfer_, also as Real Time Gross Settlement (RTGS). In the US, wire transfers are processed by Fedwire, the US Federal Reserve Bank network. *Note*: There is a fee for each submitted wire transfer.",
        "_profile": "https://api.apiture.com/schemas/payments/paymentMethodDefinition/v1.0.0/profile.json",
        "paymentLimit": {
          "amount": "200000.00",
          "currency": "USD"
        },
        "termsAndConditionsUri": "https://cdn.apiture.com/documents/terms/wireTransfer/2020-07-10.pdf",
        "termsAndConditionsContextUri": "https://api.devbank.apiture.com/payments/paymentMethodDefintions/billPayment",
        "consentNeeded": "perRequest",
        "requiresMfaChallenge": true,
        "fees": {
          "currency": "USD",
          "transaction": "19.00"
        },
        "schedulingAllowed": false,
        "recurringSchedulesAllowed": false,
        "cancelAllowed": false,
        "updateAllowed": false,
        "presentHelpAfter": "P180D",
        "expirationPeriod": "P7D",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/payments/paymentMethodDefinitions/wireTransfer"
          }
        }
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: paymentMethodDefinitions

getPaymentMethod

Code samples

# You can also use wget
curl -X GET /payments/paymentMethods/{paymentMethodType} \
  -H 'Accept: application/json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /payments/paymentMethods/{paymentMethodType} HTTP/1.1

Accept: application/json
If-None-Match: string

var headers = {
  'Accept':'application/json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/payments/paymentMethods/{paymentMethodType}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/payments/paymentMethods/{paymentMethodType}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/payments/paymentMethods/{paymentMethodType}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/payments/paymentMethods/{paymentMethodType}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/paymentMethods/{paymentMethodType}");
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"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/payments/paymentMethods/{paymentMethodType}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this payment method

GET /paymentMethods/{paymentMethodType}

Return a HAL representation of this payment method resource.

Parameters

Parameter Description
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET returns 304 (Not Modified) and no response body, else the resource representation will be returned.
paymentMethodType
(path)
string (required)
The unique name (type) of a payment method definition, corresponding to the type property of the paymentMethodDefinition.

Try It

Example responses

200 Response

{
  "type": "wireTransfer",
  "label": "Wire Transfer",
  "description": "Send funds via _wire transfer_, also known as Real Time Gross Settlement (RTGS). In the US, wire transfers are processed by Fedwire, the US Federal Reserve Bank network. *Note*: There is a fee for each submitted wire transfer.",
  "_profile": "https://api.apiture.com/schemas/payments/paymentMethodDefinition/v1.0.0/profile.json",
  "paymentLimit": {
    "amount": "200000.00",
    "currency": "USD"
  },
  "termsAndConditionsUri": "https://cdn.apiture.com/documents/terms/wireTransfer/2020-07-10.pdf",
  "termsAndConditionsContextUri": "https://api.devbank.apiture.com/payments/paymentMethodDefintions/billPayment",
  "consentNeeded": "perRequest",
  "requiresMfaChallenge": true,
  "fees": {
    "transaction": "19.00",
    "currency": "USD"
  },
  "schedulingAllowed": false,
  "recurringSchedulesAllowed": false,
  "cancelAllowed": false,
  "updateAllowed": false,
  "presentHelpAfter": "P180D",
  "expirationPeriod": "P7D"
}

Responses

StatusDescription
200 OK
OK
Schema: paymentMethodDefinition
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such payment method resource at the specified {paymentMethodType}. The _error field in the response contains details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this payment method resource.

getPayeeWireTransferMethod

Code samples

# You can also use wget
curl -X GET /payments/payees/{payeeId}/paymentMethods/wireTransfer \
  -H 'Accept: application/json'

GET /payments/payees/{payeeId}/paymentMethods/wireTransfer HTTP/1.1

Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: '/payments/payees/{payeeId}/paymentMethods/wireTransfer',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('/payments/payees/{payeeId}/paymentMethods/wireTransfer',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get '/payments/payees/{payeeId}/paymentMethods/wireTransfer',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('/payments/payees/{payeeId}/paymentMethods/wireTransfer', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/payees/{payeeId}/paymentMethods/wireTransfer");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/payments/payees/{payeeId}/paymentMethods/wireTransfer", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch payee's wire transfer parameters

GET /payees/{payeeId}/paymentMethods/wireTransfer

Fetch the parameters for wire transfers for this payee.

Parameters

Parameter Description
payeeId
(path)
string (required)
The unique identifier of this payee. This is an opaque string.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
  "institution": {
    "name": "3rd Party Bank",
    "address": {
      "addressLine1": "500 N. Elm St",
      "city": "Norman",
      "regionCode": "OK",
      "postalCode": "73070",
      "countryCode": "US"
    },
    "routingNumber": "021000021",
    "forFurtherCreditMemo": "Attention: John Smith"
  },
  "accountNumber": "9876543210",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/payees/2f4ae081-021e-4954-86f2-58c8de532992/paymentMethods/wiretransfer"
    },
    "apiture:payee": {
      "href": "https://api.devbank.apiture.com/payments/payees/2f4ae081-021e-4954-86f2-58c8de532992"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: payeeWireTransferMethod
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such payee resource at the specified {payeeId}. The _error field in the response contains details about the payment instruction error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this payee resource.

updatePayeeWireTransferMethod

Code samples

# You can also use wget
curl -X PUT /payments/payees/{payeeId}/paymentMethods/wireTransfer \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

PUT /payments/payees/{payeeId}/paymentMethods/wireTransfer HTTP/1.1

Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: '/payments/payees/{payeeId}/paymentMethods/wireTransfer',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
  "institution": {
    "name": "3rd Party Bank",
    "address": {
      "addressLine1": "500 N. Elm St",
      "city": "Norman",
      "regionCode": "OK",
      "postalCode": "73070",
      "countryCode": "US"
    },
    "routingNumber": "021000021",
    "forFurtherCreditMemo": "Attention: John Smith"
  },
  "accountNumber": "9876543210",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/payees/2f4ae081-021e-4954-86f2-58c8de532992/paymentMethods/wiretransfer"
    },
    "apiture:payee": {
      "href": "https://api.devbank.apiture.com/payments/payees/2f4ae081-021e-4954-86f2-58c8de532992"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('/payments/payees/{payeeId}/paymentMethods/wireTransfer',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.put '/payments/payees/{payeeId}/paymentMethods/wireTransfer',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.put('/payments/payees/{payeeId}/paymentMethods/wireTransfer', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/payees/{payeeId}/paymentMethods/wireTransfer");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/payments/payees/{payeeId}/paymentMethods/wireTransfer", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update payee's wire transfer parameters

PUT /payees/{payeeId}/paymentMethods/wireTransfer

Update the parameters for wire transfer payments for this payee.

Body parameter

{
  "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
  "institution": {
    "name": "3rd Party Bank",
    "address": {
      "addressLine1": "500 N. Elm St",
      "city": "Norman",
      "regionCode": "OK",
      "postalCode": "73070",
      "countryCode": "US"
    },
    "routingNumber": "021000021",
    "forFurtherCreditMemo": "Attention: John Smith"
  },
  "accountNumber": "9876543210",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/payees/2f4ae081-021e-4954-86f2-58c8de532992/paymentMethods/wiretransfer"
    },
    "apiture:payee": {
      "href": "https://api.devbank.apiture.com/payments/payees/2f4ae081-021e-4954-86f2-58c8de532992"
    }
  }
}

Parameters

Parameter Description
body
(body)
payeeWireTransferMethod
The data necessary to create wire transfer instructions for this payee.
payeeId
(path)
string (required)
The unique identifier of this payee. This is an opaque string.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
  "institution": {
    "name": "3rd Party Bank",
    "address": {
      "addressLine1": "500 N. Elm St",
      "city": "Norman",
      "regionCode": "OK",
      "postalCode": "73070",
      "countryCode": "US"
    },
    "routingNumber": "021000021",
    "forFurtherCreditMemo": "Attention: John Smith"
  },
  "accountNumber": "9876543210",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/payees/2f4ae081-021e-4954-86f2-58c8de532992/paymentMethods/wiretransfer"
    },
    "apiture:payee": {
      "href": "https://api.devbank.apiture.com/payments/payees/2f4ae081-021e-4954-86f2-58c8de532992"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: payeeWireTransferMethod
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response contains details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such payee resource at the specified {payeeId}. The _error field in the response contains details about the payment instruction error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this payee resource.

API

The Payments API

getLabels

Code samples

# You can also use wget
curl -X GET /payments/labels \
  -H 'Accept: application/json' \
  -H 'Accept-Language: string' \
  -H 'API-Key: API_KEY'

GET /payments/labels HTTP/1.1

Accept: application/json
Accept-Language: string

var headers = {
  'Accept':'application/json',
  'Accept-Language':'string',
  'API-Key':'API_KEY'

};

$.ajax({
  url: '/payments/labels',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Accept-Language':'string',
  'API-Key':'API_KEY'

};

fetch('/payments/labels',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Accept-Language' => 'string',
  'API-Key' => 'API_KEY'
}

result = RestClient.get '/payments/labels',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Accept-Language': 'string',
  'API-Key': 'API_KEY'
}

r = requests.get('/payments/labels', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/labels");
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"},
        "Accept-Language": []string{"string"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/payments/labels", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Localized Labels

GET /labels

Return a JSON object which defines labels for enumeration types defined by the schemas defined in this API. The labels in the response may not all match the requested language; some may be in the default language (en-us).

Parameters

Parameter Description
Accept-Language
(header)
string
The weighted language tags which indicate the user's preferred natural language for the localized labels in the response, as per RFC 7231.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/common/labelGroups/v1.0.1/profile.json",
  "groups": {
    "structure": {
      "unknown": {
        "label": "Unknown",
        "code": "0",
        "hidden": true
      },
      "corporation": {
        "label": "Corporation",
        "code": "1",
        "variants": {
          "fr": {
            "label": "Soci\\u00e9t\\u00e9"
          }
        }
      },
      "partnership": {
        "label": "Partnership",
        "code": "2",
        "variants": {
          "fr": {
            "label": "Partenariat"
          }
        }
      },
      "llc": {
        "label": "Limited Liability Company",
        "code": "2",
        "variants": {
          "fr": {
            "label": "Soci\\u00e9t\\u00e9 \\u00e9 Responsabilit\\u00e9 Limit\\u00e9e"
          }
        }
      },
      "nonProfit": {
        "label": "Non Profit",
        "code": "4",
        "variants": {
          "fr": {
            "label": "Non Lucratif"
          }
        }
      },
      "financialInstitution": {
        "label": "Financial Institution",
        "code": "8",
        "variants": {
          "fr": {
            "label": "Institution financi\\u00e8re"
          }
        }
      },
      "soleProprietorship": {
        "label": "Sole Proprietorship",
        "code": "11",
        "variants": {
          "fr": {
            "label": "Entreprise individuelle"
          }
        }
      },
      "other": {
        "label": "Other",
        "code": "254",
        "variants": {
          "fr": {
            "label": "Autre"
          }
        }
      }
    },
    "estimatedAnnualRevenue": {
      "unknown": {
        "label": "Unknown",
        "code": "0"
      },
      "under1Million": {
        "label": "Under $1M",
        "code": "1",
        "range": "[0,1000000.00)"
      },
      "from1to10Million": {
        "label": "$1M to $10M",
        "code": "2",
        "range": "[1000000.00,10000000.00)"
      },
      "from10to100Million": {
        "label": "$10M to $100M",
        "code": "3",
        "range": "[10000000.00,100000000.00)"
      },
      "over100Million": {
        "label": "Over $100,000,000.00",
        "code": "4",
        "range": "[100000000.00,]"
      },
      "other": {
        "label": "Other",
        "code": "254"
      }
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: labelGroups

getApi

Code samples

# You can also use wget
curl -X GET /payments/ \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY'

GET /payments/ HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY'

};

$.ajax({
  url: '/payments/',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY'

};

fetch('/payments/',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY'
}

result = RestClient.get '/payments/',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY'
}

r = requests.get('/payments/', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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/hal+json"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/payments/", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Top-level resources and operations in this API

GET /

Return links to the top-level resources and operations in this API.

Try It

Example responses

200 Response

{
  "id": "apiName",
  "name": "API name",
  "apiVersion": "1.0.0",
  "_profile": "https://api.apiture.com/schemas/common/root/v2.0.1/profile.json",
  "_links": {}
}

Responses

StatusDescription
200 OK
OK
Schema: root

getApiDoc

Code samples

# You can also use wget
curl -X GET /payments/apiDoc \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

GET /payments/apiDoc HTTP/1.1

Accept: application/json

var headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

$.ajax({
  url: '/payments/apiDoc',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

fetch('/payments/apiDoc',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'API-Key' => 'API_KEY'
}

result = RestClient.get '/payments/apiDoc',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'API-Key': 'API_KEY'
}

r = requests.get('/payments/apiDoc', params={

}, headers = headers)

print r.json()

URL obj = new URL("/payments/apiDoc");
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"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/payments/apiDoc", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return API definition document

GET /apiDoc

Return the OpenAPI document that describes this API.

Try It

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline

Response Schema

Schemas

abstractRequest

{
  "_profile": "https://api.apiture.com/schemas/common/abstractRequest/v2.0.0/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/applications/"
    }
  }
}

Abstract Request (v2.0.0)

An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error defined in abstractResource.

This schema was resolved from common/abstractRequest.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.

abstractResource

{
  "_profile": "https://production.api.apiture.com/schemas/common/abstractResource/v2.0.0/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f"
    }
  }
}

Abstract Resource (v2.0.0)

An abstract schema used to define other schemas for request and response bodies. This is a HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

This schema was resolved from common/abstractResource.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.

attributeValue

{}

Attribute Value (v2.0.0)

The data associated with this attribute.

This schema was resolved from common/attributeValue.

Properties

attributes

{
  "property1": {},
  "property2": {}
}

Attributes (v2.0.0)

An optional map of name/value pairs which contains additional dynamic data about the resource.

This schema was resolved from common/attributes.

Properties

NameDescription
additionalProperties attributeValue
The data associated with this attribute.

This schema was resolved from common/attributeValue.

authenticator

{
  "_id": "7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3",
  "_profile": "https://api.apiture.com/schemas/auth/authenticator/v1.0.1/profile.json",
  "userId": "b2720469-3497-4b82-8b85-30f2155aa66d",
  "state": "started",
  "type": {
    "name": "sms",
    "label": "SMS Code",
    "description": "Enter a code sent via SMS to the user's preferred mobile device.",
    "category": "device",
    "schema": {
      "title": "SMS attributes",
      "description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
      "type": "object",
      "required": [
        "code",
        "length"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then set `attributes.code` to that. The length of the code (the number of characters or digits) must equal the `length'.",
          "minLength": 3,
          "maxLength": 10
        },
        "length": {
          "description": "The number of digits/characters that are sent to the user via SMS.",
          "type": "integer",
          "minimum": 3,
          "maximum": 10,
          "example": 6
        }
      }
    }
  },
  "maximumRetries": 3,
  "retryCount": 1,
  "createdAt": "2019-08-23T12:42:50.375Z",
  "expiresAt": "2019-08-23T13:12:50.375Z",
  "_links": {
    "self": {
      "href": "/auth/challenges/2e61e506-1568-4f1a-a93e-4d0a48a06d0e/authenticators/7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
    },
    "apiture:challenge": {
      "href": "/auth/challenges/challenges/b59438cd-5efb-4915-916b-0600bb2a4e1e"
    },
    "apiture:retry": {
      "href": "/auth/challenges/retriedAuthenticators?authenticator=7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
    },
    "apiture:verify": {
      "href": "/auth/challenges/verifiedAuthenticators"
    }
  }
}

Authenticator (v1.0.1)

Representation of authenticators which verify a user's identity.

Response and request bodies using this authenticator schema may contain the following links:

RelSummaryMethod
apiture:retryRetry an authenticatorPOST
apiture:startStart an authenticatorPOST
apiture:verifyVerify a user's identityPOST
apiture:challengeFetch a representation of this challengeGET

This schema was resolved from auth/authenticator.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
type authenticatorType
The type of this authenticator. This must be one of the items in the /authenticatorTypes resource.
maximumRetries integer
The maximum number of times the user may retry this authenticator. If 0, the user must authenticate correctly on the first try. When an authenticator is retried, the client should POST to the apiture:retry link on the authenticators; absence of the link means the user cannot retry the authenticator. The default is 3.
maximum: 10
_id string
The unique identifier for this authenticator resource. This is an immutable opaque string assigned upon creation.
read-only
userId string
The user ID of the user who is requested to verify their identity.
state authenticatorState
The state of this authenticator. This is derived and read-only.
read-only
retryCount integer
The actual number of times a user has retried this authenticator.
read-only
maximum: 10
attributes object
Data collected from the user that is used to verify this authenticator. This data conforms to the schema defined in the type. For example, for sms, the attributes must contains a code.
createdAt string(date-time)
The time stamp when authenticator was created, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
verifiedAt string(date-time)
The time stamp when authenticator was verified in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
failedAt string(date-time)
The time stamp when the user failed to verify their identity verification (authentication) for this challenge, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
expiresAt string(date-time)
The time stamp when the this challenge expires, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only

authenticatorCategory

"knowledge"

authenticatorCategory (v1.0.0)

Categories which help classify and organize different authenticator types:

authenticatorCategory strings may have one of the following enumerated values:

ValueDescription
knowledgeKnowledge: Authenticate with information the user knows, such as a password or answers to personal questions.
biometricBiometric: Authenticate with physical characteristics of the user, such as fingerprints, voiceprint, or faceprint.
deviceDevice: Authenticate with a device that the user has, such as a mobile phone or an electronic key.

These enumeration values are further described by the label group named authenticatorCategory in the response from the getLabels operation.

This schema was resolved from auth/authenticatorCategory.

Type: string
Enumerated values:
knowledge
biometric
device

authenticatorState

"pending"

Authenticator State (v1.0.0)

The state of a challenge authenticator resource.

authenticatorState strings may have one of the following enumerated values:

ValueDescription
pendingPending: The authenticator is created but not yet started.
startedStarted: The user has started the authenticator.
verifiedVerified: The user corresponding verified the authenticator.
failedFailed: The user failed the authenticators criteria.
expiredExpired: The authenticator expired before the user completed the criteria.

These enumeration values are further described by the label group named authenticatorState in the response from the getLabels operation.

This schema was resolved from auth/authenticatorState.

Type: string
Enumerated values:
pending
started
verified
failed
expired

authenticatorType

{
  "name": "sms",
  "label": "SMS code",
  "description": "Enter a code sent via SMS to the user's preferred mobile device.",
  "category": "device",
  "schema": {
    "title": "SMS attributes",
    "description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
    "type": "object",
    "required": [
      "code",
      "length"
    ],
    "properties": {
      "code": {
        "type": "string",
        "description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then set `attributes.code` to that. The length of the code (the number of characters or digits) must equal the `length'.",
        "minLength": 3,
        "maxLength": 10
      },
      "length": {
        "description": "The number of digits/characters that are sent to the user via SMS.",
        "type": "integer",
        "minimum": 3,
        "maximum": 10,
        "example": 6
      }
    }
  }
}

Authenticator Type (v1.0.0)

An authenticator type description.

This schema was resolved from auth/authenticatorType.

Properties

NameDescription
name string
The name of this authenticator; also the key in the authenticatorTypes object.
label string
A localized label or title which may be used labels or other UI controls which present a value.
description string
A more detailed localized description of an authenticator type.
language string
The actual natural language tag to which this authentication type description is associated, as per RFC 7231. If omitted, this serves as the default.
category authenticatorCategory
The authentication category.
schema object
The JSON schema which describe the attributes object for all authenticators of this type. For example, for sms, the schema defines a required code string.

billPayPaymentInstruction

{}

Wire Payment for a Payment Instruction (v0.1.0)

The data used to pay a payee via wire transfer. (This will be defined in a future release of the API.)

Properties

challenge

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/auth/challenge/v1.0.1/profile.json",
  "reason": "Transfer amount much higher than normal",
  "contextUri": "https://fi.apiture.com/transfers/scheduledTransfers/50b9df19-d6bf-4ac0-b5f4-3e6448b7dacd",
  "minimumAuthenticatorCount": 1,
  "authenticators": [
    {
      "_id": "7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3",
      "_profile": "https://api.apiture.com/schemas/auth/authenticator/v1.0.1/profile.json",
      "userId": "b2720469-3497-4b82-8b85-30f2155aa66d",
      "state": "started",
      "type": {
        "name": "sms",
        "label": "SMS Code",
        "description": "Enter a code sent via SMS to the user's preferred mobile device.",
        "category": "device",
        "schema": {
          "title": "SMS attributes",
          "description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
          "type": "object",
          "required": [
            "code",
            "length"
          ],
          "properties": {
            "code": {
              "type": "string",
              "description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then set `attributes.code` to that. The length of the code (the number of characters or digits) must equal the `length'.",
              "minLength": 3,
              "maxLength": 10
            },
            "length": {
              "description": "The number of digits/characters that are sent to the user via SMS.",
              "type": "integer",
              "minimum": 3,
              "maximum": 10,
              "example": 6
            }
          }
        }
      },
      "maximumRetries": 3,
      "retryCount": 1,
      "createdAt": "2019-08-23T12:42:50.375Z",
      "expiresAt": "2019-08-23T13:12:50.375Z",
      "_links": {
        "self": {
          "href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c/authenticators/7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
        },
        "apiture:challenge": {
          "href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c"
        },
        "apiture:retry": {
          "href": "/auth/challenges/retriedAuthenticators?authenticator=7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
        },
        "apiture:verify": {
          "href": "/auth/challenges/verifiedAuthenticators"
        }
      }
    }
  ],
  "maximumRedemptionCount": 1,
  "redemptionCount": 0,
  "state": "pending",
  "createdAt": "2019-08-23T11:37:55.375Z",
  "expiresAt": "2019-08-23T12:37:55.375Z",
  "_links": {
    "self": {
      "href": "/auth/challenges/5d63053d-435c-4455-a0b5-6f88ab729d1a"
    },
    "apiture:redeem": {
      "href": "/auth/redeemedChallenges?challenge=5d63053d-435c-4455-a0b5-6f88ab729d1a"
    }
  }
}

Challenge (v1.0.1)

A resource which represents an identity verification challenge to a user. The user must verify one or more of the authentication methods defined in this challenge in order to proceed with a banking operation (such as scheduling a larger than normal transfer, adding a joint owner or authorized signer to an account, or changing their mailing address or mobile phone number).

Response and request bodies using this challenge schema may contain the following links:

RelSummaryMethod
apiture:redeemRedeem or use a challengePOST

This schema was resolved from auth/challenge.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
reason string
The reason the application or service has issued a challenge requesting the user verify their identity. This is for labeling or informational purposes.
contextUri string(uri)
The URI of a resource that establishes the context in which the user is asked to authenticate their identity. For example, for this may be for a pending transfer, a user's mailing address, or an account if adding a joint owner.
maxLength: 2048
userId string
The user ID of the user who is requested to verify their identity. The default is the userID of the authenticated person creating the challenge.
minimumAuthenticatorCount integer
The minimum number of different authenticators the user must verify in order to satisfy the identity challenge. The default is 1.
maximum: 4
maximumRedemptionCount integer
The maximum number of times the challenge may be used or redeemed. The default is 1.
minimum: 1
_id string
The unique identifier for this challenge resource. This is an immutable opaque string assigned upon creation.
read-only
redemptionCount integer
How many times the challenge has been redeemed.
read-only
state challengeState
The state of this authenticator.
read-only
createdAt string(date-time)
The time stamp when challenge was created, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
authenticators [authenticator]
An array of authenticators with which the user can verify their identity. This is derived; the array and the authenticators are constructed in the createChallenge operation.
read-only
redeemable boolean
true if and only if the challenge may be redeemed. This is derived from the states of the challenge's authenticators; if the number of verified authenticators meets or exceeds the minimumAuthenticatorCount, the challenge becomes verified and may be redeemed via a POST to href in the challenge's apiture:redeem link.
read-only
verifiedAt string(date-time)
The time stamp when challenge was verified in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
failedAt string(date-time)
The time stamp when the user failed to verify their identity verification (authentication) for this challenge, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
expiresAt string(date-time)
The time stamp when the this challenge expires, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
redemptionHistory [string]
The time stamps when a service or operation redeemed this challenge, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ). Item 0 is the time stamp the challenge was first redeemed, item 1 is the time stamp of the next redemption, and so on.
read-only
code string
An optional authentication code which is only returned in the challenge resource if both a) the platform assigned the code when constructing the challenge), and b) the user has successfully verified the challenge. The client must re-fetch the verified challenge in order to access this property.
read-only
minLength: 16
maxLength: 128

challengeError

{
  "message": "string",
  "_id": "string",
  "statusCode": 422,
  "type": "string",
  "occurredAt": "2018-02-02T03:37:15.375Z",
  "attributes": {
    "property1": {},
    "property2": {}
  },
  "remediation": "string",
  "errors": [
    {
      "_id": "2eae46e1575c0a7b0115a4b3",
      "message": "Descriptive error message...",
      "statusCode": 422,
      "type": "errorType1",
      "remediation": "Remediation string...",
      "occurredAt": "2018-01-25T05:50:52.375Z",
      "errors": [
        {
          "_id": "ccdbe2c5c938a230667b3827",
          "message": "An optional embedded error"
        },
        {
          "_id": "dbe9088dcfe2460f229338a3",
          "message": "Another optional embedded error"
        }
      ],
      "_links": {
        "describedby": {
          "href": "https://developer.apiture.com/errors/errorType1"
        }
      }
    }
  ],
  "_links": {
    "property1": {
      "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Application"
    },
    "property2": {
      "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Application"
    }
  },
  "_embedded": {
    "challenge": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "https://api.apiture.com/schemas/auth/challenge/v1.0.1/profile.json",
      "reason": "Transfer amount much higher than normal",
      "contextUri": "https://fi.apiture.com/transfers/scheduledTransfers/50b9df19-d6bf-4ac0-b5f4-3e6448b7dacd",
      "minimumAuthenticatorCount": 1,
      "authenticators": [
        {
          "_id": "7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3",
          "_profile": "https://api.apiture.com/schemas/auth/authenticator/v1.0.1/profile.json",
          "userId": "b2720469-3497-4b82-8b85-30f2155aa66d",
          "state": "started",
          "type": {
            "name": "sms",
            "label": "SMS Code",
            "description": "Enter a code sent via SMS to the user's preferred mobile device.",
            "category": "device",
            "schema": {
              "title": "SMS attributes",
              "description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
              "type": "object",
              "required": [
                "code",
                "length"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then set `attributes.code` to that. The length of the code (the number of characters or digits) must equal the `length'.",
                  "minLength": 3,
                  "maxLength": 10
                },
                "length": {
                  "description": "The number of digits/characters that are sent to the user via SMS.",
                  "type": "integer",
                  "minimum": 3,
                  "maximum": 10,
                  "example": 6
                }
              }
            }
          },
          "maximumRetries": 3,
          "retryCount": 1,
          "createdAt": "2019-08-23T12:42:50.375Z",
          "expiresAt": "2019-08-23T13:12:50.375Z",
          "_links": {
            "self": {
              "href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c/authenticators/7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
            },
            "apiture:challenge": {
              "href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c"
            },
            "apiture:retry": {
              "href": "/auth/challenges/retriedAuthenticators?authenticator=7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
            },
            "apiture:verify": {
              "href": "/auth/challenges/verifiedAuthenticators"
            }
          }
        }
      ],
      "maximumRedemptionCount": 1,
      "redemptionCount": 0,
      "state": "pending",
      "createdAt": "2019-08-23T11:37:55.375Z",
      "expiresAt": "2019-08-23T12:37:55.375Z",
      "_links": {
        "self": {
          "href": "/auth/challenges/5d63053d-435c-4455-a0b5-6f88ab729d1a"
        },
        "apiture:redeem": {
          "href": "/auth/redeemedChallenges?challenge=5d63053d-435c-4455-a0b5-6f88ab729d1a"
        }
      }
    }
  }
}

Challenge Error (v1.0.0)

The operation error description with an embedded identity challenge.

This schema was resolved from auth/challengeError.

Properties

NameDescription
message string (required)
A localized message string describing the error condition.
_id string
A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string.
read-only
statusCode integer
The HTTP status code associate with this error.
minimum: 100
maximum: 599
type string
An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode. For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet.
occurredAt string(date-time)
An RFC 3339 UTC time stamp indicating when the error occurred.
attributes attributes
Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type.
remediation string
An optional localized string which provides hints for how the user or client can resolve the error.
errors [error]
An optional array of nested error objects. This property is not always present.
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
Embedded objects
» challenge challenge
The details of the identity verification challenge.

challengeErrorResponse

{
  "_links": {
    "property1": {
      "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Application"
    },
    "property2": {
      "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Application"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "message": "string",
    "_id": "string",
    "statusCode": 422,
    "type": "string",
    "occurredAt": "2018-02-02T03:37:15.375Z",
    "attributes": {
      "property1": {},
      "property2": {}
    },
    "remediation": "string",
    "errors": [
      {
        "_id": "2eae46e1575c0a7b0115a4b3",
        "message": "Descriptive error message...",
        "statusCode": 422,
        "type": "errorType1",
        "remediation": "Remediation string...",
        "occurredAt": "2018-01-25T05:50:52.375Z",
        "errors": [
          {
            "_id": "ccdbe2c5c938a230667b3827",
            "message": "An optional embedded error"
          },
          {
            "_id": "dbe9088dcfe2460f229338a3",
            "message": "Another optional embedded error"
          }
        ],
        "_links": {
          "describedby": {
            "href": "https://developer.apiture.com/errors/errorType1"
          }
        }
      }
    ],
    "_links": {
      "property1": {
        "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Application"
      },
      "property2": {
        "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Application"
      }
    },
    "_embedded": {
      "challenge": {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://api.apiture.com/schemas/auth/challenge/v1.0.1/profile.json",
        "reason": "Transfer amount much higher than normal",
        "contextUri": "https://fi.apiture.com/transfers/scheduledTransfers/50b9df19-d6bf-4ac0-b5f4-3e6448b7dacd",
        "minimumAuthenticatorCount": 1,
        "authenticators": [
          {
            "_id": "7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3",
            "_profile": "https://api.apiture.com/schemas/auth/authenticator/v1.0.1/profile.json",
            "userId": "b2720469-3497-4b82-8b85-30f2155aa66d",
            "state": "started",
            "type": {
              "name": "sms",
              "label": "SMS Code",
              "description": "Enter a code sent via SMS to the user's preferred mobile device.",
              "category": "device",
              "schema": {
                "title": "SMS attributes",
                "description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
                "type": "object",
                "required": [
                  "code",
                  "length"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then set `attributes.code` to that. The length of the code (the number of characters or digits) must equal the `length'.",
                    "minLength": 3,
                    "maxLength": 10
                  },
                  "length": {
                    "description": "The number of digits/characters that are sent to the user via SMS.",
                    "type": "integer",
                    "minimum": 3,
                    "maximum": 10,
                    "example": 6
                  }
                }
              }
            },
            "maximumRetries": 3,
            "retryCount": 1,
            "createdAt": "2019-08-23T12:42:50.375Z",
            "expiresAt": "2019-08-23T13:12:50.375Z",
            "_links": {
              "self": {
                "href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c/authenticators/7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
              },
              "apiture:challenge": {
                "href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c"
              },
              "apiture:retry": {
                "href": "/auth/challenges/retriedAuthenticators?authenticator=7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
              },
              "apiture:verify": {
                "href": "/auth/challenges/verifiedAuthenticators"
              }
            }
          }
        ],
        "maximumRedemptionCount": 1,
        "redemptionCount": 0,
        "state": "pending",
        "createdAt": "2019-08-23T11:37:55.375Z",
        "expiresAt": "2019-08-23T12:37:55.375Z",
        "_links": {
          "self": {
            "href": "/auth/challenges/5d63053d-435c-4455-a0b5-6f88ab729d1a"
          },
          "apiture:redeem": {
            "href": "/auth/redeemedChallenges?challenge=5d63053d-435c-4455-a0b5-6f88ab729d1a"
          }
        }
      }
    }
  }
}

Challenge Error Response (v1.0.1)

When an operation requires an additional identity verification challenge, it returns a 401 Unauthorized response status code and an error response with a challenge resource embedded in the _error._embedded.challenge. This informs the caller that they should verify the challenge via one or more of its authenticators, then retry the operation with the Apiture-Challenge header that references the challenge's _id.

This schema was resolved from auth/challengeErrorResponse.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error challengeError
The description of the error.

challengeState

"pending"

Challenge States (v1.0.0)

The state of an identity challenge resource. This is derived based on the state of the challenge's authenticators.

challengeState strings may have one of the following enumerated values:

ValueDescription
pendingPending: The challenge is created but not yet started.
startedStarted: The user has started the challenge and associated authenticator(s).
verifiedVerified: The user correctly verified the corresponding authenticator(s), marking the challenge as verified.
failedFailed: The challenge has failed, often because the user failed one or more of the authenticators.
redeemedRedeemed: The user has redeemed (used) the challenge.
expiredExpired: The challenge has expired without being verified.

These enumeration values are further described by the label group named challengeState in the response from the getLabels operation.

This schema was resolved from auth/challengeState.

Type: string
Enumerated values:
pending
started
verified
failed
redeemed
expired

collection

{
  "_links": {
    "property1": {
      "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Application"
    },
    "property2": {
      "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Application"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1575c0a7b0115a4b3",
    "message": "Descriptive error message...",
    "statusCode": 422,
    "type": "errorType1",
    "remediation": "Remediation string...",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "errors": [
      {
        "_id": "ccdbe2c5c938a230667b3827",
        "message": "An optional embedded error"
      },
      {
        "_id": "dbe9088dcfe2460f229338a3",
        "message": "Another optional embedded error"
      }
    ],
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/errorType1"
      }
    }
  },
  "count": 0,
  "start": 0,
  "limit": 0,
  "name": "string"
}

Collection (v2.0.0)

A collection of resources. This is an abstract model schema which is extended to define specific resource collections.

This schema was resolved from common/collection.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

createPayee

{
  "_profile": "https://api.apiture.com/schemas/payments/createPayee/v1.0.0/profile.json",
  "type": "person",
  "person": {
    "firstName": "John",
    "middleName": "Daniel",
    "lastName": "Smith"
  },
  "address": {
    "addressLine1": "555 N Front Street",
    "addressLine2": "Suite 5555",
    "city": "Wilmington",
    "regionCode": "NC",
    "postalCode": "28401-5405",
    "countryCode": "US"
  }
}

Create Payee (v1.0.0)

The recipient of payments, also referred to as the beneficiary or receiver in specific payment methods. A payee represents a person or an oganization and contains their name and address. If the type is person, the person property contains the person's name and the organization property is ignored. If the type is organization, the organization property contains the organization's name and the person property is ignored.

With some payment methods, the bank customer may also request a payment from this person or organization.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
type payeeType (required)
The type of the payee, either a person or an organization.
person personPayee
Properties of a person payee.
organization organizationPayee
Properties of an organization payee.
address simpleAddress (required)
The payee's primary or mailing address. The financial institution may use the address to verify the payee. For some payment methods such as bill payment, a check is sent to this address.

createPaymentInstruction

{
  "_profile": "https://api.apiture.com/schemas/payments/createPaymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "256.50",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Create Payment Instruction (v1.0.0)

Request body to create a new payment instruction. In addition to the required payee, amount, and curency, the request must contain the apiture:account link of the account where the payment is debited.

Response and request bodies using this createPaymentInstruction schema may contain the following links:

RelSummaryMethod
apiture:account Account where the payment is debitedGET

Properties

NameDescription
_links links (required)
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
amount paymentAmount (required)
The payment amount.
purpose string
The reason the user gave for making this payment.
maxLength: 500
memo string
A secondary memo.
maxLength: 500
payee payee (required)
The recipient or beneficiary of the payment, or for requests for payment, the person or organizaton from which the customer is requesting a payment.
paymentMethod paymentInstructionPaymentMethod (required)
The details of the payment method used in this payment instruction.

error

{
  "_id": "2eae46e1575c0a7b0115a4b3",
  "message": "Descriptive error message...",
  "statusCode": 422,
  "type": "errorType1",
  "remediation": "Remediation string...",
  "occurredAt": "2018-01-25T05:50:52.375Z",
  "errors": [
    {
      "_id": "ccdbe2c5c938a230667b3827",
      "message": "An optional embedded error"
    },
    {
      "_id": "dbe9088dcfe2460f229338a3",
      "message": "Another optional embedded error"
    }
  ],
  "_links": {
    "describedby": {
      "href": "https://developer.apiture.com/errors/errorType1"
    }
  }
}

Error (v2.0.0)

Describes an error in an API request or in a service called via the API.

This schema was resolved from common/error.

Properties

NameDescription
message string (required)
A localized message string describing the error condition.
_id string
A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string.
read-only
statusCode integer
The HTTP status code associate with this error.
minimum: 100
maximum: 599
type string
An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode. For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet.
occurredAt string(date-time)
An RFC 3339 UTC time stamp indicating when the error occurred.
attributes attributes
Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type.
remediation string
An optional localized string which provides hints for how the user or client can resolve the error.
errors [error]
An optional array of nested error objects. This property is not always present.
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

errorResponse

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Error Response (v2.0.0)

Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error object contains the error details.

This schema was resolved from common/errorResponse.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.

labelGroup

{
  "unknown": {
    "label": "Unknown",
    "code": "0",
    "hidden": true
  },
  "under1Million": {
    "label": "Under $1M",
    "code": "1",
    "range": "[0,1000000.00)",
    "variants": {
      "fr": {
        "label": "Moins de $1M"
      }
    }
  },
  "from1to10Million": {
    "label": "$1M to $10M",
    "code": "2",
    "range": "[1000000.00,10000000.00)",
    "variants": {
      "fr": {
        "label": "$1M \\u00e0 $10M"
      }
    }
  },
  "from10to100Million": {
    "label": "$10M to $100M",
    "code": "3",
    "range": "[10000000.00,100000000.00)",
    "variants": {
      "fr": [
        "label $10M \\u00e0 $100M"
      ]
    }
  },
  "over100Million": {
    "label": "Over $100,000,000.00",
    "code": "4",
    "range": "[100000000.00,]",
    "variants": {
      "fr": {
        "label": "Plus de $10M"
      }
    }
  },
  "other": {
    "label": "Other",
    "code": 254
  }
}

Label Group (v1.0.0)

A map that defines labels for the items in a group. This is a map from each item name → a labelItem object. For example, consider a JSON response that includes a property named revenueEstimate; the values for revenueEstimate must be one of the items in the group named estimatedAnnualRevenue, with options ranging under1Million, to over100Million. The item name is used as the selected value in an Apiture representation, such as { ..., "revenueEstimate" : "from10to100Million" , ...}, and the item with the name from10to100Million defines the presentation labels for that item, as well as other metadata about that choice: this is the range [10000000.00,100000000.00).

This allows the client to let the user select a value from a list, such as the following derivde from the labels in the example:

Note that the other item is hidden from the selection list, as that item is marked as hidden. For items which define numeric ranges, a client may instead let the customer directly enter their estimated annual revenue as a number, such as 4,500,000.00. The client can then match that number to one of ranges in the items and set the revenueEstimate to the corresponding item's name: { ..., "revenueEstimate" : "from1to10Million", ... }.

This schema was resolved from common/labelGroup.

Properties

NameDescription
additionalProperties labelItem
An item in a labelGroup, with a set of variants which contains different localized labels for the item. Each (simpleLabel) variant defines the presentation text label and optional description for a language. Items may also have a lookup code to map to external syststems, a numeric range, and a hidden boolean to indicate the item is normally hidden in the UI.

This schema was resolved from common/labelItem.

labelGroups

{
  "_profile": "https://api.apiture.com/schemas/common/labelGroups/v1.0.1/profile.json",
  "groups": {
    "structure": {
      "unknown": {
        "label": "Unknown",
        "code": "0",
        "hidden": true
      },
      "corporation": {
        "label": "Corporation",
        "code": "1",
        "variants": {
          "fr": {
            "label": "Soci\\u00e9t\\u00e9"
          }
        }
      },
      "partnership": {
        "label": "Partnership",
        "code": "2",
        "variants": {
          "fr": {
            "label": "Partenariat"
          }
        }
      },
      "llc": {
        "label": "Limited Liability Company",
        "code": "2",
        "variants": {
          "fr": {
            "label": "Soci\\u00e9t\\u00e9 \\u00e9 Responsabilit\\u00e9 Limit\\u00e9e"
          }
        }
      },
      "nonProfit": {
        "label": "Non Profit",
        "code": "4",
        "variants": {
          "fr": {
            "label": "Non Lucratif"
          }
        }
      },
      "financialInstitution": {
        "label": "Financial Institution",
        "code": "8",
        "variants": {
          "fr": {
            "label": "Institution financi\\u00e8re"
          }
        }
      },
      "soleProprietorship": {
        "label": "Sole Proprietorship",
        "code": "11",
        "variants": {
          "fr": {
            "label": "Entreprise individuelle"
          }
        }
      },
      "other": {
        "label": "Other",
        "code": "254",
        "variants": {
          "fr": {
            "label": "Autre"
          }
        }
      }
    },
    "estimatedAnnualRevenue": {
      "unknown": {
        "label": "Unknown",
        "code": "0"
      },
      "under1Million": {
        "label": "Under $1M",
        "code": "1",
        "range": "[0,1000000.00)"
      },
      "from1to10Million": {
        "label": "$1M to $10M",
        "code": "2",
        "range": "[1000000.00,10000000.00)"
      },
      "from10to100Million": {
        "label": "$10M to $100M",
        "code": "3",
        "range": "[10000000.00,100000000.00)"
      },
      "over100Million": {
        "label": "Over $100,000,000.00",
        "code": "4",
        "range": "[100000000.00,]"
      },
      "other": {
        "label": "Other",
        "code": "254"
      }
    }
  }
}

Label Groups (v1.0.1)

A set of named groups of labels, each of which contains multiple item labels.

The abbreviated example shows two groups, one named structure and one named estimatedAnnualRevenue. The first has items with names such as corporation, llc and soleProprietorship, with text labels for each in the default and in French. The second has items for estimated revenue ranges but no localized labels. For example, the item named from1to10Million has the label "$1M to $10M" and the range [1000000.00,10000000.00).

This schema was resolved from common/labelGroups.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
groups object
Groups of localized labels. This maps group namesa group of labels within that group.
» additionalProperties labelGroup
A map that defines labels for the items in a group. This is a map from each item namea labelItem object. For example, consider a JSON response that includes a property named revenueEstimate; the values for revenueEstimate must be one of the items in the group named estimatedAnnualRevenue, with options ranging under1Million, to over100Million. The item name is used as the selected value in an Apiture representation, such as { ..., "revenueEstimate" : "from10to100Million" , ...}, and the item with the name from10to100Million defines the presentation labels for that item, as well as other metadata about that choice: this is the range [10000000.00,100000000.00).

This allows the client to let the user select a value from a list, such as the following derivde from the labels in the example:

  • Unknown
  • Under $1M
  • $1M to $10M
  • $10M to $100M
  • $100M or more

Note that the other item is hidden from the selection list, as that item is marked as hidden. For items which define numeric ranges, a client may instead let the customer directly enter their estimated annual revenue as a number, such as 4,500,000.00. The client can then match that number to one of ranges in the items and set the revenueEstimate to the corresponding item's name: { ..., "revenueEstimate" : "from1to10Million", ... }.

This schema was resolved from common/labelGroup.

labelItem

{
  "over100Million": {
    "label": "Over $100,000,000.00",
    "code": "4",
    "range": "[100000000.00,]",
    "variants": {
      "fr": {
        "label": "Plus de $10M"
      }
    }
  }
}

Label Item (v1.0.0)

An item in a labelGroup, with a set of variants which contains different localized labels for the item. Each (simpleLabel) variant defines the presentation text label and optional description for a language. Items may also have a lookup code to map to external syststems, a numeric range, and a hidden boolean to indicate the item is normally hidden in the UI.

This schema was resolved from common/labelItem.

Properties

NameDescription
label string (required)
A label or title which may be used as labels or other UI controls which present a value.
description string
A more detailed localized description of a localizable label.
variants object
The language-specific variants of this label. The keys in this object are RFC 7231 language codes.
» additionalProperties simpleLabel
A text label and optional description.

This schema was resolved from common/simpleLabel.

code string
If the localized value is associated with an external standard or definition, this is a lookup code or key or URI for that value.
minLength: 1
hidden boolean
If true, this item is normally hidden from the User Interface.
range string
The range of values, if the item describes a bounded numeric value. This is range notation such as [min,max], (exclusiveMin,max], [min,exclusiveMax), or (exclusiveMin,exclusiveMax). For example, [0,100) is the range greater than or equal to 0 and less than 100. If the min or max value are omitted, that end of the range is unbounded. For example, (,1000.00) means less than 1000.00 and [20000.00,] means 20000.00 or more. The ranges do not overlap or have gaps.
pattern: ^[\[\(](-?(0|[1-9][0-9]*)(\.[0-9]+)?)?,(-?(0|[1-9][0-9]*)(\.[0-9]+)?)?[\]\)]$

{
  "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
  "title": "Application"
}

Link (v1.0.0)

Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.

This schema was resolved from common/link.

Properties

NameDescription
href string(uri) (required)
The URI or URI template for the resource/operation this link refers to.
type string
The media type for the resource.
templated boolean
If true, the link's href is a URI template.
title string
An optional human-readable localized title for the link.
deprecation string(uri)
If present, the containing link is deprecated and the value is a URI which provides human-readable text information about the deprecation.
profile string(uri)
The URI of a profile document, a JSON document which describes the target resource/operation.

{
  "property1": {
    "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
    "title": "Application"
  },
  "property2": {
    "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
    "title": "Application"
  }
}

Links (v1.0.0)

An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

Properties

NameDescription
additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.

This schema was resolved from common/link.

organizationPayee

{
  "name": "string"
}

Person (v1.0.0)

Properties of a payee that is an organization.

Properties

NameDescription
name string (required)
The organization's name.
maxLength: 128

payee

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
  "type": "person",
  "person": {
    "firstName": "John",
    "middleName": "Daniel",
    "lastName": "Smith"
  },
  "address": {
    "addressLine1": "555 N Front Street",
    "addressLine2": "Suite 5555",
    "city": "Wilmington",
    "regionCode": "NC",
    "postalCode": "28401-5405",
    "countryCode": "US"
  },
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "_embedded": {
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210"
    }
  }
}

Payee (v1.0.0)

The recipient of payments, also referred to as the beneficiary or receiver in specific payment methods. A payee represents a person or an oganization and contains their name and address. If the type is person, the person property contains the person's name and the organization property is ignored. If the type is organization, the organization property contains the organization's name and the person property is ignored.

A payee also has related resource which contain the details of the various payment methods for that payee. These data are included in the _embedded property in the getPayee operation and may be changed by the various operations such as updatePayeeWireTransferMethod.

With some payment methods, the bank customer may also request a payment from this person or organization.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded payeeEmbeddedObjects
Objects related to this payee.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
type payeeType (required)
The type of the payee, either a person or an organization.
person personPayee
Properties of a person payee.
organization organizationPayee
Properties of an organization payee.
address simpleAddress (required)
The payee's primary or mailing address. The financial institution may use the address to verify the payee. For some payment methods such as bill payment, a check is sent to this address.
_id string
The unique identifier for this payee. This is an immutable opaque string.
read-only
maxLength: 64
createdBy string
The unique User Id of the person who created the Payee. This is derived and immutable.
read-only
createdAt string(date-time)
The date-time the customer created this payee (but not their payment method details). This is in RFC 3339 format, UTC. This is derived and immutable.
read-only
updatedAt string(date-time)
The date-time the payee last updated this payee (but not their payment method details) This is in RFC 3339 format, UTC. This is derived and immutable.
read-only

payeeEmbeddedObjects

{
  "wireTranfer": {
    "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
    "institution": {
      "name": "3rd Party Bank",
      "address": {
        "addressLine1": "500 N. Elm St",
        "city": "Norman",
        "regionCode": "OK",
        "postalCode": "73070",
        "countryCode": "US"
      },
      "forFurtherCreditMemo": "Attention: John Smith"
    },
    "routingNumber": "021000021",
    "accountNumber": "9876543210"
  }
}

Payee Embedded Objects (v1.0.0)

Objects embedded in a payee resource. These are not returned in a payee within the payees collection. Embedded objects are ignored in payee updates (update the referenced resources directly.)

Properties

NameDescription
wireTransfer payeeWireTransferMethod
The data used to pay this payee via wire transfer.

payeeType

"person"

Payee Type (v1.0.0)

The type of the payee, either a person or an organization.

payeeType strings may have one of the following enumerated values:

ValueDescription
personPerson: The payee is a person.
organizationOrganization: The payee is an organization such as a business.

These enumeration values are further described by the label group named payeeType in the response from the getLabels operation.

Type: string
Enumerated values:
person
organization

payeeWireTransferMethod

{
  "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
  "institution": {
    "name": "3rd Party Bank",
    "address": {
      "addressLine1": "500 N. Elm St",
      "city": "Norman",
      "regionCode": "OK",
      "postalCode": "73070",
      "countryCode": "US"
    },
    "routingNumber": "021000021",
    "forFurtherCreditMemo": "Attention: John Smith"
  },
  "accountNumber": "9876543210",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/payees/2f4ae081-021e-4954-86f2-58c8de532992/paymentMethods/wiretransfer"
    },
    "apiture:payee": {
      "href": "https://api.devbank.apiture.com/payments/payees/2f4ae081-021e-4954-86f2-58c8de532992"
    }
  }
}

Payee Wire Payment Payment Method (v1.0.0)

The data used to request a payment via wire transfer for a payee.

Response and request bodies using this payeeWireTransferMethod schema may contain the following links:

RelSummaryMethod
selfFetch payee's wire transfer parametersGET
apiture:payeeFetch a representation of this payeeGET

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
institution paymentInstitution (required)
The payee's financial institution.
accountNumber string (required)
The payee's full account number at the financial institution.
minLength: 4
maxLength: 34
intermediaryInstitution paymentInstitution
An optional intermediary financial institution that brokers the wire transfer.

payees

{
  "_profile": "https://api.apiture.com/schemas/payments/payees/v1.0.0/profile.json",
  "name": "payees",
  "start": 10,
  "limit": 10,
  "count": 67,
  "_links": {
    "self": {
      "href": "/payments/payees?start=10&limit=10"
    },
    "first": {
      "href": "/payments/payees?start=0&limit=10"
    },
    "next": {
      "href": "/payments/payees?start=20&limit=10"
    },
    "collection": {
      "href": "/payments/payees"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
        "type": "person",
        "person": {
          "firstName": "John",
          "middleName": "Daniel",
          "lastName": "Smith"
        },
        "address": {
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        "createdBy": "johnsmith1234",
        "createdAt": "2020-10-02T11:09:20.375Z",
        "updatedAt": "2020-10-02T11:15:25.375Z",
        "_embedded": {
          "wireTransfer": {
            "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
            "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
            "institution": {
              "name": "3rd Party Bank",
              "address": {
                "addressLine1": "500 N. Elm St",
                "city": "Norman",
                "regionCode": "OK",
                "postalCode": "73070",
                "countryCode": "US"
              },
              "routingNumber": "021000021",
              "forFurtherCreditMemo": "Attention: John Smith"
            },
            "accountNumber": "9876543210"
          }
        },
        "_links": {
          "self": {
            "href": "/payments/payees/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        }
      }
    ]
  }
}

Payee Collection (v1.0.0)

Collection of payees. The items in the collection are ordered in the _embedded.items array; the name is payees. The top-level _links object may contain pagination links (self, next, prev, first, last, collection).

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded payeesEmbeddedObjects
Embedded objects.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

payeesEmbeddedObjects

{
  "items": [
    {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
      "type": "person",
      "person": {
        "firstName": "John",
        "middleName": "Daniel",
        "lastName": "Smith"
      },
      "address": {
        "addressLine1": "555 N Front Street",
        "addressLine2": "Suite 5555",
        "city": "Wilmington",
        "regionCode": "NC",
        "postalCode": "28401-5405",
        "countryCode": "US"
      },
      "createdBy": "johnsmith1234",
      "createdAt": "2020-10-02T11:09:20.375Z",
      "updatedAt": "2020-10-02T11:15:25.375Z",
      "_embedded": {
        "wireTransfer": {
          "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
          "_profile": "https://api.apiture.com/schemas/payments/payeeWireTransferMethod/v1.0.0/profile.json",
          "institution": {
            "name": "3rd Party Bank",
            "address": {
              "addressLine1": "500 N. Elm St",
              "city": "Norman",
              "regionCode": "OK",
              "postalCode": "73070",
              "countryCode": "US"
            },
            "routingNumber": "021000021",
            "forFurtherCreditMemo": "Attention: John Smith"
          },
          "accountNumber": "9876543210"
        }
      }
    }
  ]
}

Payees Embedded Objects (v1.0.0)

The items in the payees collection.

Properties

NameDescription
items [payee]
An array containing a page of payees.

payment

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/payment/v1.0.0/profile.json",
  "amount": {
    "value": "256.50",
    "currency": "USD"
  },
  "payeeName": "John Daniel Smith",
  "accountName": "Premiere Checking",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "state": "completed",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "completedAt": "2020-10-02T11:15:25.375Z",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentInstruction": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/3f9e4f91-f3a1-4bf0-87f1-d12c09b6a46f"
    },
    "apiture:paymentMethodDefinition": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Payment (v1.0.0)

Representation of completed payments, as found in the payment history. Each submitted payment instruction results in a payment resource. Payment instructions with a recurring schedule result in multiple payment resources. Payment resources are immutable.

Response and request bodies using this payment schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this paymentGET
apiture:payeeThe payee associated with this paymentGET
apiture:paymentInstructionCorresponding payment instructionGET
apiture:account Account where the payment is debitedHET
apiture:paymentMethodDefinitionThe definition of the payment method used in this paymentGET
apiture:wireTransferThe wire transfer data for this payment instruction.GET

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
_id string (required)
The unique identifier for this payment. This is an immutable opaque string.
read-only
maxLength: 64
purpose string
The reason the user gave for making this payment.
maxLength: 500
memo string
A secondary memo.
maxLength: 500
payeeName string (required)
The name of the payee, either the concatenation of person.firstName, person.middleName, person.lastName if the payee.type is person, or the organization.name if the payee is an organization.
maxLength: 128
accountName string (required)
The name of the account where the payment is debited. This is derived from the account named in the apiture:account link used when creating or updating the payment instruction.
maxLength: 128
paymentMethodType paymentMethodType (required)
The type of the payment. This is the type of the paymentMethodDefinition.
amount paymentAmount (required)
The payment amount.
state paymentState (required)
The final state of this executed payment.
createdAt string(date-time) (required)
The date-time the system created this payment. This is in RFC 3339 format, UTC. This is derived and immutable.
read-only
completedAt string(date-time)
The date-time the payment was completed. This is in RFC 3339 format, UTC. This is derived and immutable.
read-only
payee payee (required)
The recipient of the payment, or for requests for payment, the entity from which the customer is requesting a payment.
paymentMethod paymentInstructionPaymentMethod (required)
The details of the payment method used in to make this payment.

paymentAmount

{
  "value": "3456.78",
  "currency": "USD"
}

Payment Amount (v1.0.0)

A payment amount in a specific currency.

Properties

NameDescription
value string
The net monetary value of the payment. The numeric value is represented as a string so that it can be exact with no loss of precision.
currency string
The ISO 4217 currency code for this monetary value. This is always upper case ASCII. Note: ISO 4217 defines three-character codes. However, ISO 4217 does not account for cryptocurrencies. Of note, DASH uses 4 characters.
Default: "USD"
minLength: 3
maxLength: 3

paymentHistory

{
  "_profile": "https://api.apiture.com/schemas/payments/paymentHistory/v1.0.0/profile.json",
  "name": "history",
  "start": 10,
  "limit": 10,
  "count": 67,
  "_links": {
    "self": {
      "href": "/payments/history?start=10&limit=10"
    },
    "first": {
      "href": "/payments/history?start=0&limit=10"
    },
    "next": {
      "href": "/payments/history?start=20&limit=10"
    },
    "collection": {
      "href": "/payments/history"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "3a0b0818-93d2-448d-a7d8-ed526f6ba80d",
        "_profile": "https://api.apiture.com/schemas/payments/summaryPayment/v1.0.0/profile.json",
        "amount": {
          "value": "256.50",
          "currency": "USD"
        },
        "payeeName": "John Daniel Smith",
        "accountName": "Premiere Checking",
        "paymentMethodType": "wireTransfer",
        "state": "submitted",
        "createdBy": "johnsmith1234",
        "createdAt": "2020-10-02T11:09:20.375Z",
        "completedAt": "2020-10-02T11:15:25.375Z",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/payments/paymentInstructions/3a0b0818-93d2-448d-a7d8-ed526f6ba80d"
          },
          "apiture:paymentInstruction": {
            "href": "https://api.devbank.apiture.com/payments/paymentInstructions/3a0b0818-93d2-448d-a7d8-ed526f6ba80d"
          },
          "apiture:paymentMethod": {
            "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
          },
          "apiture:account": {
            "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
          }
        }
      }
    ]
  }
}

Payment History (v1.0.0)

A collection of completed payments. This collection does not contain pending, submitted, or rejected payments, which are found in the getPaymentInstructions operation's paymentInstructions collection response.

The items in the collection are ordered in the _embedded.items array; the name is history. The top-level _links object may contain pagination links (self, next, prev, first, last, collection).

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded paymentHistoryEmbeddedObjects
The list of payment in this page of results.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

paymentHistoryEmbeddedObjects

{
  "items": [
    {
      "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
      "_profile": "https://api.apiture.com/schemas/payments/summaryPayment/v1.0.0/profile.json",
      "amount": {
        "value": "256.50",
        "currency": "USD"
      },
      "payeeName": "John Daniel Smith",
      "paymentMethodType": "wireTransfer",
      "state": "completed",
      "createdBy": "johnsmith1234",
      "createdAt": "2020-10-02T11:09:20.375Z",
      "completedAt": "2020-10-02T11:15:25.375Z",
      "_links": {
        "self": {
          "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
        },
        "apiture:paymentInstruction": {
          "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
        },
        "apiture:paymentMethodDefinition": {
          "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
        },
        "apiture:account": {
          "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
        }
      }
    }
  ]
}

Payment History Embedded Objects (v1.0.0)

The items in the paymentHistory collection.

Properties

NameDescription
items [summaryPayment]
An array containing a page of payments.

paymentInstitution

{
  "name": "3rd Party Bank",
  "address": {
    "addressLine1": "500 N. Elm St",
    "city": "Norman",
    "regionCode": "OK",
    "postalCode": "73070",
    "countryCode": "US"
  },
  "routingNumber": "021000021",
  "forFurtherCreditMemo": "Attention: John Smith"
}

Payment Institution (v1.0.0)

The payee's external financial institution through which payments are made.

Properties

NameDescription
name string (required)
The name of the payee's financial institution.
maxLength: 128
address paymentInstitutionAddress (required)
The address of the payee's financial institution.
routingNumber string
The nine-digit ABA routing number of the financial institution. Required and only used if and only if the financial institution's address countryCode is US.
minLength: 9
maxLength: 9
pattern: ^[0-9]{9}$
swiftCode string
The eight- or eleven- or twelve- character ISO 9362 Society for Worldwide Interbank Financial Telecommunication (SWIFT) code for international wire transfers. Required and only used if the financial institution's address countryCode is not US.
minLength: 8
maxLength: 12
pattern: ^[a-zA-Z0-9]{8}([a-zA-Z0-9]{3})?$
forFurtherCreditMemo string
Additional "for further credit to" instructions or notes to assist the financial institution when processing the wire transfer, such as the ultimate recipient of funds at the beneficial institution.
maxLength: 500

paymentInstitutionAddress

{
  "addressLine1": "string",
  "addressLine2": "string",
  "city": "string",
  "regionCode": "NC",
  "postalCode": "28401-5405",
  "countryCode": "st"
}

Payment Institution Address (v1.0.0)

The address of the financial institution used in a payment.

Properties

NameDescription
addressLine1 string (required)
The first street address line of the address, normally a house number and street name.
minLength: 4
maxLength: 128
addressLine2 string
The optional second street address line of the address.
maxLength: 128
city string (required)
The name of the city or municipality.
minLength: 2
maxLength: 128
regionCode string
The mailing address region code, such as state in the US, or a province in Canada. This is normalized to uppercase.
minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
postalCode string (required)
The mailing address postal code, such as a US Zip or Zip+4 code, or a Canadian postal code.
minLength: 5
maxLength: 10
pattern: ^[0-9]{5}(?:-[0-9]{4})?$
countryCode string (required)
The ISO 3166-1 alpha-2 country code. This is normalized to uppercase.
minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$

paymentInstruction

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
  "amount": {
    "value": "5000.00",
    "currency": "USD"
  },
  "purpose": "Advance consulting fee",
  "payee": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
    "type": "person",
    "payeeName": "John Daniel Smith",
    "accountName": "Premiere Checking",
    "person": {
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith"
    },
    "address": {
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  },
  "state": "submitted",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "updatedAt": "2020-10-02T11:15:25.375Z",
  "expiresAt": "2020-10-05T11:15:25.375Z",
  "paymentMethod": {
    "type": "wireTransfer",
    "wireTransfer": {
      "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
      "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
      "institution": {
        "name": "3rd Party Bank",
        "address": {
          "addressLine1": "500 N. Elm St",
          "city": "Norman",
          "regionCode": "OK",
          "postalCode": "73070",
          "countryCode": "US"
        },
        "routingNumber": "021000021",
        "forFurtherCreditMemo": "Attention: John Smith"
      },
      "accountNumber": "9876543210",
      "attachments": [
        {
          "name": "invoice-2020-10-01a.pdf",
          "contentType": "application/pdf",
          "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
        }
      ]
    }
  },
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethod": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Payment Instruction (v1.0.0)

Representation of payment instruction resources.

Response and request bodies using this paymentInstruction schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this payment instructionGET
apiture:payeeFetch a representation of this payeeGET
apiture:account Account where the payment is debitedGET
apiture:paymentMethodDefinitionThe definition of the payment method used in this paymentGET
apiture:wireTransferThe wire transfer data for this payment instruction.GET
apiture:submitSubmit this payment instructionPOST
apiture:cancelCancel this payment instructionPOST
apiture:processProcess this payment instruction (administrative use)POST
apiture:rejectReject this payment instruction (administrative use)POST
apiture:failMark this payment instruction as failed (administrative use)POST

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
_id string
The unique identifier for this payment instruction. This is an immutable opaque string.
read-only
maxLength: 64
amount paymentAmount (required)
The payment amount.
purpose string
The reason the user gave for making this payment.
maxLength: 500
memo string
A secondary memo.
maxLength: 500
payeeName string
The (derived) name of the payee, either the concatenation of person.firstName, person.middleName, person.lastName if the payee.type is person, or the organization.name if the payee is an organization.
read-only
maxLength: 128
accountName string
The name of the account where the payment is debited. This is derived from the account named in the apiture:account link used when creating or updating the payment instruction.
read-only
maxLength: 128
payee payee (required)
The recipient of the payment, or for requests for payment, the entity from which the customer id requesting a payment.
paymentMethod paymentInstructionPaymentMethod
The details of the payment method used in this payment instruction.
state paymentInstructionState
The state of this payment instruction. This is immutable and derived. Use the submitPaymentInstruction operation to change a pending request to submitted. Administrative applications use other operations to change the state from submittedtoprocessing, completed, or rejected`.
read-only
createdBy string
The unique User Id of the person who created the payment instruction. This is derived and immutable.
read-only
createdAt string(date-time)
The date-time the customer created this payment instruction. This is in RFC 3339 format, UTC. This is derived and immutable.
read-only
updatedAt string(date-time)
The date-time the payee last updated this payment. This is in RFC 3339 format, UTC. This is derived and immutable.
read-only
expiresAt string(date-time)
The date-time the payee last updated this payment instruction. This is in RFC 3339 format, UTC. This is derived and immutable.
read-only

paymentInstructionAttachment

{
  "name": "invoice-2020-10-01a.pdf",
  "contentType": "application/pdf",
  "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
}

paymentInstructionAttachment (v1.0.0)

A file attached to a payment instruction.

Properties

NameDescription
name string
The file name (excluding any path or URL prefix).
minLength: 6
maxLength: 64
contentType string
The media type for this attachment.
minLength: 6
maxLength: 64
uri string(uri) (required)
The document URI. The content a this URI must be publicly accessible.
maxLength: 2048

paymentInstructionPaymentMethod

{
  "type": "wireTransfer",
  "wireTransfer": {
    "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
    "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
    "institution": {
      "name": "3rd Party Bank",
      "address": {
        "addressLine1": "500 N. Elm St",
        "city": "Norman",
        "regionCode": "OK",
        "postalCode": "73070",
        "countryCode": "US"
      },
      "routingNumber": "021000021",
      "forFurtherCreditMemo": "Attention: John Smith"
    },
    "accountNumber": "9876543210",
    "attachments": [
      {
        "name": "invoice-2020-10-01a.pdf",
        "contentType": "application/pdf",
        "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
      }
    ]
  }
}

Payment Instruction Payments Method (v1.0.0)

Contains the payment method details for a payment instruction. This object may have only one payment method (one of the wireRequest, billPay or personToPerson objects), as per the type.

Properties

NameDescription
type paymentMethodType (required)
Identifies the type of the payment method for this payment instruction.
wireTransfer wireTransferPaymentInstruction
The details of requesting a wire transfer payment, required if and only if type is witeTransfer.
billPay billPayPaymentInstruction
The details for paying a payee via the bill pay method, required if and only if type is witeTransfer.
personToPerson personToPersonPaymentInstruction
The details for paying a payee via the person to person method, required if and only if type is personToPerson.

paymentInstructionState

"pending"

Payment Instruction State (v1.0.0)

The state of a payment instruction.

paymentInstructionState strings may have one of the following enumerated values:

ValueDescription
pendingPending: A new payment instruction that has not been submitted.
submittedSubmitted: A payment instruction that the user has submitted for processing.
canceledCanceled: A payment instruction that the user has canceled.
processingProcessing: A payment instruction that the financial institution has processed but which is not yet complete.
rejectedRejected: A payment instruction that the financial institution has rejected.
completedCompleted: A payment instruction that has completed and debited from the account.

These enumeration values are further described by the label group named paymentInstructionState in the response from the getLabels operation.

Type: string
Enumerated values:
pending
submitted
canceled
processing
rejected
completed

paymentInstructions

{
  "_profile": "https://api.apiture.com/schemas/payments/paymentInstructions/v1.0.0/profile.json",
  "name": "paymentInstructions",
  "start": 10,
  "limit": 10,
  "count": 67,
  "_links": {
    "self": {
      "href": "/payments/paymentInstructions?start=10&limit=10"
    },
    "first": {
      "href": "/payments/paymentInstructions?start=0&limit=10"
    },
    "next": {
      "href": "/payments/paymentInstructions?start=20&limit=10"
    },
    "collection": {
      "href": "/payments/paymentInstructions"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
        "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
        "amount": {
          "value": "5000.00",
          "currency": "USD"
        },
        "purpose": "Advance consulting fee",
        "payee": {
          "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
          "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
          "type": "person",
          "payeeName": "John Daniel Smith",
          "accountName": "Premiere Checking",
          "person": {
            "firstName": "John",
            "middleName": "Daniel",
            "lastName": "Smith"
          },
          "address": {
            "addressLine1": "555 N Front Street",
            "addressLine2": "Suite 5555",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28401-5405",
            "countryCode": "US"
          }
        },
        "paymentMethod": {
          "type": "wireTransfer",
          "wireTransfer": {
            "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
            "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
            "institution": {
              "name": "3rd Party Bank",
              "address": {
                "addressLine1": "500 N. Elm St",
                "city": "Norman",
                "regionCode": "OK",
                "postalCode": "73070",
                "countryCode": "US"
              },
              "routingNumber": "021000021",
              "forFurtherCreditMemo": "Attention: John Smith"
            },
            "accountNumber": "9876543210",
            "attachments": [
              {
                "name": "invoice-2020-10-01a.pdf",
                "contentType": "application/pdf",
                "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
              }
            ]
          }
        },
        "state": "submitted",
        "createdBy": "johnsmith1234",
        "createdAt": "2020-10-02T11:09:20.375Z",
        "updatedAt": "2020-10-02T11:15:25.375Z",
        "expiresAt": "2020-10-05T11:15:25.375Z",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
          },
          "apiture:paymentMethod": {
            "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
          },
          "apiture:account": {
            "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
          }
        }
      }
    ]
  }
}

Payment Instruction Collection (v1.0.0)

Collection of payment instructions. The items in the collection are ordered in the _embedded.items array; the name is paymentInstructions. The top-level _links object may contain pagination links (self, next, prev, first, last, collection).

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded paymentInstructionsEmbeddedObjects
The list of payment instructions in this page of results.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

paymentInstructionsEmbeddedObjects

{
  "items": [
    {
      "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
      "_profile": "https://api.apiture.com/schemas/payments/paymentInstruction/v1.0.0/profile.json",
      "amount": {
        "value": "5000.00",
        "currency": "USD"
      },
      "purpose": "Advance consulting fee",
      "payee": {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://api.apiture.com/schemas/payments/payee/v1.0.0/profile.json",
        "type": "person",
        "payeeName": "John Daniel Smith",
        "accountName": "Premiere Checking",
        "person": {
          "firstName": "John",
          "middleName": "Daniel",
          "lastName": "Smith"
        },
        "address": {
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        }
      },
      "state": "submitted",
      "createdBy": "johnsmith1234",
      "createdAt": "2020-10-02T11:09:20.375Z",
      "updatedAt": "2020-10-02T11:15:25.375Z",
      "expiresAt": "2020-10-05T11:15:25.375Z",
      "paymentMethod": {
        "type": "wireTransfer",
        "wireTransfer": {
          "_id": "50086068-7e25-4fc8-aff1-c9b59bc2405d",
          "_profile": "https://api.apiture.com/schemas/payments/wireTransferRequest/v1.0.0/profile.json",
          "institution": {
            "name": "3rd Party Bank",
            "address": {
              "addressLine1": "500 N. Elm St",
              "city": "Norman",
              "regionCode": "OK",
              "postalCode": "73070",
              "countryCode": "US"
            },
            "routingNumber": "021000021",
            "forFurtherCreditMemo": "Attention: John Smith"
          },
          "accountNumber": "9876543210",
          "attachments": [
            {
              "name": "invoice-2020-10-01a.pdf",
              "contentType": "application/pdf",
              "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
            }
          ]
        }
      },
      "_links": {
        "self": {
          "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
        },
        "apiture:paymentMethod": {
          "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
        },
        "apiture:account": {
          "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
        }
      }
    }
  ]
}

Payment Instructions Embedded Objects (v1.0.0)

The items in the paymentInstructions collection.

Properties

NameDescription
items [paymentInstruction]
An array containing a page of payment instructions.

paymentMethodConsentNeeded

"oneTime"

Payment Method Consent Needed (v1.0.0)

How often the financial institution requires the banking customer to give consent to this payment method's terms and conditions.

paymentMethodConsentNeeded strings may have one of the following enumerated values:

ValueDescription
noneNone: The banking customer does not have to give explicit consent to the terms and conditions of this payment method.
oneTimeOne Time: The banking customer must give explicit consent to the terms and conditions of this payment method one time before using this payment method.
perRequestPer Request: The financial institution requires the banking customer to give consent to the payment method's terms and conditions on each payment request.

These enumeration values are further described by the label group named paymentMethodConsentNeeded in the response from the getLabels operation.

Type: string
Enumerated values:
none
oneTime
perRequest

paymentMethodDefinition

{
  "type": "wireTransfer",
  "label": "Wire Transfer",
  "description": "Send funds via _wire transfer_, also known as Real Time Gross Settlement (RTGS). In the US, wire transfers are processed by Fedwire, the US Federal Reserve Bank network. *Note*: There is a fee for each submitted wire transfer.",
  "_profile": "https://api.apiture.com/schemas/payments/paymentMethodDefinition/v1.0.0/profile.json",
  "paymentLimit": {
    "amount": "200000.00",
    "currency": "USD"
  },
  "termsAndConditionsUri": "https://cdn.apiture.com/documents/terms/wireTransfer/2020-07-10.pdf",
  "termsAndConditionsContextUri": "https://api.devbank.apiture.com/payments/paymentMethodDefintions/billPayment",
  "consentNeeded": "perRequest",
  "requiresMfaChallenge": true,
  "fees": {
    "transaction": "19.00",
    "currency": "USD"
  },
  "schedulingAllowed": false,
  "recurringSchedulesAllowed": false,
  "cancelAllowed": false,
  "updateAllowed": false,
  "presentHelpAfter": "P180D",
  "expirationPeriod": "P7D"
}

Payment Method Definition (v1.0.0)

Defines a payment method and its fees and its contraints. Payment methods are also known as payment channels. Each payment instruction uses exactly one payment method and the payment instruction has properties that are specific to that payment method. The paymentMethodDefinitions resource contains the complete set of payment method definitions.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
type paymentMethodType
The name of this payment method. This is the {paymentMethodType} in the getPaymentMethod operation.
label string
A title or label for this payment method, suitable for use in the user interface.
minLength: 4
maxLength: 32
description string(markdown)
The description of this payment method.
minLength: 4
maxLength: 256
paymentLimit paymentAmount
The maximum amount a user may submit per payment.
termsAndConditionsUri string(uri)
The URI of a document that lists the terms and conditions for using this payment method
maxLength: 2048
termsAndConditionsContextUri string(uri)
The context in which banking customer gives terms and conditions consent. If different payment methods use the same document URI and same context URI, then the user need only give consent one time to use all the payment methods. If different payment methods share the same document URIs but have a different context URI, or they have different document URIs, the payments service will require the customer to give consent to use each payment method. For the first case, the financial institution may use URI of the /payments/paymentMethodDefintions/ collection resource; for the second case, the financial institution may use the URI of each individual payment method definition, such as /payments/paymentMethodDefintions/billPayment or /payments/paymentMethodDefintions/personToPerson.
maxLength: 2048
consentNeeded paymentMethodConsentNeeded
How often the financial institution requires the banking customer to give consent to this payment method's terms and conditions.
enabled boolean
Whether this payment method is globally enabled or not. This value is also defined at a banking product (product.paymentsEnabled) and at an account level (account.paymentsEnabled). This property and and the account-level setting must be true to create and submit a payment instruction using this payment method.
Default: false
requiresMfaChallenge boolean
If true, the user must complete a multi-factor authentication challengs when submitting submitPaymentInstruction the payment instructions to be processed.
fees paymentMethodFees
Fees that the financial institution charges for this payment method.
schedulingAllowed boolean
If true, banking customers can schedule payments to be made in the future. If false, the payment is executed automatically the day the customer submits it or the next financial institution processing day.
recurringSchedulesAllowed boolean
If true, banking customers can schedule recurring payments; if false, only one time payments may be scheduled. This is always false if schedulingAllowed.
cancelAllowed boolean
If true, banking customers can cancel a payments request after submitting it. if false, customers can cancel or delete only pending payments.
updateAllowed boolean
If true, banking customers can update a payment instruction after submitting it. if false, customers can modify only pending payments.
presentHelpAfter string(period)
The length of time that must pass before the user interface should present help or instructions (if any) for using this payment method. This value is an ISO 8601 duration string, using the form P[n]M or P[n]D to specify the number of months or days, respectively. For example, if the value is P180D, the client only presents the instructions to a customer if more than 180 days have passed since the customer last used this payment method.
pattern: ^P(([1-9][0-9]{0,3}D)|([1-9][0-9]?M))$
expirationPeriod string
If set, the Payments service will automatically delete pending payments of this payment method if the customer does not submit them within this time period after they created the request. This value is an ISO 8601 duration string, using the form P[n]M or P[n]D to specify the number of months or days, respectively. For example, if the value is P7D, the service periodically deletes pending payment requsts that are older than 7 days.
pattern: ^P(([1-9][0-9]{0,3}D)|([1-9][0-9]?M))$

paymentMethodDefinitions

{
  "_profile": "https://api.apiture.com/schemas/payments/paymentMethodDefinitions/v1.0.0/profile.json",
  "name": "paymentMethodDefinitions",
  "start": 10,
  "limit": 10,
  "count": 3,
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethodDefinitions"
    }
  },
  "_embedded": {
    "items": [
      {
        "type": "wireTransfer",
        "label": "Wire Transfer",
        "description": "Send funds via _wire transfer_, also as Real Time Gross Settlement (RTGS). In the US, wire transfers are processed by Fedwire, the US Federal Reserve Bank network. *Note*: There is a fee for each submitted wire transfer.",
        "_profile": "https://api.apiture.com/schemas/payments/paymentMethodDefinition/v1.0.0/profile.json",
        "paymentLimit": {
          "amount": "200000.00",
          "currency": "USD"
        },
        "termsAndConditionsUri": "https://cdn.apiture.com/documents/terms/wireTransfer/2020-07-10.pdf",
        "termsAndConditionsContextUri": "https://api.devbank.apiture.com/payments/paymentMethodDefintions/billPayment",
        "consentNeeded": "perRequest",
        "requiresMfaChallenge": true,
        "fees": {
          "currency": "USD",
          "transaction": "19.00"
        },
        "schedulingAllowed": false,
        "recurringSchedulesAllowed": false,
        "cancelAllowed": false,
        "updateAllowed": false,
        "presentHelpAfter": "P180D",
        "expirationPeriod": "P7D",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/payments/paymentMethodDefinitions/wireTransfer"
          }
        }
      }
    ]
  }
}

Payment Method Collection (v1.0.0)

Collection of payment method definitions. The items in the collection are ordered in the _embedded.items array; the collection name is paymentMethodDefinitions. This resource contains each paymentMethodDefinition that the Payments API supports.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded paymentMethodDefinitionsEmbedded
The list of payment method definitions.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

paymentMethodDefinitionsEmbedded

{
  "items": [
    {
      "type": "wireTransfer",
      "label": "Wire Transfer",
      "description": "Send funds via _wire transfer_, also known as Real Time Gross Settlement (RTGS). In the US, wire transfers are processed by Fedwire, the US Federal Reserve Bank network. *Note*: There is a fee for each submitted wire transfer.",
      "_profile": "https://api.apiture.com/schemas/payments/paymentMethodDefinition/v1.0.0/profile.json",
      "paymentLimit": {
        "amount": "200000.00",
        "currency": "USD"
      },
      "termsAndConditionsUri": "https://cdn.apiture.com/documents/terms/wireTransfer/2020-07-10.pdf",
      "termsAndConditionsContextUri": "https://api.devbank.apiture.com/payments/paymentMethodDefintions/billPayment",
      "consentNeeded": "perRequest",
      "requiresMfaChallenge": true,
      "fees": {
        "transaction": "19.00",
        "currency": "USD"
      },
      "schedulingAllowed": false,
      "recurringSchedulesAllowed": false,
      "cancelAllowed": false,
      "updateAllowed": false,
      "presentHelpAfter": "P180D",
      "expirationPeriod": "P7D"
    }
  ]
}

Payment Method Definitions Embedded Objects (v1.0.0)

Payment method definitions embedded objects.

Properties

NameDescription
items [paymentMethodDefinition]
An array containing payment method items.

paymentMethodFees

{
  "currency": "USD",
  "transaction": "19.00"
}

Payment Method Fees (v1.0.0)

Itemized fees for using a payment method.

Properties

NameDescription
currency string
The ISO 4217 three-character currency code for the fees. This is always upper case ASCII.
Default: "USD"
minLength: 3
maxLength: 3
transaction string
The per-payment transaction fee, in the given currency, that the financial institution charges to process payments using this payment method. The numeric value is represented as a string so that it can be exact with no loss of precision.

paymentMethodType

"billPay"

Payment Method Type (v1.0.0)

Identifies the payment method of a payment instruction. (The billPay and personToPerson method are not yet implemented.)

paymentMethodType strings may have one of the following enumerated values:

ValueDescription
wireTransferWire Transfer: High value funds transfers through Fedwire or international wire transfer networks.
billPayBill Pay: Pay bills and make other payments through checks or similar electronic funds transfer.
personToPersonPerson To Person: One-time payments to, or requests for payment from, a person via a person-to-person payment network.

These enumeration values are further described by the label group named paymentMethodType in the response from the getLabels operation.

Type: string
Enumerated values:
billPay
personToPerson
wireTransfer

paymentState

"completed"

Payment State (v1.0.0)

The final state of the executed payment instructions.

paymentState strings may have one of the following enumerated values:

ValueDescription
completedCompleted: The financial institution processed and completed the payment.
failedFailed: The financial institution failed to execute the payment. For example, the account may not have had sufficient funds at the time the financial institution attempted to process the payment.

These enumeration values are further described by the label group named paymentState in the response from the getLabels operation.

Type: string
Enumerated values:
completed
failed

personPayee

{
  "firstName": "string",
  "middleName": "string",
  "lastName": "string"
}

Person (v1.0.0)

Attributes of a payee that is a person.

Properties

NameDescription
firstName string (required)
The person's first name (or given name).
middleName string
The person's middle name.
lastName string (required)
The person's last name (or surname).

personToPersonPaymentInstruction

{}

Bill Pay Data for a Payment Instruction (v0.1.0)

The data used to pay a payee via wire transfer. (This will be defined in a future release of the API.)

Properties

root

{
  "id": "apiName",
  "name": "API name",
  "apiVersion": "1.0.0",
  "_profile": "https://api.apiture.com/schemas/common/root/v2.0.1/profile.json",
  "_links": {}
}

API Root (v2.0.1)

A HAL response, with hypermedia _links for the top-level resources and operations in API.

This schema was resolved from common/root.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
_id string
This API's unique ID.
read-only
name string
This API's name.
apiVersion string
This API's version.

simpleAddress

{
  "addressLine1": "555 N Front Street",
  "addressLine2": "Suite 5555",
  "city": "Wilmington",
  "regionCode": "NC",
  "postalCode": "28401-5405",
  "countryCode": "US"
}

Simple Address (v1.0.0)

A postal address.

This schema was resolved from contacts/simpleAddress.

Properties

NameDescription
addressLine1 string
The first street address line of the address, normally a house number and street name.
minLength: 4
maxLength: 128
addressLine2 string
The optional second street address line of the address.
maxLength: 128
city string
The name of the city or municipality.
minLength: 2
maxLength: 128
regionCode string
The mailing address region code, such as state in the US, or a province in Canada. This is normalized to uppercase.
minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
postalCode string
The mailing address postal code, such as a US Zip or Zip+4 code, or a Canadian postal code.
minLength: 5
maxLength: 10
pattern: ^[0-9]{5}(?:-[0-9]{4})?$
countryCode string
The ISO 3166-1 alpha-2 country code. This is normalized to uppercase.
minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$

simpleLabel

{
  "label": "Board of Directors",
  "description": "string"
}

Simple Label (v1.0.0)

A text label and optional description.

This schema was resolved from common/simpleLabel.

Properties

NameDescription
label string (required)
A label or title which may be used as labels or other UI controls which present a value.
description string
A more detailed localized description of a localizable label.

summaryChallenge

{
  "_links": {
    "property1": {
      "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Application"
    },
    "property2": {
      "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Application"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1575c0a7b0115a4b3",
    "message": "Descriptive error message...",
    "statusCode": 422,
    "type": "errorType1",
    "remediation": "Remediation string...",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "errors": [
      {
        "_id": "ccdbe2c5c938a230667b3827",
        "message": "An optional embedded error"
      },
      {
        "_id": "dbe9088dcfe2460f229338a3",
        "message": "Another optional embedded error"
      }
    ],
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/errorType1"
      }
    }
  },
  "reason": "string",
  "contextUri": "http://example.com",
  "userId": "string",
  "minimumAuthenticatorCount": 0,
  "maximumRedemptionCount": 1,
  "_id": "string",
  "redemptionCount": 0,
  "state": "pending",
  "createdAt": "2019-08-24T14:15:22Z"
}

Summary Challenge (v1.0.0)

Summary representation of a challenge, used in the challenge collection.

This schema was resolved from auth/summaryChallenge.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
reason string
The reason the application or service has issued a challenge requesting the user verify their identity. This is for labeling or informational purposes.
contextUri string(uri)
The URI of a resource that establishes the context in which the user is asked to authenticate their identity. For example, for this may be for a pending transfer, a user's mailing address, or an account if adding a joint owner.
maxLength: 2048
userId string
The user ID of the user who is requested to verify their identity. The default is the userID of the authenticated person creating the challenge.
minimumAuthenticatorCount integer
The minimum number of different authenticators the user must verify in order to satisfy the identity challenge. The default is 1.
maximum: 4
maximumRedemptionCount integer
The maximum number of times the challenge may be used or redeemed. The default is 1.
minimum: 1
_id string
The unique identifier for this challenge resource. This is an immutable opaque string assigned upon creation.
read-only
redemptionCount integer
How many times the challenge has been redeemed.
read-only
state challengeState
The state of this authenticator.
read-only
createdAt string(date-time)
The time stamp when challenge was created, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only

summaryPayment

{
  "_id": "d4e159d4-fffd-4320-aa78-332a26cb3062",
  "_profile": "https://api.apiture.com/schemas/payments/summaryPayment/v1.0.0/profile.json",
  "amount": {
    "value": "256.50",
    "currency": "USD"
  },
  "payeeName": "John Daniel Smith",
  "paymentMethodType": "wireTransfer",
  "state": "completed",
  "createdBy": "johnsmith1234",
  "createdAt": "2020-10-02T11:09:20.375Z",
  "completedAt": "2020-10-02T11:15:25.375Z",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentInstruction": {
      "href": "https://api.devbank.apiture.com/payments/paymentInstructions/d4e159d4-fffd-4320-aa78-332a26cb3062"
    },
    "apiture:paymentMethodDefinition": {
      "href": "https://api.devbank.apiture.com/payments/paymentMethods/wireTranfer"
    },
    "apiture:account": {
      "href": "https://api.devbank.apiture.com/accounts/accounts/e3743de2-b508-4726-9dbc-d1bc98007dba"
    }
  }
}

Summary Payment (v1.0.0)

Summary representation of completed payments used in the paymentHistory collection's items. Use getPayment (GET of the self link's href) to get the complete payment representationof this payment. Payment resources are immutable.

Response and request bodies using this summaryPayment schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this paymentGET
apiture:payeeThe payee associated with this paymentGET
apiture:paymentInstructionCorresponding payment instructionGET
apiture:account Account where the payment is debitedGET
apiture:paymentMethodDefinitionThe definition of the payment method used in this paymentGET
apiture:wireTransferThe wire transfer data for this payment instructionGET

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
_id string (required)
The unique identifier for this payment. This is an immutable opaque string.
read-only
maxLength: 64
purpose string
The reason the user gave for making this payment.
maxLength: 500
memo string
A secondary memo.
maxLength: 500
payeeName string (required)
The name of the payee, either the concatenation of person.firstName, person.middleName, person.lastName if the payee.type is person, or the organization.name if the payee is an organization.
maxLength: 128
accountName string (required)
The name of the account where the payment is debited. This is derived from the account named in the apiture:account link used when creating or updating the payment instruction.
maxLength: 128
paymentMethodType paymentMethodType (required)
The type of the payment. This is the type of the paymentMethodDefinition.
amount paymentAmount (required)
The payment amount.
state paymentState (required)
The final state of this executed payment.
createdAt string(date-time) (required)
The date-time the system created this payment. This is in RFC 3339 format, UTC. This is derived and immutable.
read-only
completedAt string(date-time)
The date-time the payment was completed. This is in RFC 3339 format, UTC. This is derived and immutable.
read-only

wireTransferPaymentInstruction

{
  "institution": {
    "name": "3rd Party Bank",
    "address": {
      "addressLine1": "500 N. Elm St",
      "city": "Norman",
      "regionCode": "OK",
      "postalCode": "73070",
      "countryCode": "US"
    },
    "routingNumber": "021000021",
    "forFurtherCreditMemo": "Attention: John Smith"
  },
  "accountNumber": "9876543210",
  "attachments": [
    {
      "name": "invoice-2020-10-01a.pdf",
      "contentType": "application/pdf",
      "uri": "https://api.devbank.apiture.com/vault/files/91c28be9-ef79-4b94-a2a0-e0aa9ddcab99/content"
    }
  ]
}

Wire Transfers Data for a Payment Instruction (v1.0.0)

The data used to pay a payee via wire transfer.

Properties

NameDescription
institution paymentInstitution (required)
The payee's financial institution.
accountNumber string (required)
The payee's full account number at the financial institution.
minLength: 4
maxLength: 34
intermediaryInstitution paymentInstitution
An optional intermediary financial institution that brokers the wire transfer.
attachments [paymentInstructionAttachment]
Optional documents attached to this wire transfer request. The financial institution might configure the maximum number of attachments to be less than 5.
minItems: undefined
maxItems: 5