API Documentation

Getting Started

The SmartPayables API was developed to assist you with integrating your back-office systems with the SmartPayables system. It allows you to submit bank accounts, documents, and payments for processing, and to look up your bank accounts, documents, payments, and general account information. The API is utilized by doing standard HTTPS POST requests. It returns XML formatted results.

Live system requests should be transmitted to https://api.smartpayables.com/

To use our sand box system for integration testing, please use https://apisb.smartpayables.com/

You should obtain a separate Client ID and API Key for live and sandbox requests, but if you have any difficulty at all obtaining access please contact support to ensure you have access granted.

Before you can begin using the API, you must obtain your user account parameters, Client ID and API Key.

To obtain these values, take these steps:
  • 1. Log into your primary SmartPayables user account within the client panel.
  • 2. Go to the your Account page (top right).
  • 3. Navigate to the API Access page (top right). Here you will find both your Client ID and API Key. The API Key must be kept secure and confidential. If the account password is changed, the API key will also be changed and will need to be updated within your application to ensure continued access.

Failure to authenticate will produce the following response from the system:

<wmc-response status="0">
	<error>Access Denied, Invalid API Key Provided</error>
</wmc-response>

The API system will respond using standard XML format. This will vary depending on the outcome of the action taken.

Our standard response format will be contained within a wmc-response parent item, with a status attribute to indicate whether your request was successful, with status 1 being success, and status 0 indicating there was an error during your request under most circumstances. This parent item may also contain a fileid attribute applicable to file uploads.

As an example success response, please see below:

<wmc-response status="1">
	...
</wmc-response>

In most scenarios dates will be formatted using UNIX stamp format.

Payments can have the following statuses (status ID - status name):

  • 1 - Pending Release
  • 2 - Released
  • 3 - Processing
  • 4 - Sent Out
  • 5 - Posted / Cashed
  • 6 - Returned
  • 7 - Cancelled
  • 8 - Reissued

Documents can have the following statuses (status ID - status name):

  • 1 - Pending Release
  • 2 - Released
  • 3 - Processing
  • 4 - Sent Out

Postgage Codes can have the following values (code - postage type):

  • 1 - USPS First Class
  • 2 - USPS Priority
  • 3 - USPS Priority + Delivery Confirmation
  • 5 - Two Day Courier Service with FedEx or DHL
  • 6 - One Day Courier Service with FedEx or DHL
  • 8 - USPS Overnight
  • 9 - USPS Certified Mail

When the API system responds with a status code of 0, usually you will be given a set of error messages to accompany this.

Error messages will be contained within error elements, as children to the wmc-response parent item. There can be one, or multiple.

As an example error response, please see below:

<wmc-response status="0">
	<error>Please provide an amount</error>
	<error>Please provide a payee</error>
</wmc-response>

The API system will perform a HTTP GET request against a URL of your choosing if configured to do so.

To set this up and view full instructions, you can go to API, then API Access as detailed in Authenticating. This option is located toward the bottom. Full history of notifications are also available via API, then API Status Notification History, with their respective real time status.

Code Examples

We have some introductory code examples available in the PHP programming language currently. These include:

  • Interaction with the API using both Sand Box and Live environments
  • Basic payment add example
  • Payment file upload example
  • Payment IMb Tracking Lookup example
  • Posted/Cashed CSV file upload example
  • Logo file upload example
  • Comprehensive bank account example
  • Check proof system example
  • Document add sample

These examples include predefined data and sample files which will require mapping to your account to work successfully. These examples instead focus on demonstrating interaction with the API, using these should give you a jump start on integration.

If you have any questions at all, please contact support.

Please Click Here to download the zip file containing the following:

  • api-example.php
  • api-bank-accounts-example.php
  • api-check-file-example.php
  • api-check-proofs-example.php
  • api-file-example.php
  • api-insert-example.php
  • api-imb-tracking-lookup-example.php
  • insert-example.pdf
  • bank-account-test-file.csv
  • check-test-file.csv
  • test-file.csv
  • api-logo-example.php
  • logo-example.jpg
  • signature_sample.bmp
  • api-document-add-example.php
  • document-example.pdf
  • document-mailing-list-example.csv

Bank Accounts

Description: This method activates a bank account

Class: bank accounts

Method: activate

API Path: /bank-accounts/activate

Parameters: 
  • client_id*
  • akey*
  • bank_account_id* - bank account ID

Sample Return: 

<wmc-response status="1">
	<bankaccount id='13990'>
		<bankaccount_id>13990</bankaccount_id>
		<submit_ts>1446038027</submit_ts>
		<alias>My API File Test Account A 19 9186</alias>
		<alert_email_address>0</alert_email_address>
		<email_address></email_address>
		<name_on_checks>Name 19</name_on_checks>
		<address_on_checks>Addr 19</address_on_checks>
		<account_address>Addr1</account_address>
		<account_address2>Addr2</account_address2>
		<account_city>City</account_city>
		<account_state>State</account_state>
		<account_zip>12345</account_zip>
		<account_number>12345671425307</account_number>
		<routing_number>43214426</routing_number>
		<bank_name>Bank 19</bank_name>
		<bank_address>Bank Addr One</bank_address>
		<bank_fractional_code>123-45/67</bank_fractional_code>
		<custom_return_address></custom_return_address>
		<micro_deposits_sent>0</micro_deposits_sent>
		<returned>0</returned>
		<return_reason></return_reason>
		<verified>0</verified>
		<active>1</active>
		<signature_assigned>0</signature_assigned>
		<signature2_assigned>0</signature2_assigned>
		<confirmed>1</confirmed>
	</bankaccount>
</wmc-response>

Bank Accounts

Description: This method adds a new bank account, the bank account will need to be confirmed after being added

By adding a bank account through this method, you are agreeing to the following terms: I approve this information, including the signature is correct, and take responsibility for any inaccurate information provided. I also acknowledge that fees may apply if the sub-account requires special printing.

Class: bank accounts

Method: add

API Path: /bank-accounts/add

Parameters: 

  • client_id*
  • akey*
  • name_on_checks - The name to be printed on checks (populating this field will enable Checks for this bank account)
  • address_on_checks - The address to be printed on checks, please replace line breaks with the | character
  • address* - The bank account holders first line of address
  • address2 - The bank account holders second line of address if applicable
  • city* - The bank account holder's city
  • state* - The bank account holder's state
  • zip* - The bank account holder's zip code
  • account_number* - This is your bank account account number
  • routing_number* - This is your bank account routing number
  • bank_name* - This is your bank's name
  • bank_address - This is your bank's address, please replace line breaks with the | character
  • bank_fractional_code - This is your bank's fractional code (only required for Checks)
  • currency - This is defaulted to USD, but may also be set to CAD for Canadian bank accounts (only required for Checks)
  • sig2_threshold - This is used to set a threshold, where if a payment reaches this threshold, a second signature is used only then, otherwise if set a second signature is used all of the time
  • only_use_sig2_threshold - This is set to 1 or 0, indicating enabled or disabled, and enforces the threshold above
  • account_alias* - This is the account alias, used to display the account within the system
  • email_address - Set this if you wish for individual email alerts and verification links to go directly to a user
  • alert_email_address - This is set to 1 or 0, indicating enabled or disabled, and toggles whether or not individual emails with verification links are sent to users directly
  • return_address - This is used to set a custom return address, please replace line breaks with the | character
  • starting_check_number - This can be used to set a starting check number
  • sig_file - This is a file uploaded along with the request, and set as the account signature to be printed on checks. Please note that it is important only the signature is present in this image, and a white background is used (only required for Checks)
  • sig_file2 - This can be set if you require a second signature, and will be used all of the time if you do not set the threshold toggles above
  • name_on_account - Name on bank account. This field will be automatically set to name on checks if not provided.
  • ach_company_id - ACH Company/Tax ID (populating this field will enable ACH for this bank account)
  • ach_originating_dfi - Originating DFI number (required only if enabling ACH)
  • ach_receiving_dfi - Receiving DFI Number (required only if enabling ACH)
  • purchase_order  - This will be included on invoices if it is populated
  • notify_sent_email_address  - Set this to the email address you wish to use for individual payment sent out notifications to go directly to somebody other than your general sent out alert email
  • notify_on_payments_sent  - This is set to 1 or 2, indicating enabled or disabled, and toggles whether or not payment sent out notifications have their own specific email for this bank account

Sample Return: 

<wmc-response status="1">
	<bankaccount id='13991'>
		<bankaccount_id>13991</bankaccount_id>
		<submit_ts>1446043376</submit_ts>
		<alias>My API Test Account21</alias>
		<alert_email_address>0</alert_email_address>
		<email_address></email_address>
		<name_on_checks>Test Name</name_on_checks>
		<address_on_checks>Test Addr|Line 2|Line 3|Line 4</address_on_checks>
		<account_address>Test Addr</account_address>
		<account_address2>Line 2</account_address2>
		<account_city>City</account_city>
		<account_state>State</account_state>
		<account_zip>12345</account_zip>
		<account_number>12345678912314</account_number>
		<routing_number>987654321100</routing_number>
		<bank_name>My Bank</bank_name>
		<bank_address>My Banks|Addr|Lines</bank_address>
		<bank_fractional_code>123/456-78</bank_fractional_code>
		<custom_return_address></custom_return_address>
		<micro_deposits_sent>0</micro_deposits_sent>
		<returned>0</returned>
		<return_reason></return_reason>
		<verified>0</verified>
		<active>1</active>
		<signature_assigned>1</signature_assigned>
		<signature2_assigned>0</signature2_assigned>
		<confirmed>1</confirmed>
	</bankaccount>
</wmc-response>

Bank Accounts

Description: This method allows you to assign a signature to a bank account, typically used after file uploads

Class: bank accounts

Method: assign-signature

API Path: /bank-accounts/assign-signature

Parameters: 

  • client_id*
  • akey*
  • bank_account_id* - bank account ID
  • sig_file - This is a file uploaded along with the request, and set as the account signature to be printed on checks. Please note that it is important only the signature is present in this image, and a white background is used
  • sig_file2 - This can be set if you require a second signature, and will be used all of the time if you do not set the threshold toggles

Sample Return: 

<wmc-response status="1">
	<bankaccount id='13992'>
		<bankaccount_id>13992</bankaccount_id>
		<submit_ts>1446043630</submit_ts>
		<alias>My API File Test Account A 0 9926</alias>
		<alert_email_address>0</alert_email_address>
		<email_address></email_address>
		<name_on_checks>Name 0</name_on_checks>
		<address_on_checks>Addr 0</address_on_checks>
		<account_address>Addr1</account_address>
		<account_address2>Addr2</account_address2>
		<account_city>City</account_city>
		<account_state>State</account_state>
		<account_zip>12345</account_zip>
		<account_number>1234567142937</account_number>
		<routing_number>43213867</routing_number>
		<bank_name>Bank 0</bank_name>
		<bank_address>Bank Addr One</bank_address>
		<bank_fractional_code>123-45/67</bank_fractional_code>
		<custom_return_address></custom_return_address>
		<micro_deposits_sent>0</micro_deposits_sent>
		<returned>0</returned>
		<return_reason></return_reason>
		<verified>0</verified>
		<active>1</active>
		<signature_assigned>1</signature_assigned>
		<signature2_assigned>0</signature2_assigned>
		<confirmed>1</confirmed>
	</bankaccount>
</wmc-response>

Bank Accounts

Description: This method allows you to retrieve details for a specific bank account

Class: bank accounts

Method: byid

API Path: /bank-accounts/byid

Parameters: 

  • client_id*
  • akey*
  • bank_account_id* - bank account ID

Sample Return: 

<wmc-response status="1">
	<bankaccount id='13992'>
		<bankaccount_id>13992</bankaccount_id>
		<submit_ts>1446043630</submit_ts>
		<alias>My API File Test Account A 0 9926</alias>
		<alert_email_address>0</alert_email_address>
		<email_address></email_address>
		<name_on_checks>Name 0</name_on_checks>
		<address_on_checks>Addr 0</address_on_checks>
		<account_address>Addr1</account_address>
		<account_address2>Addr2</account_address2>
		<account_city>City</account_city>
		<account_state>State</account_state>
		<account_zip>12345</account_zip>
		<account_number>1234567142937</account_number>
		<routing_number>43213867</routing_number>
		<bank_name>Bank 0</bank_name>
		<bank_address>Bank Addr One</bank_address>
		<bank_fractional_code>123-45/67</bank_fractional_code>
		<custom_return_address></custom_return_address>
		<micro_deposits_sent>0</micro_deposits_sent>
		<returned>0</returned>
		<return_reason></return_reason>
		<verified>0</verified>
		<active>1</active>
		<signature_assigned>1</signature_assigned>
		<signature2_assigned>0</signature2_assigned>
		<confirmed>1</confirmed>
	</bankaccount>
</wmc-response>

Bank Accounts

Description: This method is used to confirm a bank account, either an individually added bank account, or an entire uploaded bank account file (multiple)

Class: bank accounts

Method: confirm

API Path: /bank-accounts/confirm

Parameters: 

  • client_id*
  • akey*
  • item* - One or multiple unique item identifiers (for multiples, use standard form posting rules for data arrays and pass each item_id as item_id[]. Item_id must include bank account confirmation type. To confirm a single bank account with an id of 25, set item_id to 'single-25.' To confirm a bank account file with an ID of 25, set item_id to 'file-25.'

Note: The XML response varies by bank account confirmation type and by how the bank account information is confirmed. The response status is 1 if the transaction was successful.

This example confirms three bank accounts. Each item value was obtained from the bankaccount_id node returned by the respective bank-accounts/add method call:

  • item[0]=10
  • item[1]=11
  • item[2]=12

Sample Return: 

<wmc-response status="1">
	<bankaccount id='13992'>
		<bankaccount_id>13992</bankaccount_id>
		<submit_ts>1446043630</submit_ts>
		<alias>My API File Test Account A 0 9926</alias>
		<alert_email_address>0</alert_email_address>
		<email_address></email_address>
		<name_on_checks>Name 0</name_on_checks>
		<address_on_checks>Addr 0</address_on_checks>
		<account_address>Addr1</account_address>
		<account_address2>Addr2</account_address2>
		<account_city>City</account_city>
		<account_state>State</account_state>
		<account_zip>12345</account_zip>
		<account_number>1234567142937</account_number>
		<routing_number>43213867</routing_number>
		<bank_name>Bank 0</bank_name>
		<bank_address>Bank Addr One</bank_address>
		<bank_fractional_code>123-45/67</bank_fractional_code>
		<custom_return_address></custom_return_address>
		<micro_deposits_sent>0</micro_deposits_sent>
		<returned>0</returned>
		<return_reason></return_reason>
		<verified>0</verified>
		<active>1</active>
		<signature_assigned>1</signature_assigned>
		<signature2_assigned>0</signature2_assigned>
		<confirmed>1</confirmed>
	</bankaccount>
</wmc-response>

Bank Accounts

Description: This method deactivates a bank account

Class: bank accounts

Method: deactivate

API Path: /bank-accounts/deactivate

Parameters: 

  • client_id*
  • akey*
  • bank_account_id* - bank account ID

Sample Return: 

<wmc-response status="1">
	<bankaccount id='13990'>
		<bankaccount_id>13990</bankaccount_id>
		<submit_ts>1446038027</submit_ts>
		<alias>My API File Test Account A 19 9186</alias>
		<alert_email_address>0</alert_email_address>
		<email_address></email_address>
		<name_on_checks>Name 19</name_on_checks>
		<address_on_checks>Addr 19</address_on_checks>
		<account_address>Addr1</account_address>
		<account_address2>Addr2</account_address2>
		<account_city>City</account_city>
		<account_state>State</account_state>
		<account_zip>12345</account_zip>
		<account_number>12345671425307</account_number>
		<routing_number>43214426</routing_number>
		<bank_name>Bank 19</bank_name>
		<bank_address>Bank Addr One</bank_address>
		<bank_fractional_code>123-45/67</bank_fractional_code>
		<custom_return_address></custom_return_address>
		<micro_deposits_sent>0</micro_deposits_sent>
		<returned>0</returned>
		<return_reason></return_reason>
		<verified>0</verified>
		<active>0</active>
		<signature_assigned>0</signature_assigned>
		<signature2_assigned>0</signature2_assigned>
		<confirmed>1</confirmed>
	</bankaccount>
</wmc-response>

Bank Accounts

Description: This method retrieves a list of your bank accounts in the system, you can specify action required to only return bank accounts needing action such as needing a signature, returned, etc

Class: bank accounts

Method: get-list

API Path: /bank-accounts/get-list

Parameters: 

  • client_id*
  • akey*
  • action_required - Set this to 1 or 0, indicating true or false

Sample Return: 

<wmc-response status="1">
	<bankaccounts>
		<bankaccount id='14009'>
			<bankaccount_id>14009</bankaccount_id>
			<submit_ts>1446043631</submit_ts>
			<alias>My API File Test Account A 17 9595</alias>
			<alert_email_address>0</alert_email_address>
			<email_address></email_address>
			<name_on_checks>Name 17</name_on_checks>
			<address_on_checks>Addr 17</address_on_checks>
			<account_address>Addr1</account_address>
			<account_address2>Addr2</account_address2>
			<account_city>City</account_city>
			<account_state>State</account_state>
			<account_zip>12345</account_zip>
			<account_number>1234567142850</account_number>
			<routing_number>43213310</routing_number>
			<bank_name>Bank 17</bank_name>
			<bank_address>Bank Addr One</bank_address>
			<bank_fractional_code>123-45/67</bank_fractional_code>
			<custom_return_address></custom_return_address>
			<micro_deposits_sent>0</micro_deposits_sent>
			<returned>0</returned>
			<return_reason></return_reason>
			<verified>0</verified>
			<active>1</active>
			<signature_assigned>0</signature_assigned>
			<signature2_assigned>0</signature2_assigned>
			<confirmed>1</confirmed>
		</bankaccount>
		<bankaccount id='14010'>
			<bankaccount_id>14010</bankaccount_id>
			<submit_ts>1446043631</submit_ts>
			<alias>My API File Test Account A 18 4024</alias>
			<alert_email_address>0</alert_email_address>
			<email_address></email_address>
			<name_on_checks>Name 18</name_on_checks>
			<address_on_checks>Addr 18</address_on_checks>
			<account_address>Addr1</account_address>
			<account_address2>Addr2</account_address2>
			<account_city>City</account_city>
			<account_state>State</account_state>
			<account_zip>12345</account_zip>
			<account_number>12345671425210</account_number>
			<routing_number>43214492</routing_number>
			<bank_name>Bank 18</bank_name>
			<bank_address>Bank Addr One</bank_address>
			<bank_fractional_code>123-45/67</bank_fractional_code>
			<custom_return_address></custom_return_address>
			<micro_deposits_sent>0</micro_deposits_sent>
			<returned>0</returned>
			<return_reason></return_reason>
			<verified>0</verified>
			<active>1</active>
			<signature_assigned>0</signature_assigned>
			<signature2_assigned>0</signature2_assigned>
			<confirmed>1</confirmed>
		</bankaccount>
		<bankaccount id='14011'>
			<bankaccount_id>14011</bankaccount_id>
			<submit_ts>1446043631</submit_ts>
			<alias>My API File Test Account A 19 1808</alias>
			<alert_email_address>0</alert_email_address>
			<email_address></email_address>
			<name_on_checks>Name 19</name_on_checks>
			<address_on_checks>Addr 19</address_on_checks>
			<account_address>Addr1</account_address>
			<account_address2>Addr2</account_address2>
			<account_city>City</account_city>
			<account_state>State</account_state>
			<account_zip>12345</account_zip>
			<account_number>1234567142883</account_number>
			<routing_number>43215420</routing_number>
			<bank_name>Bank 19</bank_name>
			<bank_address>Bank Addr One</bank_address>
			<bank_fractional_code>123-45/67</bank_fractional_code>
			<custom_return_address></custom_return_address>
			<micro_deposits_sent>0</micro_deposits_sent>
			<returned>0</returned>
			<return_reason></return_reason>
			<verified>0</verified>
			<active>1</active>
			<signature_assigned>0</signature_assigned>
			<signature2_assigned>0</signature2_assigned>
			<confirmed>1</confirmed>
		</bankaccount>
	</bankaccounts>
</wmc-response>

Bank Accounts

Description: Used to upload bank accounts files, see Bank Accounts -> Upload for formatting details

Class: bank accounts

Method: upload

API Path: /bank-accounts/upload

Parameters: 

  • client_id*
  • akey*
  • userfile - File uploaded via HTTP post, similar to using a file input field on a form

Sample Return: 

<wmc-response status="1" fileid="58">
	<bankaccounts>
		<bankaccount id='14009'>
			<bankaccount_id>14009</bankaccount_id>
			<submit_ts>1446043631</submit_ts>
			<alias>My API File Test Account A 17 9595</alias>
			<alert_email_address>0</alert_email_address>
			<email_address></email_address>
			<name_on_checks>Name 17</name_on_checks>
			<address_on_checks>Addr 17</address_on_checks>
			<account_address>Addr1</account_address>
			<account_address2>Addr2</account_address2>
			<account_city>City</account_city>
			<account_state>State</account_state>
			<account_zip>12345</account_zip>
			<account_number>1234567142850</account_number>
			<routing_number>43213310</routing_number>
			<bank_name>Bank 17</bank_name>
			<bank_address>Bank Addr One</bank_address>
			<bank_fractional_code>123-45/67</bank_fractional_code>
			<custom_return_address></custom_return_address>
			<micro_deposits_sent>0</micro_deposits_sent>
			<returned>0</returned>
			<return_reason></return_reason>
			<verified>0</verified>
			<active>1</active>
			<signature_assigned>0</signature_assigned>
			<signature2_assigned>0</signature2_assigned>
			<confirmed>0</confirmed>
		</bankaccount>
		<bankaccount id='14010'>
			<bankaccount_id>14010</bankaccount_id>
			<submit_ts>1446043631</submit_ts>
			<alias>My API File Test Account A 18 4024</alias>
			<alert_email_address>0</alert_email_address>
			<email_address></email_address>
			<name_on_checks>Name 18</name_on_checks>
			<address_on_checks>Addr 18</address_on_checks>
			<account_address>Addr1</account_address>
			<account_address2>Addr2</account_address2>
			<account_city>City</account_city>
			<account_state>State</account_state>
			<account_zip>12345</account_zip>
			<account_number>12345671425210</account_number>
			<routing_number>43214492</routing_number>
			<bank_name>Bank 18</bank_name>
			<bank_address>Bank Addr One</bank_address>
			<bank_fractional_code>123-45/67</bank_fractional_code>
			<custom_return_address></custom_return_address>
			<micro_deposits_sent>0</micro_deposits_sent>
			<returned>0</returned>
			<return_reason></return_reason>
			<verified>0</verified>
			<active>1</active>
			<signature_assigned>0</signature_assigned>
			<signature2_assigned>0</signature2_assigned>
			<confirmed>0</confirmed>
		</bankaccount>
		<bankaccount id='14011'>
			<bankaccount_id>14011</bankaccount_id>
			<submit_ts>1446043631</submit_ts>
			<alias>My API File Test Account A 19 1808</alias>
			<alert_email_address>0</alert_email_address>
			<email_address></email_address>
			<name_on_checks>Name 19</name_on_checks>
			<address_on_checks>Addr 19</address_on_checks>
			<account_address>Addr1</account_address>
			<account_address2>Addr2</account_address2>
			<account_city>City</account_city>
			<account_state>State</account_state>
			<account_zip>12345</account_zip>
			<account_number>1234567142883</account_number>
			<routing_number>43215420</routing_number>
			<bank_name>Bank 19</bank_name>
			<bank_address>Bank Addr One</bank_address>
			<bank_fractional_code>123-45/67</bank_fractional_code>
			<custom_return_address></custom_return_address>
			<micro_deposits_sent>0</micro_deposits_sent>
			<returned>0</returned>
			<return_reason></return_reason>
			<verified>0</verified>
			<active>1</active>
			<signature_assigned>0</signature_assigned>
			<signature2_assigned>0</signature2_assigned>
			<confirmed>0</confirmed>
		</bankaccount>
	</bankaccounts>
</wmc-response>

Bank Accounts

Description: This method is used to verify micro deposits to get an account setup completed. Please note in sandbox, values of $0.01 and $0.01 for both will be accepted as valid to enable you to verify the account and test your implementation

Class: bank accounts

Method: verify-micro-deposits

API Path: /bank-accounts/verify-micro-deposits

Parameters: 

  • client_id*
  • akey*
  • bank_account_id* - Bank account ID
  • amount_one* - Micro Deposit amount one (0.00 formatting - 0.01 will be accepted on sandbox as valid)
  • amount_two* - Micro Deposit amount two (0.00 formatting - 0.01 will be accepted on sandbox as valid)

Sample Return: 

<wmc-response status="1">
	<verifyresult>
		<bankaccount_id>13990</bankaccount_id>
		<locked>0</locked>
		<attempts>0</attempts>
		<verified>1</verified>
	</verifyresult>
</wmc-response>

Documents

Description: This method adds a document to the system. The parameters and the XML nodes returned depend upon document type

Class: documents

Method: add

API Path: /documents/add

For Single Documents

Parameters: 

  • client_id*
  • akey*
  • document_file* - file uploaded via HTTP post, similar to using a file input field on a form
  • document_type* - set this to a value of "single"
  • print_type* - this is the ink/print type, please send one of the following options:
    • black_white - Print using Black & White
    • black_white_duplex - Print using Black & White Duplex
    • color - Print using Color
    • color_duplex - Print using Color Duplex
  • document_address_type* - please send one of the following options:
    • address_provided_separately - This indicates you want us to include a cover page and you are then required to supply the address in the fields below
    • address_included_in_file - This indicates your document itself already has the address within it
  • mail_to - who the document is addressed to
  • address - address to send to
  • address2 - second address to send to if required
  • city - city to send to
  • state - state to send to
  • zip - zip/postal code to send to
  • country - country to send to
  • trans_id - an optional custom client transaction ID stored for record keeping
  • document_return_address_option* - please send one of the following options:
    • smartpayables - This indicates you wish to use our address in the event of a return
    • custom - This indicates you will provide your own return address in the field below with new lines indicated by the | character
  • document_return_address* - custom return address to be used with new lines indicated by the | character (eg. company name|address|city, state, zip|country)

For File Bundles

Parameters: 

  • client_id*
  • akey*
  • document_file* - file uploaded via HTTP post, similar to using a file input field on a form
  • document_type* - set this to a value of "bundle"
  • print_type* - this is the ink/print type, please send one of the following options:
    • black_white - Print using Black & White
    • black_white_duplex - Print using Black & White Duplex
    • color - Print using Color
    • color_duplex - Print using Color Duplex
  • bundle_mail_to* - who the document is addressed to
  • bundle_address* - address to send to
  • bundle_address2 - second address to send to if required
  • bundle_city* - city to send to
  • bundle_state* - state to send to
  • bundle_zip* - zip/postal code to send to
  • bundle_country* - country to send to
  • bundle_count* - number of copies to print and send
  • trans_id - an optional custom client transaction ID stored for record keeping

For Mailing Lists

Parameters: 

  • client_id*
  • akey*
  • document_file* - file uploaded via HTTP post, similar to using a file input field on a form
  • mailing_list_file* - file uploaded via HTTP post, similar to using a file input field on a form, in CSV format, with the following columns/headers:
    mail to recipient,address,address 2,city,state,zip,country,client transaction id
  • document_type* - set this to a value of "mailing_list"
  • print_type* - this is the ink/print type, please send one of the following options:
    • black_white - Print using Black & White
    • black_white_duplex - Print using Black & White Duplex
    • color - Print using Color
    • color_duplex - Print using Color Duplex
  • trans_id - an optional custom client transaction ID stored for record keeping

Documents

Description: This method confirms one or more documents

Class: documents

Method: confirm

API Path: /documents/confirm

Parameters: 

  • client_id*
  • akey*
  • item* - this must be set to single-DOCUMENT_ID_HERE where DOCUMENT_ID_HERE is the document ID returned upon add, or file-FILE_ID_HERE where FILE_ID_HERE is the file ID returned upon file upload, or bundle-BUNDLE_ID_HERE where BUNDLE_ID_HERE is the bundle ID returned upon add

Check Proofs

Description: This method is used to approve a check proof

Class: bank-accounts

Method: check-proofs/approve

API Path: /bank-accounts/check-proofs/approve

Parameters: 

  • client_id*
  • akey*
  • check_proof_id* - the ID of the check proof to approve

Sample Return: 

<wmc-response status="1">
	<checkproofs>
		<checkproof id='1'>
			<checkproof_id>1</checkproof_id>
			<bank_account_id>1</bank_account_id>
			<bank_account_alias>Sample 1</bank_account_alias>
			<checkproof_added_ts>1542206453</checkproof_added_ts>
			<checkproof_reviewed>1</checkproof_reviewed>
			<checkproof_approved>1</checkproof_approved>
			<checkproof_rejected>0</checkproof_rejected>
			<checkproof_rejection_reason></checkproof_rejection_reason>
		</checkproof>
	</checkproofs>
</wmc-response>

Check Proofs

Description: This method is used to retrieve check proof information by bank account ID

Class: bank-accounts

Method: check-proofs/get-by-bank-account-id

API Path: /bank-accounts/check-proofs/get-by-bank-account-id

Parameters: 

  • client_id*
  • akey*
  • bank_account_id* - the ID of the bank account

Sample Return: 

<wmc-response status="1">
	<checkproofs>
		<checkproof id='1'>
			<checkproof_id>1</checkproof_id>
			<bank_account_id>1</bank_account_id>
			<bank_account_alias>Sample 1</bank_account_alias>
			<checkproof_added_ts>1542206453</checkproof_added_ts>
			<checkproof_reviewed>0</checkproof_reviewed>
			<checkproof_approved>0</checkproof_approved>
			<checkproof_rejected>0</checkproof_rejected>
			<checkproof_rejection_reason></checkproof_rejection_reason>
		</checkproof>
	</checkproofs>
</wmc-response>

Check Proofs

Description: This method is used to retrieve a JPG formatted image of the check proof for you to review

Class: bank-accounts

Method: check-proofs/get-proof-image

API Path: /bank-accounts/check-proofs/get-proof-image

Parameters: 

  • client_id*
  • akey*
  • check_proof_id* - the ID of the check proof to retrieve a JPG image of

Check Proofs

Description: This method is used to retrieve a list of check proofs awaiting review

Class: bank-accounts

Method: check-proofs/get-review-list

API Path: /bank-accounts/check-proofs/get-review-list

Parameters: 

  • client_id*
  • akey*

Sample Return: 

<wmc-response status="1">
	<checkproofs>
		<checkproof id='1'>
			<checkproof_id>1</checkproof_id>
			<bank_account_id>1</bank_account_id>
			<bank_account_alias>Sample 1</bank_account_alias>
			<checkproof_added_ts>1542206427</checkproof_added_ts>
			<checkproof_reviewed>0</checkproof_reviewed>
			<checkproof_approved>0</checkproof_approved>
			<checkproof_rejected>0</checkproof_rejected>
			<checkproof_rejection_reason></checkproof_rejection_reason>
		</checkproof>
		<checkproof id='2'>
			<checkproof_id>2</checkproof_id>
			<bank_account_id>2</bank_account_id>
			<bank_account_alias>Sample 2</bank_account_alias>
			<checkproof_added_ts>1542206440</checkproof_added_ts>
			<checkproof_reviewed>0</checkproof_reviewed>
			<checkproof_approved>0</checkproof_approved>
			<checkproof_rejected>0</checkproof_rejected>
			<checkproof_rejection_reason></checkproof_rejection_reason>
		</checkproof>
	</checkproofs>
</wmc-response>

Check Proofs

Description: This method is used to reject a check proof

Class: bank-accounts

Method: check-proofs/reject

API Path: /bank-accounts/check-proofs/reject

Parameters: 

  • client_id*
  • akey*
  • check_proof_id* - the ID of the check proof to reject
  • rejection_reason - the reason for the rejection

Sample Return: 

<wmc-response status="1">
	<checkproofs>
		<checkproof id='1'>
			<checkproof_id>1</checkproof_id>
			<bank_account_id>1</bank_account_id>
			<bank_account_alias>Sample 1</bank_account_alias>
			<checkproof_added_ts>1542206453</checkproof_added_ts>
			<checkproof_reviewed>1</checkproof_reviewed>
			<checkproof_approved>0</checkproof_approved>
			<checkproof_rejected>1</checkproof_rejected>
			<checkproof_rejection_reason>Sample rejection reason</checkproof_rejection_reason>
		</checkproof>
	</checkproofs>
</wmc-response>

Payments

Description: This method adds a payment to the system. The parameters and the XML nodes returned depend upon whether the payment is Check or ACH - method_id 2 and 1 respectively

Class: payments

Method: add

API Path: /payments/add

For Check (method_id = 2)

Parameters: 

  • client_id*
  • akey*
  • method_id* - numeric id representing a method of payment
  • payee* - name of payee
  • amount* - amount of payment (xxx.xx). This is entered with no currency symbols; just numbers and decimals
  • address* - payee street address
  • address2
  • city* - payee city
  • country* - payee country
  • first_name - payment recipient's first name
  • last_name - payment recipient's last name
  • logo_file - name of client's logo file stored on the system
  • memo - information placed on the stub of the check or the memo line of the check depending upon client setup
  • memo2 - additional information placed on the stub of the check or the memo line of the check depending upon client setup
  • notes - internal notes to pass to the system along with the payment
  • pay - true/false indicator as to whether to actually pay the payment (defaults to true)
  • payee_email - payee email (optional)
  • payment_type - indicates the type of payment, e.g. Bill Payment, Commission, etc
  • postage_code (one of the following numeric values)
    • 1 - USPS First Class
    • 2 - USPS Priority
    • 3 - USPS Priority + Delivery Confirmation
    • 5 - Two Day Courier Service with FedEx or DHL
    • 6 - One Day Courier Service with FedEx or DHL
    • 8 - USPS Overnight
    • 9 - USPS Certified Mail
  • reference* - reference
  • state* - payee state
  • taxid - SSN or tax identification number
  • trans_id* - transaction id assigned by client to identify individual payment that will display in reports, etc
  • zip* - payee zip / postal code
  • check_num - this can be used to provide your own check number. By default we will generate these so leave blank or do not provide this if you wish for us to do so
  • bank_account_id - please provide either the unique bank account ID from the system, or the bank account alias you set to send the check from a different bank account you have added. If no value is provided, your Default bank account will be used
  • mail_to_payee - if you populate this field it will replace the payee name in the address for mailing
  • expedite_request - if it is past our 9 AM cut off time but before 11 AM, set this field to a value of 1 to indicate you wish to place a request in to send this payment past dead line, please note this is not a guaranteed service

Parameters: 

To add a check with an insert PDF file, please include the following parameters:

  • insert_include* - set this field to a value of 1 to indicate you wish to include an insert PDF file
  • insert_file* - using HTTP file upload, please include your PDF file with the name 'insert_file'
  • insert_print* - please provide how you want this insert to be printed within this field, using one of the following values
    • black_white - Print using Black & White
    • black_white_duplex - Print using Black & White Duplex
    • color - Print using Color
    • color_duplex - Print using Color Duplex

Sample Return: 

<wmc-response status="1">
	<payment id='1310350' status='0'>
		<payment_id>1310350</payment_id>
		<client_id>1</client_id>
		<client>SmartPayables</client>
		<company_name>SmartPayables</company_name>
		<status_id>0</status_id>
		<method_id>2</method_id>
		<submit_ts>1378508396</submit_ts>
		<date_submitted>1378508396</date_submitted>
		<date_updated></date_updated>
		<date_exported></date_exported>
		<date_sent></date_sent>
		<confirmed>0</confirmed>
		<deleted>0</deleted>
		<payee>Test Payee</payee>
		<amount>69.00</amount>
		<pay>1</pay>
		<id>1310350</id>
		<address>1234 some st</address>
		<address2></address2>
		<insert_file></insert_file>
		<check_num>0</check_num>
		<city>lake worth</city>
		<trans_id>12345</trans_id>
		<country>usa</country>
		<first_name></first_name>
		<insert_color>0</insert_color>
		<last_name></last_name>
		<logo_file></logo_file>
		<memo>Test Ref</memo>
		<memo2></memo2>
		<notes></notes>
		<payee_email></payee_email>
		<payment_type></payment_type>
		<postage_code>1</postage_code>
		<reference>Test Ref</reference>
		<ref>Test Ref</ref>
		<taxid></taxid>
		<state>fl</state>
		<tracking></tracking>
		<zip>33462</zip>
		<fee>0.00</fee>
		<postage_fee>0.00</postage_fee>
		<extra_fee>0.00</extra_fee>
	</payment>
</wmc-response>

For ACH (method_id = 1)

Parameters: 

  • client_id*
  • akey*
  • method_id* - numeric id representing a method of payment
  • payee* - name of payee
  • amount* - amount of payment (xxx.xx). This is entered with no currency symbols; just numbers and decimals
  • acct_class* - Personal / Corporate
  • acct_name - name on account
  • acct_num* - account num
  • acct_route* - the 9-digit routing number of the receiving bank to which the payment is being sent
  • acct_type* - Checkings / Savings
  • address* - payee street address
  • address2
  • bank_name* - bank name
  • city* - payee city
  • country* - payee country
  • first_name - payment recipient's first name
  • last_name - payment recipient's last name
  • notes - internal notes to pass to the system along with the payment
  • pay - true/false indicator as to whether to actually pay the payment (defaults to true)
  • payee_email - payee email (optional)
  • payment_type - free-form text field to indicate the type of payment, e.g. Bill Payment, Rebate, Commission, etc
  • reference* - reference info printed on check stub or memo line or tagged on wire transfer
  • state* - payee state
  • taxid - SSN or tax identification number
  • trans_id* - transaction id assigned by client to identify individual payment that will display on reports, etc
  • zip* - payee zip / postal code
  • bank_account_id - please provide either the unique bank account ID from the system, or the bank account alias you set to send the ACH from a different bank account you have added. If no value is provided, your Default bank account will be used
  • expedite_request - if it is past our 9 AM cut off time but before 11 AM, set this field to a value of 1 to indicate you wish to place a request in to send this payment past dead line, please note this is not a guaranteed service

Sample Return: 

<wmc-response status="1">
	<payment id='1309160' status='0'>
		<payment_id>1309160</payment_id>
		<client_id>1</client_id>
		<client>SmartPayables</client>
		<company_name>SmartPayables</company_name>
		<status_id>0</status_id>
		<method_id>1</method_id>
		<submit_ts>1378433857</submit_ts>
		<date_submitted>1378433857</date_submitted>
		<date_updated></date_updated>
		<date_exported></date_exported>
		<date_sent></date_sent>
		<confirmed>0</confirmed>
		<deleted>0</deleted>
		<payee>John Smith</payee>
		<amount>300.00</amount>
		<pay>1</pay>
		<id>1309160</id>
		<acct_class>Personal</acct_class>
		<acct_num>123456789</acct_num>
		<acct_route>036001808</acct_route>
		<acct_type>Checking</acct_type>
		<address>1 Main Street</address>
		<address2></address2>
		<bank_name>TD Bank</bank_name>
		<city>Yardley</city>
		<trans_id>54321</trans_id>
		<country>usa</country>
		<first_name></first_name>
		<last_name></last_name>
		<acct_name></acct_name>
		<notes></notes>
		<payee_email></payee_email>
		<payment_type></payment_type>
		<reference>Testing</reference>
		<ref>Testing</ref>
		<taxid></taxid>
		<state>PA</state>
		<zip>19067</zip>
		<fee>0.00</fee>
		<postage_fee>0.00</postage_fee>
		<extra_fee>0.00</extra_fee>
	</payment>
</wmc-response>

Payments

Description: This method is used to locate a payment by a singular date, or a date range (from, to)

Class: payments

Method: byDate

API Path: /payments/byDate

Parameters: 

  • client_id*
  • akey*
  • from_date - the from date, if this date is not present it will be automatically defaulted to today's date minus 7 days, formatted mm/dd/yyyy
  • to_date - the to date, if this date is not present it will be automatically defaulted to today's date, formatted mm/dd/yyyy

Note: The XML response varies by payment type. Dates should be formatted mm/dd/yyyy. There is a maximum of 500 results possible.

Sample Return: 

<wmc-response status="1">
	<payments>
		<payment id='1791977' status='6'>
		<payment_id>1791977</payment_id>
		<client_id>1</client_id>
		<client>smartpayables.com</client>
		<company_name>SmartPayables</company_name>
		<status_id>6</status_id>
		<status>Cancelled</status>
		<method_id>1</method_id>
		<submit_ts>1413894934</submit_ts>
		<date_submitted>1413894934</date_submitted>
		<date_updated>1413894968</date_updated>
		<date_exported></date_exported>
		<date_sent></date_sent>
		<confirmed>1</confirmed>
		<deleted>0</deleted>
		<payee>test</payee>
		<amount>5.00</amount>
		<pay>1</pay>
		<checked_for_duplicates>0</checked_for_duplicates>
		<id>1791977</id>
		<trans_id>test</trans_id>
		<mail_to_payee>test</mail_to_payee>
		<address>test</address>
		<address2>test</address2>
		<city>test</city>
		<state>test</state>
		<zip>12345</zip>
		<country>test</country>
		<reference>test</reference>
		<ref>test</ref>
		<memo>test</memo>
		<payee>test</payee>
		<amount>5.00</amount>
		<bank_name>tbn</bank_name>
		<acct_num>123</acct_num>
		<acct_route>321</acct_route>
		<fee>2.50</fee>
		<postage_fee>0.00</postage_fee>
		<extra_fee>0.00</extra_fee>
		</payment>
	</payments>
</wmc-response>

Payments

Description: This method is used to locate a payment by a specific ID

Class: payments

Method: byid

API Path: /payments/byid

Parameters: 

  • client_id*
  • akey*
  • payment_id* - unique payment identifier

Note: The XML response varies by payment type.

Sample Return: 

<wmc-response status="1">
	<payment id='1791977' status='6'>
		<payment_id>1791977</payment_id>
		<client_id>1</client_id>
		<client>smartpayables.com</client>
		<company_name>SmartPayables</company_name>
		<status_id>6</status_id>
		<status>Cancelled</status>
		<method_id>1</method_id>
		<submit_ts>1413894934</submit_ts>
		<date_submitted>1413894934</date_submitted>
		<date_updated>1413894968</date_updated>
		<date_exported></date_exported>
		<date_sent></date_sent>
		<confirmed>1</confirmed>
		<deleted>0</deleted>
		<payee>test</payee>
		<amount>5.00</amount>
		<pay>1</pay>
		<checked_for_duplicates>0</checked_for_duplicates>
		<id>1791977</id>
		<trans_id>test</trans_id>
		<mail_to_payee>test</mail_to_payee>
		<address>test</address>
		<address2>test</address2>
		<city>test</city>
		<state>test</state>
		<zip>12345</zip>
		<country>test</country>
		<reference>test</reference>
		<ref>test</ref>
		<memo>test</memo>
		<payee>test</payee>
		<amount>5.00</amount>
		<bank_name>tbn</bank_name>
		<acct_num>123</acct_num>
		<acct_route>321</acct_route>
		<fee>2.50</fee>
		<postage_fee>0.00</postage_fee>
		<extra_fee>0.00</extra_fee>
	</payment>
</wmc-response>

Payments

Description: This method is used to cancel one of your checks

Class: payments

Method: cancelcheck

API Path: /payments/cancelcheck

Parameters: 

  • client_id*
  • akey*
  • id* - the unique identifier for the check you wish to cancel

Note: The XML response varies by payment type.

Sample Return: 

<wmc-response status="1">
	<payment id='1791977' status='6'>
		<payment_id>1791977</payment_id>
		<client_id>1</client_id>
		<client>smartpayables.com</client>
		<company_name>SmartPayables</company_name>
		<status_id>6</status_id>
		<status>Cancelled</status>
		<method_id>1</method_id>
		<submit_ts>1413894934</submit_ts>
		<date_submitted>1413894934</date_submitted>
		<date_updated>1413894968</date_updated>
		<date_exported></date_exported>
		<date_sent></date_sent>
		<confirmed>1</confirmed>
		<deleted>0</deleted>
		<payee>test</payee>
		<amount>5.00</amount>
		<pay>1</pay>
		<checked_for_duplicates>0</checked_for_duplicates>
		<id>1791977</id>
		<trans_id>test</trans_id>
		<mail_to_payee>test</mail_to_payee>
		<address>test</address>
		<address2>test</address2>
		<city>test</city>
		<state>test</state>
		<zip>12345</zip>
		<country>test</country>
		<reference>test</reference>
		<ref>test</ref>
		<memo>test</memo>
		<payee>test</payee>
		<amount>5.00</amount>
		<bank_name>tbn</bank_name>
		<acct_num>123</acct_num>
		<acct_route>321</acct_route>
		<fee>2.50</fee>
		<postage_fee>0.00</postage_fee>
		<extra_fee>0.00</extra_fee>
	</payment>
</wmc-response>

Payments

Description: This method confirms one or more payments

Class: payments

Method: confirm

API Path: /payments/confirm

Parameters: 

  • client_id*
  • akey*
  • item* - one or multiple unique item identifiers (for multiples, use standard form posting rules for data arrays and pass each item_id as item_id[]. Item_id must include payment type. To confirm a single payment with an id of 25, set item_id to 'single-25.' To confirm a payment file with an ID of 25, set item_id to 'file-25.'

Note: The XML response varies by payment type and by how the payment information is confirmed. The response status is 1 if the transaction was successful. There will be "need_funds" elements in the root XML if funds need to be added to the account for the payment(s) to process.

This example confirms three payments. Each item value was obtained from the payment_id node returned by the respective payments/add method call:

  • item[0]=1309164
  • item[1]=1309160
  • item[2]=1309163

Bundling 

If you wish to bundle multiple checks into one package, please add the following parameters to your confirm call (please note this is only applicable to checks, and also does not need to be transmitted thru these parameters if you are using file based bundling fields)

  • bundle_opt_in* - please set this field to a value of 1 to indicate you wish to bundle these checks
  • bundle_mail_to*  - recipient field used in postage
  • bundle_address*  - address line 1 field used in postage
  • bundle_address_2*  - address line 2 field used in postage
  • bundle_city*  - city field used in postage
  • bundle_state*  - state field used in postage
  • bundle_zip*  - zip field used in postage
  • bundle_country*  - country field used in postage
  • bundle_check_contents*  - please provide one of the following options
    • envelope - this indicates you wish to have every check in this bundle enveloped
    • loose - this indicates you wish to have every check in this bundle loose

Sample Return: 

<wmc-response status="1">
	<payments>
		<payment id='1309164' status='0'>
			<payment_id>1309164</payment_id>
			<client_id>1</client_id>
			<client>SmartPayables</client>
			<company_name>SmartPayables</company_name>
			<status_id>0</status_id>
			<method_id>5</method_id>
			<submit_ts>1378436261</submit_ts>
			<date_submitted>1378436261</date_submitted>
			<date_updated></date_updated>
			<date_exported></date_exported>
			<date_sent></date_sent>
			<confirmed>1</confirmed>
			<deleted>0</deleted>
			<payee>John Smith</payee>
			<amount>555.55</amount>
			<pay>1</pay>
			<id>1309164</id>
			<acct_num>123456789</acct_num>
			<acct_route>036001808</acct_route>
			<additional_info></additional_info>
			<address>1 Main Street</address>
			<address2></address2>
			<bank_country>US</bank_country>
			<bank_name>TD Bank</bank_name>
			<bank_route></bank_route>
			<acct_name>Felix Cullen</acct_name>
			<branch_info></branch_info>
			<city>Yardley</city>
			<trans_id>55555</trans_id>
			<corr_bank_acct></corr_bank_acct>
			<corr_bank_city></corr_bank_city>
			<corr_bank_country></corr_bank_country>
			<corr_bank_name></corr_bank_name>
			<corr_bank_swift></corr_bank_swift>
			<country>usa</country>
			<first_name></first_name>
			<iban></iban>
			<last_name></last_name>
			<notes></notes>
			<payee_email></payee_email>
			<payment_type></payment_type>
			<reference>Testing</reference>
			<ref>Testing</ref>
			<sort_code></sort_code>
			<taxid></taxid>
			<state>PA</state>
			<swift_code></swift_code>
			<zip>19067</zip>
			<fee>0.00</fee>
			<postage_fee>0.00</postage_fee>
			<extra_fee>0.00</extra_fee>
		</payment>
		<payment id='1309160' status='0'>
			<payment_id>1309160</payment_id>
			<client_id>1</client_id>
			<client>Quantum Techniques</client>
			<company_name>SmartPayables</company_name>
			<status_id>0</status_id>
			<method_id>1</method_id>
			<submit_ts>1378433857</submit_ts>
			<date_submitted>1378433857</date_submitted>
			<date_updated></date_updated>
			<date_exported></date_exported>
			<date_sent></date_sent>
			<confirmed>1</confirmed>
			<deleted>0</deleted>
			<payee>John Smith</payee>
			<amount>300.00</amount>
			<pay>1</pay>
			<id>1309160</id>
			<acct_class>Personal</acct_class>
			<acct_num>123456789</acct_num>
			<acct_route>036001808</acct_route>
			<acct_type>Checking</acct_type>
			<address>1 Main Street</address>
			<address2></address2>
			<bank_name>TD Bank</bank_name>
			<city>Yardley</city>
			<trans_id>54321</trans_id>
			<country>usa</country>
			<first_name></first_name>
			<last_name></last_name>
			<acct_name></acct_name>
			<notes></notes>
			<payee_email></payee_email>
			<payment_type></payment_type>
			<reference>Testing</reference>
			<ref>Testing</ref>
			<taxid></taxid>
			<state>PA</state>
			<zip>19067</zip>
			<fee>0.00</fee>
			<postage_fee>0.00</postage_fee>
			<extra_fee>0.00</extra_fee>
		</payment>
		<payment id='1309163' status='0'>
			<payment_id>1309163</payment_id>
			<client_id>1</client_id>
			<client>SmartPayables</client>
			<company_name>SmartPayables</company_name>
			<status_id>0</status_id>
			<method_id>3</method_id>
			<submit_ts>1378435790</submit_ts>
			<date_submitted>1378435790</date_submitted>
			<date_updated></date_updated>
			<date_exported></date_exported>
			<date_sent></date_sent>
			<confirmed>1</confirmed>
			<deleted>0</deleted>
			<payee>John Smith</payee>
			<amount>550.00</amount>
			<pay>1</pay>
			<id>1309163</id>
			<trans_id>23498</trans_id>
			<first_name></first_name>
			<last_name></last_name>
			<notes></notes>
			<payee_email></payee_email>
			<payment_type></payment_type>
			<taxid></taxid>
			<fee>0.00</fee>
			<postage_fee>0.00</postage_fee>
			<extra_fee>0.00</extra_fee>
		</payment>
	</payments>
</wmc-response>

Payments

Description: This method is used to look up any available IMb tracking data we have

Class: payments

Method: imb-tracking-lookup

API Path: /payments/imb-tracking-lookup

Parameters: 

  • client_id*
  • akey*
  • payment_id* - payment ID to look up

Note: The XML response varies by payment type.

Sample Return: 

<wmc-response status="1">
<imb_tracking_data>
	<payment_id>1</payment_id>
	<date_entered_mail_stream></date_entered_mail_stream>
	<date_estimated_delivery></date_estimated_delivery>
	<marked_for_return>0</marked_for_return>
</imb_tracking_data>
</wmc-response>

Payments

Description: This method is used to locate a payment by a singular date, or a date range (from, to)

Class: payments

Method: info

API Path: /payments/info

Parameters: 

  • client_id*
  • akey*
  • payment_id* - either one or multiple unique identifiers (for multiples, use standard form posting rules for data arrays and pass each deposit_id as payment_id[])

Note: The XML response varies by payment type.

Sample Return: 

<wmc-response status="1">
	<payments>
		<payment id='1791977' status='6'>
			<payment_id>1791977</payment_id>
			<client_id>1</client_id>
			<client>smartpayables.com</client>
			<company_name>SmartPayables</company_name>
			<status_id>6</status_id>
			<status>Cancelled</status>
			<method_id>1</method_id>
			<submit_ts>1413894934</submit_ts>
			<date_submitted>1413894934</date_submitted>
			<date_updated>1413894968</date_updated>
			<date_exported></date_exported>
			<date_sent></date_sent>
			<confirmed>1</confirmed>
			<deleted>0</deleted>
			<payee>test</payee>
			<amount>5.00</amount>
			<pay>1</pay>
			<checked_for_duplicates>0</checked_for_duplicates>
			<id>1791977</id>
			<trans_id>test</trans_id>
			<mail_to_payee>test</mail_to_payee>
			<address>test</address>
			<address2>test</address2>
			<city>test</city>
			<state>test</state>
			<zip>12345</zip>
			<country>test</country>
			<reference>test</reference>
			<ref>test</ref>
			<memo>test</memo>
			<payee>test</payee>
			<amount>5.00</amount>
			<bank_name>tbn</bank_name>
			<acct_num>123</acct_num>
			<acct_route>321</acct_route>
			<fee>2.50</fee>
			<postage_fee>0.00</postage_fee>
			<extra_fee>0.00</extra_fee>
		</payment>
	</payments>
</wmc-response>

Payments

Description: This method is used to track a payment

Class: payments

Method: track_payment

API Path: /payments/track_payment

Parameters: 

  • client_id*
  • akey*
  • tracking - tracking number (this is required either by itself or you must provide all of the following parameters: payee, addr, zip)
  • payee - the payee of the payment you wish to track
  • addr - the address line of the payment you wish to track
  • zip - the zip code of the payment you wish to track

The return data will be a JSON encoded representation of the payment.

Payments

Description: Used to upload payment files

Class: payments

Method: upload

API Path: /payments/upload

Parameters: 

  • client_id*
  • akey*
  • method_id* - payment method identifier (2 = Check, 1 = ACH)
  • userfile* - file uploaded via http post; similar to using a file input field on a form
  • expedite_request - if it is past our 9 AM cut off time but before 11 AM, set this field to a value of 1 to indicate you wish to place a request in to send this payment past dead line, please note this is not a guaranteed service

Note: The XML response varies by payment type. In this sample, we are using a file with 2 checks. You can process the response and use the Confirm method by extracting the fileid attribute from the payment tag.

Check Inserts

When uploading check inserts through our file based system, you must tell our system if you are uploading a single blanket insert PDF file to be sent with all checks within the file, or if you are using a file field that has been mapped by a member of our support team to match the PDF filename you upload, please see parameters to include below in these cases:

  • insert_include* - this field should only be set when you wish to include insert PDF files, and can be set to single, to send a single PDF with all checks contained, or "multiple" to use file based mapping to match PDF filename to those you upload
  • insert_file_single - if you wish to upload a single insert PDF file to be sent with your checks, please use this field to upload your PDF via HTTP upload
  • insert_file_multiple - if you wish to upload multiple insert PDF file to be matched against a file column containing PDF filename, please use this field to upload your PDFs via HTTP upload
  • insert_print* - please provide how you want this insert to be printed within this field, using one of the following values
    • black_white - Print using Black & White
    • black_white_duplex - Print using Black & White Duplex
    • color - Print using Color
    • color_duplex - Print using Color Duplex

Payment files must not contain more than 5,000 payments. Any more than this will be rejected with an error message. Please splice your files into multiple and upload one at a time to upload in excess of 5,000 payments at one time.

Sample Return: 

<wmc-response status="1" fileid="13840">
	<payments>
		<payment id='1899463' status='0'>
			<payment_id>1899463</payment_id>
			<client_id>1</client_id>
			<client>smartpayables.com</client>
			<company_name>SmartPayables</company_name>
			<status_id>0</status_id>
			<status>Pending Release</status>
			<method_id>2</method_id>
			<submit_ts>1420204037</submit_ts>
			<date_submitted>1420204037</date_submitted>
			<date_updated></date_updated>
			<date_exported></date_exported>
			<date_sent></date_sent>
			<confirmed>0</confirmed>
			<deleted>0</deleted>
			<payee>Payee One</payee>
			<amount>1.50</amount>
			<pay>1</pay>
			<checked_for_duplicates>0</checked_for_duplicates>
			<id>1899463</id>
			<postage_code>1</postage_code>
			<reference>Ref1</reference>
			<ref>Ref1</ref>
			<address>Addr</address>
			<city>City</city>
			<state>AL</state>
			<zip>12345</zip>
			<country>US</country>
			<taxid></taxid>
			<memo>A memo to go with it</memo>
			<trans_id></trans_id>
			<fee>0.00</fee>
			<postage_fee>0.00</postage_fee>
			<extra_fee>0.00</extra_fee>
		</payment>
		<payment id='1899464' status='0'>
			<payment_id>1899464</payment_id>
			<client_id>1</client_id>
			<client>smartpayables.com</client>
			<company_name>SmartPayables</company_name>
			<status_id>0</status_id>
			<status>Pending Release</status>
			<method_id>2</method_id>
			<submit_ts>1420204037</submit_ts>
			<date_submitted>1420204037</date_submitted>
			<date_updated></date_updated>
			<date_exported></date_exported>
			<date_sent></date_sent>
			<confirmed>0</confirmed>
			<deleted>0</deleted>
			<payee>Payee Two</payee>
			<amount>2.00</amount>
			<pay>1</pay>
			<checked_for_duplicates>0</checked_for_duplicates>
			<id>1899464</id>
			<postage_code>1</postage_code>
			<reference>Ref2</reference>
			<ref>Ref2</ref>
			<address>Addr2</address>
			<city>City2</city>
			<state>AL</state>
			<zip>12345</zip>
			<country>US</country>
			<taxid></taxid>
			<memo>A memo to go with it</memo>
			<trans_id></trans_id>
			<fee>0.00</fee>
			<postage_fee>0.00</postage_fee>
			<extra_fee>0.00</extra_fee>
		</payment>
	</payments>
</wmc-response>

Payments

Description: This method is used to upload a CSV file containing Posted/Cashed checks

Class: payments

Method: upload_checks_csv

API Path: /payments/upload_checks_csv

File Format: Default format is CSV, comma delimited, no headers. Bank account ID can be left blank if not required. See columns:

amount,check number,date,bank account id

Parameters: 

  • client_id*
  • akey*
  • userfile* - file uploaded via http post; similar to using a file input field on a form

Sample Return: 

<wmc-response status="1">
	<payment id='1791977' status='5'>
		<status_id>5</status_id>
		<status>Posted / Cashed</status>
		<amount>$100.00</amount>
	</payment>
</wmc-response>