Assessment
Assessment APIs can be used for assessing transfer updates and ACH transfers.
Assessment API Endpoints
Assess Transfer Update
API Call Structure
PUT /programs/{programCode}/transfers/{transferIdentifier}/assessment
Request Body
{
"transferAuthorizationType": "string",
"transferEndpoint": {
"isSource": true,
"transferEndPointType": "string",
"identifier": "string",
"encryptedCardData": {
"version": "string",
"ephemeralPublicKey": "string",
"publicKeyHash": "string",
"data": "string"
}
},
"debitToNegative": true,
"device": {
"deviceId": "string",
"deviceMake": "string",
"deviceVersion": "string",
"deviceOS": "string",
"deviceOSVersion": "string",
"ipAddress": "string",
"customerIP": "string"
}
}
Response Body
{
"limits": [
{
"type": "string",
"frequency": "string",
"minimumAmount": 0,
"maximumAmount": 0,
"amountRemaining": 0,
"initialTransferDateTime": "2022-03-24T21:12:29.800Z",
"subsequentTransferAllowed": true,
"count": 0
}
],
"responseDetails": [
{
"code": 0,
"subCode": 0,
"description": "string",
"url": "string"
}
]
}
Assess ACH Transfer
This endpoint allows Partners to verify the ACH Pull limits and frequency, delivery type, and the bank account verification method for ACH authorization details.
API Call Structure
POST /programs/{programCode}/transfers/assessment/ach
Sample Request Body
{
"transferIdentifier":"a8630298-47c2-48e4-98d3-d041570038b7",
"transferType":"string",
"currency":"string",
"verificationIdentifier":"f2ad28e0-5726-48fd-ae5e-6d73d4933b3d",
"userIdentifier":"c19f0683-07fe-4265-bfe0-7ca16a3bcdd3",
"transferRoute":{
"transactionAmount":0,
"deliveryType":"string",
"sourceTransferEndpoint":{
"transferEndpointType":"string",
"accountIdentifier":"7c80bfe5-aa53-4fd7-aabc-84e8c754d267"
},
"targetTransferEndpoint":{
"encryptedBankAccount":{
"version":"string",
"ephemeralPublicKey":"string",
"publicKeyHash":"string",
"data":"string"
},
"bankAccountReferenceId":"string"
},
"recurringType":"string",
"bankAccountVerificationMethod":"string",
"bankAccountVerificationDate":"string",
"bankAccountAuthorizationDate":"string"
},
"fraudData":{
},
"transferDescription":"string"
}
Request Parameters
Field | Data Type | Required/Optional /Conditional | Description |
---|---|---|---|
transferIdentifier | String | Required | Unique identifier for a transfer. |
transferType | String | Required | Type of transfer. |
currency | String | Optional | The source currency of the transfer. Must be a valid 3-character ISO code for the program for which the call is being made. Only USD is supported for all programs. |
verificationIdentifier | String | Conditional | Field only available with achPull transfers. |
userIdentifier | String | Conditional | Unique identifier for the customer making the transfer. Field only available for achOut transfers. |
transferRoute | Transfer Route | Required | Container for transfer details. |
fraudData | Fraud Data | Required | Container for the fraud data information. |
transferDescription | String | Optional | Description of the transfer. |
transactionAmount | Integer | Required | Amount of the transfer. |
deliveryType | String & Integer | Optional | Type of delivery. Options: • sameDay • nextDay • threeDay • default: Partner’s default deliveryType • 0 – Partner default deliveryType • 1 – Same day • 2 – Next day • 3 – 3 business days • 4 – 4 business days • And so forth |
sourceTransferEndpoint | Endpoint | Required | Transfer endpoint for the source of the transfer. |
bankAccountReferenceId | String | Conditional | Field available if it is an ACH transfer with a bankAccount type. |
targetTransferEndpoint | ACH Endpoint | Required | Contains the encrypted data of the endpoint (bank account) that the transfer is going to. |
recurringType | String | Conditional | Options: • “R” for recurring transaction • “S” for single transaction (one-time payment Options: If the recurringType is not provided, the system will treat it as a one-time payment. |
bankAccountVerificationMethod | String | Conditional | Verification method used to authorize the transfer. See External Bank Verification Method for valid values. |
bankAccountVerificationDate | String | Conditional | The date the external bank account is verified. |
bankAccountAuthorizationDate | String | Conditional | The date the transfer is authorized. |
transferEndpointType | String | Required | The type of transfer endpoint. Options: • account • purse • programFundingSource except ACH transfer with bankAccount type |
accountIdentifier | String | Conditional | Field only available if the transferEndpointType is account. |
encryptedBankAccount | Encrypted Data | Conditional | Field available if it is an ACH transfer with a bankAccount type. |
Sample Response Body
{
"accountHolders":[
{
"accountIdentifier":"848822fd-d6a7-4ca0-bf6e-4a268e6484b6",
"userIdentifier":"4b3816e5-4903-4332-9db9-73d015e20be1",
"pendingkycGate":"string"
}
],
"availableBalance":0,
"limits":[
{
"type":"string",
"frequency":"string",
"minimumAmount":0,
"maximumAmount":0,
"amountRemaining":0,
"initialTransferDateTime":"2021-01-03T19:36:19.121Z",
"subsequentTransferAllowed":true,
"count":0
}
],
"fees":[
{
"type":"string",
"frequency":"string",
"amount":0
}
],
"prerequisites":[
"string"
],
"netAmount":0,
"responseDetails":[
{
"code":0,
"subCode":0,
"description":"Success",
"url":"http://tbd"
}
]
}
Response Parameters
Field | Description |
---|---|
accountHolders | Container for account information. |
accountIdentifier | Unique identifier for the account. |
userIdentifier | Unique identifier for the customer on the account. |
pendingkycGate | Represents either an initial kycGate (if KYC was not executed yet) or a cure (i.e. KYC has failed) that must be executed to complete the registration of an account or cure an account. |
availableBalance | Represents the balance available for spending. It is the ledger (posted) balance less any pending debits (i.e. authorizations). |
limits | Container for the transfer limits information. |
type | Type of limit (i.e. initial pull limit, subsequent pull, balance limit, or linked account). |
frequency | Frequency in which the limit is to be applied. |
minimumAmount | The minimum Amount allowed. |
maximumAmount | The maximum Amount allowed. |
amountRemaining | Amount remaining as per the limit. |
initialTransferDateTime | The date and time of the first transfer. |
subsequentTransferAllowed | The boolean for subsequent transfer. |
count | The count per limit type. Example: If the limit type is linked accounts, the count can be max 1 account (number of accounts that can be linked for the ACH Pull feature). |
fees | Container for the transfer fee assessment information. |
type | The type of fee. |
frequency | The frequency of fee(s), if applicable. |
amount | The fee amount. |
prerequisites | An endpoint to retrieve the feature eligibility. This pairs with the Get Feature Library method call and will return records for features NOT eligible for the user OR features that ARE eligible BUT have prerequisites. The absence of a record indicates that the feature has no restrictions. Example: EmailVerificationRequired, ChangeAddressRequired |
Updated 10 months ago