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

FieldData TypeRequired/Optional /ConditionalDescription
transferIdentifierStringRequiredUnique identifier for a transfer.
transferTypeStringRequiredType of transfer.
currencyStringOptionalThe 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.
verificationIdentifierStringConditionalField only available with achPull transfers.
userIdentifierStringConditionalUnique identifier for the customer making the transfer. Field only available for achOut transfers.
transferRouteTransfer RouteRequiredContainer for transfer details.
fraudDataFraud DataRequiredContainer for the fraud data information.
transferDescriptionStringOptionalDescription of the transfer.
transactionAmountIntegerRequiredAmount of the transfer.
deliveryTypeString & IntegerOptionalType 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
sourceTransferEndpointEndpointRequiredTransfer endpoint for the source of the transfer.
bankAccountReferenceIdStringConditionalField available if it is an ACH transfer with a bankAccount type.
targetTransferEndpointACH EndpointRequiredContains the encrypted data of the endpoint (bank account) that the transfer is going to.
recurringTypeStringConditionalOptions: • “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.
bankAccountVerificationMethodStringConditionalVerification method used to authorize the transfer. See External Bank Verification Method for valid values.
bankAccountVerificationDateStringConditionalThe date the external bank account is verified.
bankAccountAuthorizationDateStringConditionalThe date the transfer is authorized.
transferEndpointTypeStringRequiredThe type of transfer endpoint. Options: • account • purse • programFundingSource except ACH transfer with bankAccount type
accountIdentifierStringConditionalField only available if the transferEndpointType is account.
encryptedBankAccountEncrypted DataConditionalField 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