mutation ValidateBankAccount($validateBankAccountInput: ValidateBankAccountInput!) {
validateBankAccount(validateBankAccountInput: $validateBankAccountInput) {
errors {
... on InternalServiceError {
dateTimeUtc
errorDateTime
message
processorResponseCode
transactionId
}
... on AcceptorNotFoundError {
dateTimeUtc
errorDateTime
message
organizationId
presenterId
}
... on RuleInViolationError {
advice
dateTimeUtc
errorDateTime
explanationOfRule
message
}
... on TimeoutOnNetworkResponseError {
attemptedNetwork
dateTimeUtc
errorDateTime
message
processorResponseCode
}
... on ValidationFailureError {
dateTimeUtc
errorDateTime
fieldName
fieldPath
message
}
... on TokenNotFoundError {
dateTimeUtc
errorDateTime
message
processorResponseCode
transactionId
}
... on InvalidTokenError {
dateTimeUtc
deTokenizedPaymentMethodType
errorDateTime
expectedPaymentMethodType
message
}
... on RouteNotFoundError {
boardedPaymentBrandsForAcceptor
dateTimeUtc
errorDateTime
message
paymentBrand
}
}
validateBankAccountResponse {
activityDate
duration
isDuplicateRequest
message
paymentId
processorResponseCode
sanitizedFields {
fieldName
fieldPath
originalValue
reason
sanitizedValue
}
timestampUtc
tokenDetails {
token
tokenizedPan
}
transactionId
validationProviderScore
}
}
}
{
"validateBankAccountInput": {
"acceptorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"channel": "ECOMMERCE",
"paymentMethodDetails": {
"acquirerTokenDetails": "example",
"bankAccountDetails": "example"
},
"transactionReference": "example"
}
}
curl --request POST \
--url https://api.sandbox.com/graphql \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
--data '{
"query": "mutation ValidateBankAccount($validateBankAccountInput: ValidateBankAccountInput!) {\n validateBankAccount(validateBankAccountInput: $validateBankAccountInput) {\n errors {\n ... on InternalServiceError {\n dateTimeUtc\n errorDateTime\n message\n processorResponseCode\n transactionId\n }\n ... on AcceptorNotFoundError {\n dateTimeUtc\n errorDateTime\n message\n organizationId\n presenterId\n }\n ... on RuleInViolationError {\n advice\n dateTimeUtc\n errorDateTime\n explanationOfRule\n message\n }\n ... on TimeoutOnNetworkResponseError {\n attemptedNetwork\n dateTimeUtc\n errorDateTime\n message\n processorResponseCode\n }\n ... on ValidationFailureError {\n dateTimeUtc\n errorDateTime\n fieldName\n fieldPath\n message\n }\n ... on TokenNotFoundError {\n dateTimeUtc\n errorDateTime\n message\n processorResponseCode\n transactionId\n }\n ... on InvalidTokenError {\n dateTimeUtc\n deTokenizedPaymentMethodType\n errorDateTime\n expectedPaymentMethodType\n message\n }\n ... on RouteNotFoundError {\n boardedPaymentBrandsForAcceptor\n dateTimeUtc\n errorDateTime\n message\n paymentBrand\n }\n }\n validateBankAccountResponse {\n activityDate\n duration\n isDuplicateRequest\n message\n paymentId\n processorResponseCode\n sanitizedFields {\n fieldName\n fieldPath\n originalValue\n reason\n sanitizedValue\n }\n timestampUtc\n tokenDetails {\n token\n tokenizedPan\n }\n transactionId\n validationProviderScore\n }\n }\n}",
"variables": {
"validateBankAccountInput": {
"acceptorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"channel": "ECOMMERCE",
"paymentMethodDetails": {
"acquirerTokenDetails": "example",
"bankAccountDetails": "example"
},
"transactionReference": "example"
}
}
}'
{
"data": {
"validateBankAccount": {
"errors": [
{
"__typename": "InternalServiceError",
"dateTimeUtc": "2026-01-15T14:30:00Z",
"errorDateTime": "2026-01-15T14:30:00Z",
"message": "example",
"processorResponseCode": "A0000",
"transactionId": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}
],
"validateBankAccountResponse": {
"activityDate": "2026-01-15",
"duration": 0,
"isDuplicateRequest": true,
"message": "example",
"paymentId": "c9a1e2d3-4b5f-6789-0abc-def123456789",
"processorResponseCode": "A0000",
"sanitizedFields": [
{
"fieldName": "example",
"fieldPath": "example",
"originalValue": "example",
"reason": "example",
"sanitizedValue": "example"
}
],
"timestampUtc": "2026-01-15T14:30:00Z",
"tokenDetails": {
"token": "example",
"tokenizedPan": "example"
},
"transactionId": "d8b2f3e4-5c6a-7890-1bcd-ef2345678901",
"validationProviderScore": 0
}
}
}
}
Transaction Processing
validateBankAccount
Validate bank account data.
mutation ValidateBankAccount($validateBankAccountInput: ValidateBankAccountInput!) {
validateBankAccount(validateBankAccountInput: $validateBankAccountInput) {
errors {
... on InternalServiceError {
dateTimeUtc
errorDateTime
message
processorResponseCode
transactionId
}
... on AcceptorNotFoundError {
dateTimeUtc
errorDateTime
message
organizationId
presenterId
}
... on RuleInViolationError {
advice
dateTimeUtc
errorDateTime
explanationOfRule
message
}
... on TimeoutOnNetworkResponseError {
attemptedNetwork
dateTimeUtc
errorDateTime
message
processorResponseCode
}
... on ValidationFailureError {
dateTimeUtc
errorDateTime
fieldName
fieldPath
message
}
... on TokenNotFoundError {
dateTimeUtc
errorDateTime
message
processorResponseCode
transactionId
}
... on InvalidTokenError {
dateTimeUtc
deTokenizedPaymentMethodType
errorDateTime
expectedPaymentMethodType
message
}
... on RouteNotFoundError {
boardedPaymentBrandsForAcceptor
dateTimeUtc
errorDateTime
message
paymentBrand
}
}
validateBankAccountResponse {
activityDate
duration
isDuplicateRequest
message
paymentId
processorResponseCode
sanitizedFields {
fieldName
fieldPath
originalValue
reason
sanitizedValue
}
timestampUtc
tokenDetails {
token
tokenizedPan
}
transactionId
validationProviderScore
}
}
}
{
"validateBankAccountInput": {
"acceptorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"channel": "ECOMMERCE",
"paymentMethodDetails": {
"acquirerTokenDetails": "example",
"bankAccountDetails": "example"
},
"transactionReference": "example"
}
}
curl --request POST \
--url https://api.sandbox.com/graphql \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
--data '{
"query": "mutation ValidateBankAccount($validateBankAccountInput: ValidateBankAccountInput!) {\n validateBankAccount(validateBankAccountInput: $validateBankAccountInput) {\n errors {\n ... on InternalServiceError {\n dateTimeUtc\n errorDateTime\n message\n processorResponseCode\n transactionId\n }\n ... on AcceptorNotFoundError {\n dateTimeUtc\n errorDateTime\n message\n organizationId\n presenterId\n }\n ... on RuleInViolationError {\n advice\n dateTimeUtc\n errorDateTime\n explanationOfRule\n message\n }\n ... on TimeoutOnNetworkResponseError {\n attemptedNetwork\n dateTimeUtc\n errorDateTime\n message\n processorResponseCode\n }\n ... on ValidationFailureError {\n dateTimeUtc\n errorDateTime\n fieldName\n fieldPath\n message\n }\n ... on TokenNotFoundError {\n dateTimeUtc\n errorDateTime\n message\n processorResponseCode\n transactionId\n }\n ... on InvalidTokenError {\n dateTimeUtc\n deTokenizedPaymentMethodType\n errorDateTime\n expectedPaymentMethodType\n message\n }\n ... on RouteNotFoundError {\n boardedPaymentBrandsForAcceptor\n dateTimeUtc\n errorDateTime\n message\n paymentBrand\n }\n }\n validateBankAccountResponse {\n activityDate\n duration\n isDuplicateRequest\n message\n paymentId\n processorResponseCode\n sanitizedFields {\n fieldName\n fieldPath\n originalValue\n reason\n sanitizedValue\n }\n timestampUtc\n tokenDetails {\n token\n tokenizedPan\n }\n transactionId\n validationProviderScore\n }\n }\n}",
"variables": {
"validateBankAccountInput": {
"acceptorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"channel": "ECOMMERCE",
"paymentMethodDetails": {
"acquirerTokenDetails": "example",
"bankAccountDetails": "example"
},
"transactionReference": "example"
}
}
}'
{
"data": {
"validateBankAccount": {
"errors": [
{
"__typename": "InternalServiceError",
"dateTimeUtc": "2026-01-15T14:30:00Z",
"errorDateTime": "2026-01-15T14:30:00Z",
"message": "example",
"processorResponseCode": "A0000",
"transactionId": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}
],
"validateBankAccountResponse": {
"activityDate": "2026-01-15",
"duration": 0,
"isDuplicateRequest": true,
"message": "example",
"paymentId": "c9a1e2d3-4b5f-6789-0abc-def123456789",
"processorResponseCode": "A0000",
"sanitizedFields": [
{
"fieldName": "example",
"fieldPath": "example",
"originalValue": "example",
"reason": "example",
"sanitizedValue": "example"
}
],
"timestampUtc": "2026-01-15T14:30:00Z",
"tokenDetails": {
"token": "example",
"tokenizedPan": "example"
},
"transactionId": "d8b2f3e4-5c6a-7890-1bcd-ef2345678901",
"validationProviderScore": 0
}
}
}
}
Mutation
Arguments
ValidateBankAccountInput!
required
Show child attributes
Show child attributes
UUID!
required
A unique, 36 character identifier created by Tesouro and assigned to the entity providing the goods or services to the cardholder, such as a Merchant, a Submerchant of a Payment Facilitator, a Seller within a Marketplace, or a Biller of a Consumer Bill Payment Service Provider (CBPS). Historically, processors have called this identifier the Merchant ID (or MID), Outlet ID, or Customer number.
AddressDetailsInput
Details pertaining to the customer’s billing address.See AddressDetailsInput
PaymentChannel!
required
How the consumer interacts with the acceptor. Defaults to ECOMMERCE if not provided.See PaymentChannel
OrderDetailsInput
Details pertaining to the customer’s order.See OrderDetailsInput
BankPaymentMethodInput!
required
The bank account or tokenized bank account to be validated.
Show child attributes
Show child attributes
BankAcquirerTokenDetailsInput
Show child attributes
Show child attributes
String
The value of the acquirer token.
String
deprecated
The value of the acquirer token.Deprecated: Use token instead.
WalletType
The wallet provider for this payment method. Null if not applicable.See WalletType
BankAccountDetailsInput
Show child attributes
Show child attributes
String!
required
The account number of the bank account.
AccountOwnerType!
required
The type of the account owner (e.g., personal, business).See AccountOwnerType
BankAccountType!
required
The type of the bank account (e.g., consumer, business).See BankAccountType
String!
required
The name on the bank account.
BankTransferEntryMode!
required
Describes how a customer or business authorized an ACH transaction
RecurringType!
required
String!
required
The routing number of the bank account.
WalletType
The wallet provider for this payment method. Null if not applicable.See WalletType
Max36Text!
required
A unique identifier created by the entity holding the direct relationship with the Acceptor, and used by that entity for reconciliation and transaction search. Tesouro uses this identifier to manage idempotency.
Return type
ValidateBankAccountPayload!
[ValidateBankAccountError!]
Show Possible types
Show Possible types
Show InternalServiceError
Show InternalServiceError
DateTime!
required
deprecated
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.Deprecated: Use errorDateTime instead.
DateTime!
required
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
String!
required
A human readable description of the error.
ProcessorResponseCode!
required
Tesouro response code indicating the error.See ProcessorResponseCode
UUID!
required
Unique ID for the transaction assigned by Tesouro.
Show AcceptorNotFoundError
Show AcceptorNotFoundError
This occurs when an acceptor cannot be found because it does not exist or because it is not presented by the submitted presenter.
DateTime!
required
deprecated
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.Deprecated: Use errorDateTime instead.
DateTime!
required
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
String!
required
A human readable description of the error.
UUID!
required
The organization Id presented with this transaction.
UUID!
required
The presenter Id presented with this transaction.
ProcessorResponseCode!
required
Tesouro response code indicating the error.See ProcessorResponseCode
UUID!
required
Unique ID for the transaction assigned by Tesouro.
UUID!
required
The invalid acceptor Id.
Show RuleInViolationError
Show RuleInViolationError
This occurs when an internal Tesouro business rule is in violation.
String!
required
Advice on how to overcome the rule in the future.
DateTime!
required
deprecated
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.Deprecated: Use errorDateTime instead.
DateTime!
required
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
String!
required
An explanation of why the rule exists.
String!
required
A human readable description of the error.
ProcessorResponseCode!
required
Tesouro response code indicating the error.See ProcessorResponseCode
UUID!
required
Unique ID for the transaction assigned by Tesouro.
Show TimeoutOnNetworkResponseError
Show TimeoutOnNetworkResponseError
DateTime!
required
deprecated
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.Deprecated: Use errorDateTime instead.
DateTime!
required
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
String!
required
A human readable description of the error.
ProcessorResponseCode!
required
Tesouro response code indicating the error.See ProcessorResponseCode
UUID!
required
Unique ID for the transaction assigned by Tesouro.
Int!
required
The amount of time Tesouro waited for a response in milliseconds.
Show ValidationFailureError
Show ValidationFailureError
DateTime!
required
deprecated
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.Deprecated: Use errorDateTime instead.
DateTime!
required
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
String!
required
The name of the graphql field in error.
String!
required
The path to the graphql field in error.
String!
required
A human readable description of the error.
ProcessorResponseCode!
required
Tesouro response code indicating the error.See ProcessorResponseCode
UUID!
required
Unique ID for the transaction assigned by Tesouro.
String!
required
The value of the graphql field in error.
Show TokenNotFoundError
Show TokenNotFoundError
DateTime!
required
deprecated
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.Deprecated: Use errorDateTime instead.
DateTime!
required
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
String!
required
A human readable description of the error.
ProcessorResponseCode!
required
Tesouro response code indicating the error.See ProcessorResponseCode
UUID!
required
Unique ID for the transaction assigned by Tesouro.
Show InvalidTokenError
Show InvalidTokenError
Occurs when an acquirer token deTokenizes into a payment method that is not supportedby the current action.
DateTime!
required
deprecated
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.Deprecated: Use errorDateTime instead.
String!
required
The type of payment method behind the token.
DateTime!
required
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
String!
required
String!
required
A human readable description of the error.
ProcessorResponseCode!
required
Tesouro response code indicating the error.See ProcessorResponseCode
UUID!
required
Unique ID for the transaction assigned by Tesouro.
Show RouteNotFoundError
Show RouteNotFoundError
Occurs when there is no boarded route with Tesouro to process the presented payment method.
[PaymentBrand!]!
required
The current list of payment brands Tesouro has routes to support.See PaymentBrand
DateTime!
required
deprecated
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.Deprecated: Use errorDateTime instead.
DateTime!
required
The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
String!
required
A human readable description of the error.
PaymentBrand!
required
The assigned payment brand of the payment method presented for processing.See PaymentBrand
ProcessorResponseCode!
required
Tesouro response code indicating the error.See ProcessorResponseCode
UUID!
required
Unique ID for the transaction assigned by Tesouro.
ValidateBankAccountResponse
Show child attributes
Show child attributes
Date!
required
The date Tesouro received the transaction based on acceptor cutoff time
Int!
required
deprecated
Difference between request receipt and response in milliseconds.Deprecated: New durations coming soon.
Boolean!
required
Result of Tesouro’s idempotency check. If the transaction reference matches that of another transaction from that presenter it will be treated as a duplicate.
String!
required
A detailed description of the response code. e.g., Insufficient funds.
UUID!
required
A unique 36 character identifier created by Tesouro and assigned to a group of transactions in the same payment request cohort. e.g., An authorization request, incremental authorization request, and the final capture would have the same paymentID.
ProcessorResponseCode!
required
A normalized 4-character response code defined by Tesouro that represents the outcome of the payment transaction request.See ProcessorResponseCode
[SanitizedFieldOutput!]!
required
List of fields that were detected as invalid and sanitized by Tesouro to prevent the payment transaction request from failing.See SanitizedFieldOutput
DateTime!
required
The UTC date and time the transaction was received by Tesouro.
TokenDetails
Details associated with the token generated on a tokenization request.See TokenDetails
UUID!
required
A unique identifier created by Tesouro and assigned to the transaction.
Int!
required
The validation score provided to Tesouro by the validation provider.
mutation ValidateBankAccount($validateBankAccountInput: ValidateBankAccountInput!) {
validateBankAccount(validateBankAccountInput: $validateBankAccountInput) {
errors {
... on InternalServiceError {
dateTimeUtc
errorDateTime
message
processorResponseCode
transactionId
}
... on AcceptorNotFoundError {
dateTimeUtc
errorDateTime
message
organizationId
presenterId
}
... on RuleInViolationError {
advice
dateTimeUtc
errorDateTime
explanationOfRule
message
}
... on TimeoutOnNetworkResponseError {
attemptedNetwork
dateTimeUtc
errorDateTime
message
processorResponseCode
}
... on ValidationFailureError {
dateTimeUtc
errorDateTime
fieldName
fieldPath
message
}
... on TokenNotFoundError {
dateTimeUtc
errorDateTime
message
processorResponseCode
transactionId
}
... on InvalidTokenError {
dateTimeUtc
deTokenizedPaymentMethodType
errorDateTime
expectedPaymentMethodType
message
}
... on RouteNotFoundError {
boardedPaymentBrandsForAcceptor
dateTimeUtc
errorDateTime
message
paymentBrand
}
}
validateBankAccountResponse {
activityDate
duration
isDuplicateRequest
message
paymentId
processorResponseCode
sanitizedFields {
fieldName
fieldPath
originalValue
reason
sanitizedValue
}
timestampUtc
tokenDetails {
token
tokenizedPan
}
transactionId
validationProviderScore
}
}
}
{
"validateBankAccountInput": {
"acceptorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"channel": "ECOMMERCE",
"paymentMethodDetails": {
"acquirerTokenDetails": "example",
"bankAccountDetails": "example"
},
"transactionReference": "example"
}
}
curl --request POST \
--url https://api.sandbox.com/graphql \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
--data '{
"query": "mutation ValidateBankAccount($validateBankAccountInput: ValidateBankAccountInput!) {\n validateBankAccount(validateBankAccountInput: $validateBankAccountInput) {\n errors {\n ... on InternalServiceError {\n dateTimeUtc\n errorDateTime\n message\n processorResponseCode\n transactionId\n }\n ... on AcceptorNotFoundError {\n dateTimeUtc\n errorDateTime\n message\n organizationId\n presenterId\n }\n ... on RuleInViolationError {\n advice\n dateTimeUtc\n errorDateTime\n explanationOfRule\n message\n }\n ... on TimeoutOnNetworkResponseError {\n attemptedNetwork\n dateTimeUtc\n errorDateTime\n message\n processorResponseCode\n }\n ... on ValidationFailureError {\n dateTimeUtc\n errorDateTime\n fieldName\n fieldPath\n message\n }\n ... on TokenNotFoundError {\n dateTimeUtc\n errorDateTime\n message\n processorResponseCode\n transactionId\n }\n ... on InvalidTokenError {\n dateTimeUtc\n deTokenizedPaymentMethodType\n errorDateTime\n expectedPaymentMethodType\n message\n }\n ... on RouteNotFoundError {\n boardedPaymentBrandsForAcceptor\n dateTimeUtc\n errorDateTime\n message\n paymentBrand\n }\n }\n validateBankAccountResponse {\n activityDate\n duration\n isDuplicateRequest\n message\n paymentId\n processorResponseCode\n sanitizedFields {\n fieldName\n fieldPath\n originalValue\n reason\n sanitizedValue\n }\n timestampUtc\n tokenDetails {\n token\n tokenizedPan\n }\n transactionId\n validationProviderScore\n }\n }\n}",
"variables": {
"validateBankAccountInput": {
"acceptorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"channel": "ECOMMERCE",
"paymentMethodDetails": {
"acquirerTokenDetails": "example",
"bankAccountDetails": "example"
},
"transactionReference": "example"
}
}
}'
{
"data": {
"validateBankAccount": {
"errors": [
{
"__typename": "InternalServiceError",
"dateTimeUtc": "2026-01-15T14:30:00Z",
"errorDateTime": "2026-01-15T14:30:00Z",
"message": "example",
"processorResponseCode": "A0000",
"transactionId": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}
],
"validateBankAccountResponse": {
"activityDate": "2026-01-15",
"duration": 0,
"isDuplicateRequest": true,
"message": "example",
"paymentId": "c9a1e2d3-4b5f-6789-0abc-def123456789",
"processorResponseCode": "A0000",
"sanitizedFields": [
{
"fieldName": "example",
"fieldPath": "example",
"originalValue": "example",
"reason": "example",
"sanitizedValue": "example"
}
],
"timestampUtc": "2026-01-15T14:30:00Z",
"tokenDetails": {
"token": "example",
"tokenizedPan": "example"
},
"transactionId": "d8b2f3e4-5c6a-7890-1bcd-ef2345678901",
"validationProviderScore": 0
}
}
}
}
Was this page helpful?