API Documentation

Common Error Codes

The following are errors that can happen on any request to CorePro, depending on the request parameters, origin, intermediate network, etc. If present, these values will appear in the "errors" property of the envelope:

details

Code Message (en-US) HTTP Status Code Notes
50401 User is not authorized 401 Check your configuration for proper CorePro API Key and Secret values against those in CorePro Admin console. Existing ones may have expired.
50403 IP is not trusted 403 Check the IP of the request. If it is a valid IP, contact CorePro support to whitelist it.
50404 The requested resource was not found. 404 The route is invalid or is not supported in the version associated with your API Key.
50405 The requested HTTP method is not allowed. 405 The route accepts a different HTTP method - did you issue a POST when you should have issued a GET for a particular route?
50429 Rate limit exceeded 429 Too many requests within a certain timeslice for your API Key. Wait a small amount of time and retry the request. If this happens regularly, contact CorePro support to increase your rate limit (additional fee may be applied)
50500 Internal Server Error 500 CorePro is experiencing issues. Please share your requestId with CorePro support.
50501 Not Implemented 501 The route is invalid. Verify your code is calling a documented CorePro route.
50502 Bad Gateway 502 Network connectivity issues between your server and CorePro servers, or CorePro is down for maintenance. Investigate, and if issues persist, contact CorePro support.
50503 Service Unavailable 503 CorePro servers are unavailable. You will need to try your request later.
50504 Gateway Timeout 504 Network connectivity issues between your server and CorePro servers, or CorePro is down for maintenance. Investigate, and if issues persist, contact CorePro support.
50505 HTTP Version Not Supported 505 HTTP/1.1 must be specified when using CorePro. Change your code to issue HTTP/1.1 requests.
52998 Internal Server Error. Incident Id : {0} 500 This is the catch-all error number for an internal server error. Please contact support@corepro.io with the Incidient Id provided in the message.
58150 QualiFile service call error received. 500 The content of this error message may be replaced by the actual one received from the QualiFile service call.
59001 No VerificationFundsAccount configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59002 No RetailClearingAccount configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59003 No ProgramExternalAccount configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59004 No BankIncomeAccount configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59005 No RegDFeeAmtForExceedingMonthlyMax configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59006 No RegDMonthlyTransWithdrawCountMax configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59007 Internal to Internal transfer is disabled for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59008 AllowedAccountTypeId is not configured properly for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59009 Program {0} does not have recurring contributions enabled. 400 You are unable to do recurring contributions because it is disabled for your program.
59010 Program {0} is not configured to require external account verification. Call /externalAccount/create instead. 400 Call /externalAccount/create instead.
59011 Program {0} is configured to require external account verification. Call /externalAccount/initiate instead. 400 Call /externalAccount/initiate instead.
59012 Program {0} is missing a ProgramReport record for the given date range and program. 400 Your program is configured incorrectly. Contact support@corepro.io
59013 No ProgramClearingAccount configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59014 No MiscellaneousAccount configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59015 No GeneralJournalAccount configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59016 No CashAccount configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59017 No RetailExternalAccount configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59018 No ProgramEcode.PercentToClient configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59019 No ProgramEcode.PercentToCorePro configured for program {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59020 Program {0} does not have account type {1} enabled. 400 Your program is configured incorrectly. Contact support@corepro.io
59102 No ProgramClearingAccount linked to ProgramExternalAccount {0} 400 Your program is configured incorrectly. Contact support@corepro.io
59103 All card numbers are already allocated for Program {0}. 400 Your program is configured incorrectly. Contact support@corepro.io
59900 Could not convert {0} to {1}: {2}. Path '{3}', line {4}, position {5}. 400 Invalid value passed in for a JSON property. The value could not be converted to the proper type. {0} = JSON type, {1} = destination type, {2} = value, {3} = property name, {4} = line number, {5} = character position. e.g.: "Could not convert string to decimal: 11..04. Path 'recurringContributionAmount', line 9, position 42."
59901 Invalid JavaScript property identifier character: {0}. Path '{1}', line {2}, position {3}. 400 Property name is missing opening quote character ('"'). {0} = property name, {1} = line number, {2} = character position. e.g.: "Invalid JavaScript property identifier character: ". Path 'targetDate', line 13, position 7."
59902 Expected ':' but got: {0}. Path '{1}', line {2}, position {3}. 400 Property name is missing closing quote character ('"'). {0} = first character of property name, {1} = property name, {2} = line number, {3} = character position. e.g.: "Expected ':' but got: S. Path 'targetDate', line 13, position 11."
59903 Invalid character after parsing property name. Expected ':' but got: =. Path '{0}', line {1}, position {2}. 400 Attempting to use "=" instead of ":" to separate property name and its value. {0} = property name (typically the name of the previous property, not the one with the issue), {1} = line number, {2} = character position. e.g.: "Invalid character after parsing property name. Expected ':' but got: =. Path 'tag', line 11, position 18."
59904 Error reading {0}. Unexpected token: StartArray. Path '{1}', line {2}, position {3}. 400 Passed an array value to a property which is not an array. {0} = destination type, {1} = property name, {2} = line number, {3} = character position. e.g.: "Error reading string. Unexpected token: StartArray. Path 'tag', line 10, position 11."
59905 Error parsing NaN value. Path '{0}', line {1}, position {2}. 400 Attempting to pass null for a property value, but using an invalid casing (such as NULL or Null). {0} = property name, {1} = line number, {2} = character position. e.g.: "Error parsing NaN value. Path 'tag', line 10, position 10."
59906 After parsing a value an unexpected character was encountered: ;. Path '{0}', line {1}, position {2}. 400 Attempting to use a semicolon (;) where a comma (,) should be used. {0} = property name, {1} = line number, {2} = character position. e.g.: "After parsing a value an unexpected character was encountered: ;. Path 'customerId', line 2, position 22."
59949 (Message varies) 400 A generic JSON parsing error occurred. See message for details. i.e. The JSON payload is not structured properly in some way.
59950 Unexpected end when deserializing object. Path '{0}', line {1}, position {2}. 400 Closing curly brace ("}") is missing in JSON payload. {0} = property name, {1} = line number, {2} = character position. e.g.: "Unexpected end when deserializing object. Path 'type', line 15, position 1."
59951 Error converting value "{0}" to type '{1}'. Path '', line {2}, position {3}. 400 Opening curly brace ("}") is missing in JSON payload. {0} = first property name in payload, {1} = (varies, ignore), {2} = line number, {3} = character position. e.g.: "Error converting value \"customerId\" to type 'CorePro.Business.Account'. Path '', line 2, position 15."
59952 Value for property '{0}' is not formatted as a valid ISO-8601 DateTime. Example value=2015-01-31T22:43:21.123+00:00 400 The value for the property is not formatted as an ISO-8601 date. e.g.: "Value for property 'targetDate' is not formatted as a valid ISO-8601 DateTime. Example value=2015-01-31T22:43:21.123+00:00"
59953 Value for property '{0}' is not formatted as a valid boolean. Valid values=true,false 400 The value for the property is not formatted as a boolean value. e.g.: "Value for property 'isCloseable' is not formatted as a valid boolean. Valid values=true,false"
59954 Value for property '{0}' is not formatted as a valid decimal (precision up to 2). Example value=1234.56 400 The value for the property is not formatted as a decimal value. e.g.: "Value for property 'targetAmount' is not formatted as a valid decimal (precision up to 2). Example value=1234.56"
59955 Value for property '{0}' is not formatted as a valid decimal (precision up to 11). Example value=1234.56789012345 400 The value for the property is not formatted as a decimal value. e.g.: "Value for property 'interestRateMonthly' is not formatted as a valid decimal (precision up to 2). Example value=1234.56789012345"
59956 Value for property '{0}' is not acceptable. Specifics: {1} 400 The value for the property could not be cast properly. e.g.: "Value for property 'customerId' is not acceptable. Specifics: Input string '12548a' is not a valid integer. Path 'customerId', line 2, position 23."
59957 Missing a closing curly brace. Specifics: {0} 400 JSON payload is missing a closing curly brace. e.g.: "Missing a closing curly brace. Unexpected end when deserializing object. Path 'type', line 12, position 1."
59958 Missing an opening curly brace. Specifics: {0} 400 JSON payload is missing an opening closing curly brace. e.g.: "Missing an opening curly brace. Specifics: Error converting value "customerId" to type 'CorePro.Business.Account'. Path '', line 2, position 15."
59999 (Message varies) 400 A generic JSON deserialization error occurred. See message for details. i.e. The JSON payload is not structured properly in some way.
60001 Customer id {0} is invalid. 400 Provide a valid customerId in the request
60002 Customer id {0} is inactive. 400 An inactive customer cannot perform any actions in CorePro. Redirect the user to a page informing them of this.
60003 Customer id {0} is not in a verified status. 400 An unverified customer cannot perform any actions in CorePro (except call /customer/verify). Redirect the user to a page informing them of this.
60004 Customer id {0} is locked. 400 An locked customer cannot perform any actions in CorePro. Redirect the user to a page informing them of this.
60005 Customer id {0} is marked as deceased. 400 An deceased customer cannot perform any actions in CorePro. Redirect the user to a page informing them of this.

Transaction

A transaction represents any transferral of funds via CorePro. This includes requests via the /transfer/create route, or interest paid, or manual adjustments, or incoming ACH requests, among others.

The transaction resource is used for retrieving a list of transactions. Transactions that are initiated via the /transfer/create route with external bank accounts (or via a recurring contribution) can be voided as long as the ACH request has not yet been delivered to NACHA.

transaction Object

Represents a single transaction in CorePro.

details

Property Data Type
(length)
Description
transactionCount integer The total transactions that meet your query criteria. Note only a single page is returned in one call. See /transaction/list route definition for more information.
transactionId long integer (64-bit integer) The unique identifier created by CorePro for a particular transaction.
masterId long integer (64-bit integer) The unique identifier created by CorePro used to group related transactions together. Examples: an ACH withdrawal and a subsequent return. A debit card authorization and its corresponding completion(s).
customerId integer Customer who owns the Bank Account
type string (50) A human-readable description of the type of transaction. Example values include (but are not limited to):
  • CorePro Deposit
  • CorePro Withdrawal
  • Internal CorePro Transfer
  • Interest Paid
  • CorePro Recurring Withdrawal
  • Manual Adjustment
  • Interest Adjustment
typeCode string (6) A programmatic code for the type of transaction. For full detail, see Transaction Types
tag string (50) The program-wide unique identifier provided by the caller at /transfer/create time. CorePro does not generate this value.
friendlyDescription string (255) A human-readable description of the transaction. This is automatically generated by CorePro driven by the typeCode of the transaction.
nachaDescription string (255)

Deprecated; equivalent to description.

description string (255) A synonym for nachaDescription. Represents a client-specified description of the transaction.
  • If transaction was received from a NACHA file (typeCode is UNKWTH, UNKDEP, UNKPRG), this property contains the description verbatim from the NACHA file. By law, this description must be displayed to the end user.
  • If transaction was received from an ISO-8583 interface (i.e. debit card transaction), this property contains description verbatim from DataElement 43 (Card Acceptor Name/Location) of ISO-8583 interface plus details of any fees or surchages that may have been incurred. By law, this description must be displayed to the end user
  • Otherwise, the transaction was received from a call to CorePro API or it was line item in the Bulk Transfer File. This property contains the description verbatim passed by the client code.
status string (50) The status of the transaction. Possible values include:
  • Initiated - Transaction has been created but not yet put into a NACHA file
  • Pending - Transaction has been created and put into a NACHA file
  • Settled - Transaction has been posted to the account
  • Voided - Transaction has been voided
createdDate datetime The exact date and time the transaction was created. Returned in time zone local to the bank.
amount decimal The amount of funds the transaction represents.
settledDate datetime The exact date and time the transaction was settled. Returned in time zone local to the bank.
availableDate datetime The exact date and time the funds associated with the transaction became available. Returned in time zone local to the bank.
voidedDate datetime The exact date and time the transaction was voided. Returned in time zone local to the bank.
returnCode string (10) The NACHA return code representing why the transaction was returned.
feeCode string (3) The code of the fee this transaction represents. Possible values are:
  • RGD - Regulation D Fee
  • RTN - Return Item Fee
  • NSF - Insufficient Funds Fee
feeDescription string (50) The description of the fee this transaction represents. See above for possible values.
cardId integer The CorePro-generated identifier for the card that created the transaction. Will be empty or 0 if this transaction is not tied to a card.
subTypeCode string (6)

The code of the subtype for this transaction. Possible values are TBD

Currently applicable only to ISO-8583 based transactions (card).

subType string (50)

The description of the subtype for this transaction. See above for possible values.

Currently applicable only to ISO-8583 based transactions (card).

institutionName string (50) The name of the financial institution that originated the transaction. Will be populated when possible, but is not always available for all transaction types.

get

Retrieve a list of transactions related to the given transactionId

Note: When you provide an invalid identifier (id,tag, or emailAddress), all routes ending with /get returns 400 (Bad Request).

GET /transaction/get/{customerId}/{transactionId}

Request Parameters

customerId Required Customer ID (returned when customer originally created)
transactionId Required Transaction ID (returned when transaction was created)

Response Data

A list of transaction Objects
The list is ordered by transaction settledDate desc.
All transactions, regardless of any flags or status, will be returned.

This output is a list because multiple transaction objects may be tied to the given transactionId. This is because a single call to /transfer/create can result in multiple transactions. e.g. In the situation where a fee is applied (such as an NSF during NACHA file processing). A fee is considered a separate, but instrinsically related, transaction.

Error Codes

Code Message (en-US) Notes
1-60000 Any "Common Error Code" may occur. See Common Error Codes
63201 TransactionId is a required field.
63202 Invalid TransactionId specified.

Example

Request
GET /transaction/get/2734/36863
Authorization: Basic PutBase64TokenHere
Response
200
{
  "data": [
    {
      "amount": 3.0,
      "availableDate": "2014-12-16T13:25:23.611-06:00",
      "createdDate": "2014-12-16T13:25:23.611-06:00",
      "customerId": 2734,
      "friendlyDescription": "Transfer from lyonstest123 *9873 to test 1",
      "isCredit": true,
      "nachaDescription": "",
      "settledDate": "2014-12-16T13:25:23.611-06:00",
      "status": "Settled",
      "tag": "fdasfdsa",
      "transactionCount": 1,
      "transactionId": 36863,
      "type": "CorePro Deposit",
      "typeCode": "CPDEP"
    }
  ],
  "errors": [],
  "requestId": "f7ef3b1e-184e-4c1f-98ba-ec95a6085de8",
  "status": 200
}

getByTag

Retrieve a list of transactions related to the given transaction tag

Note: When you provide an invalid identifier (id,tag, or emailAddress), all routes ending with /getByTag returns 400 (Bad Request).

GET /transaction/getByTag/{customerId}/{tag}

Request Parameters

customerId Required Customer ID (returned when customer originally created)
tag Required The value of the transaction tag property supplied when the transaction was created via /transfer/create

Response Data

A list of transaction Objects
The list is ordered by transaction settledDate desc.
All transactions, regardless of any flags or status, will be returned.

This output is a list because multiple transaction objects may be tied to the given tag. This is because a single call to /transfer/create may result in multiple transactions. e.g. In the situation where a fee is applied (such as an NSF during NACHA file processing). A fee is considered a separate, but instrinsically related, transaction.

Error Codes

Code Message (en-US) Notes
1-60000 Any "Common Error Code" may occur. See Common Error Codes
65601 Tag ''{0}'' is invalid.
65602 Tag must be specified.

Example

Request
GET /transaction/getByTag/2734/E6C8A2F8-2269-4D73-82AA-269DD990CDB0
Authorization: Basic PutBase64TokenHere
Response
200
{
  "data": [
    {
      "amount": 3.0,
      "availableDate": "2014-12-16T13:25:53.611-06:00",
      "createdDate": "2014-12-16T13:25:53.611-06:00",
      "customerId": 2734,
      "friendlyDescription": "Transfer from lyonstest123 *9873 to test 1",
      "isCredit": true,
      "nachaDescription": "",
      "settledDate": "2014-12-16T13:25:53.611-06:00",
      "status": "Settled",
      "tag": "E6C8A2F8-2269-4D73-82AA-269DD990CDB0",
      "transactionCount": 1,
      "transactionId": 36865,
      "type": "CorePro Deposit",
      "typeCode": "CPDEP"
    }
  ],
  "errors": [],
  "requestId": "dfd1dbd3-73e8-4db0-97f6-d03ef2eb7683",
  "status": 200
}

list

Retrieve a list of transactions restricted by the given parameters

GET /transaction/list/{customerId}/{accountId}/{beginDate}/{endDate}?pageNumber={0}&pageSize={200}

Request Parameters

customerId Required Customer ID (returned when customer was originally created)
accountId Required Account ID (returned when bank account was originally created)
beginDate Optional Date of earliest transaction to return. Formatted as "YYYY-MM-DD". E.g.: 2014-03-01
endDate Optional Date of latest transaction to return. Formatted as "YYYY-MM-DD". E.g.: 2014-04-01
pageNumber Optional (supplied via the query string) Which page of the transaction list to return. Default is 0
pageSize Optional (supplied via the query string) Size of one page of the transactions to return. Default is 200. Max is 200

Response Data

A list of transaction Objects
The list is ordered by transaction settledDate desc.
All transactions, regardless of any flags or status, will be returned.

Error Codes

Code Message (en-US) Notes
1-60000 Any "Common Error Code" may occur. See Common Error Codes
63501 Begin Date must be a date prior to End Date.

Example

Request
GET /transaction/list/333/336/2014-03-01/2014-04-01?pageNumber=0&pageSize=200
Authorization: Basic PutBase64TokenHere
Response
200
{
  "data": [
    {
      "amount": 500.0000,
      "createdDate": "2014-03-23T09:07:19.716-05:00",
      "customerId": 333,
      "friendlyDescription": "Card to MoneyDrawer",
      "nachaDescription": "",
      "settledDate": "2014-03-23T09:07:19.716-05:00",
      "status": "Settled",
      "tag": "",
      "transactionCount": 2,
      "transactionId": 1878,
      "type": "CorePro Deposit",
      "typeCode": "CPDEP"
    },
    {
      "amount": 2.0000,
      "createdDate": "2014-03-23T09:08:08.719-05:00",
      "customerId": 333,
      "friendlyDescription": "MoneyDrawer to Card",
      "nachaDescription": "",
      "settledDate": "2014-03-23T09:08:08.719-05:00",
      "status": "Settled",
      "tag": "ItoE1",
      "transactionCount": 2,
      "transactionId": 1883,
      "type": "CorePro Withdrawal",
      "typeCode": "CPWTH"
    }
  ],
  "errors": [],
  "requestId": "2dd82a44-02b0-49cb-94e3-ca454bcdd276",
  "status": 200
}

Ready to start a conversation?

Email Us