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

FieldDescription
accountHoldersContainer for account information.
accountIdentifierUnique identifier for the account.
userIdentifierUnique identifier for the customer on the account.
pendingkycGateRepresents 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.
availableBalanceRepresents the balance available for spending. It is the ledger (posted) balance less any pending debits (i.e. authorizations).
limitsContainer for the transfer limits information.
typeType of limit (i.e. initial pull limit, subsequent pull, balance limit, or linked account).
frequencyFrequency in which the limit is to be applied.
minimumAmountThe minimum Amount allowed.
maximumAmountThe maximum Amount allowed.
amountRemainingAmount remaining as per the limit.
initialTransferDateTimeThe date and time of the first transfer.
subsequentTransferAllowedThe boolean for subsequent transfer.
countThe 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).
feesContainer for the transfer fee assessment information.
typeThe type of fee.
frequencyThe frequency of fee(s), if applicable.
amountThe fee amount.
prerequisitesAn 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