Status and Error codes

Code Status Description
2 SUCCESS Transfer is complete and fund has successfully been settled
3 ERROR Transfer hits an error state, either Bank/Brankas/User error
4 LOGIN_ERROR End user submitted incorrect login credentials
11 EXPIRED Transfer has expired. By default 24 hours after checkout is created and end user did not finish the payment
12 FLAGGED Transaction is neither SUCCESS or FAILED as returned by the bank. A merchant needs to check in the statement of account if the funds were indeed received or not
13 CANCELLED End user selected one of the ‘Cancel’ buttons in Tap/payment pages
14 DENIED End a user-selected the ‘Deny’ button in Tap consent page
15 FAILED Transaction is marked as FAILED by merchants via v1/checkout/settle after checking on beneficiary account statement
status_code status_desc
DIRDXXX2000 generic success
DIRDXXX2001 confirm checkout processing
DIRDXXX2002 update checkout processing
DIRDXXX2003 flagged transaction
DIRDXXX4000 generic user error
DIRDXXX4001 field is required: account_number
DIRDXXX4002 field is required: address_line1
DIRDXXX4003 field is required: bank_code
DIRDXXX4004 field is required: business_info_id
DIRDXXX4005 field is required: city
DIRDXXX4006 field is required: country
DIRDXXX4007 field is required: creds.identifier
DIRDXXX4008 field is required: destination_account_id
DIRDXXX4009 field is required: email_address
DIRDXXX4010 field is required: holder_email
DIRDXXX4011 field is required: holder_first_name
DIRDXXX4012 field is required: holder_last_name
DIRDXXX4013 field is required: mobile_country_code
DIRDXXX4014 field is required: mobile_number
DIRDXXX4015 field is required: name
DIRDXXX4016 field is required: privacy_policy_version
DIRDXXX4017 field is required: source_account_id
DIRDXXX4018 field is required: source_account_task_id
DIRDXXX4019 field is required: state_province
DIRDXXX4020 field is required: terms_of_use_version
DIRDXXX4021 field is required: transaction_id
DIRDXXX4022 field is an invalid email: holder_email
DIRDXXX4023 field is an invalid uuid: business_info_id
DIRDXXX4024 field is an invalid uuid: destination_account_id
DIRDXXX4025 field is invalid, reference not found: business_info_id
DIRDXXX4026 field is invalid: creds.type
DIRDXXX4027 field must be accepted and set to true: consent_granted
DIRDXXX4028 bank code not supported
DIRDXXX4029 the chosen source bank is currently not supported
DIRDXXX4030 the chosen source bank is not supported for transfers with this selected settlement partner
DIRDXXX4031 the chosen source and destination bank pair have different countries: <SOURCE_BANK> - <DEST_BANK>
DIRDXXX4032 the chosen source and destination bank pair is currently not supported: <SOURCE_BANK> - <DEST_BANK>
DIRDXXX4033 selected destination account entry is not enabled
DIRDXXX4034 the chosen destination bank is not supported for transfers with this selected settlement partner
DIRDXXX4035 invalid destination account value
DIRDXXX4036 invalid recipient - please enter a registered recipient bank account
DIRDXXX4037 the chosen payment channel is currently not supported
DIRDXXX4038 invalid source account value
DIRDXXX4039 invalid amount - transaction value is below the 1,00 IDR minimum
DIRDXXX4040 invalid amount - transaction value is below the 1.00 PHP minimum
DIRDXXX4041 invalid amount - transaction value is below the 1.00 THB minimum
DIRDXXX4042 invalid amount - transaction value is below the 10.000,00 IDR minimum
DIRDXXX4043 invalid amount - transaction amount <TXN_AMT> must be in between <MIN_AMT> and <MAX_AMT>
DIRDXXX4044 invalid transaction amount
DIRDXXX4045 invalid currency value: <EXPECTED_CUR> - <ACTUAL_CUR>
DIRDXXX4046 currency not supported
DIRDXXX4047 country and currency do not match
DIRDXXX4048 reference_id already associated with a successful transaction
DIRDXXX4049 only 18 characters are allowed in the memo field for this source bank
DIRDXXX4050 only 20 combined characters of letters, numbers, and spaces are allowed in the memo field for this source bank
DIRDXXX4051 only 100 combined characters of letters, numbers, and spaces are allowed in the memo field for this source bank
DIRDXXX4052 only 255 characters are allowed in the memo field for this source bank
DIRDXXX4053 only 255 combined characters of letters, numbers, period, and spaces are allowed in the memo field for this source bank
DIRDXXX4054 only 110 combined characters of letters, numbers, comma, period, apostrophe, dash, and spaces are allowed in the memo field for this source bank
DIRDXXX4055 only 30 combined characters of letters, numbers, and spaces are allowed in the memo field for this source bank
DIRDXXX4056 only 50 combined characters of letters, numbers, and spaces are allowed in the memo field for this source bank
DIRDXXX4057 only 256 combined characters of letters, numbers, period, dash, comma, @, and spaces are allowed in the memo field for this source bank
DIRDXXX4058 missing credentials
DIRDXXX4059 credential type not supported
DIRDXXX4060 credential secret should be empty for OAUTH type
DIRDXXX4061 missing customer payload
DIRDXXX4062 missing required email
DIRDXXX4063 missing required fname
DIRDXXX4064 missing required lname
DIRDXXX4065 missing required fields
DIRDXXX4066 please provide full customer address or omit customer address entirely if unable
DIRDXXX4067 business info is currently disabled
DIRDXXX4068 matching business info not found
DIRDXXX4069 invalid value for start_date, should follow: YYYY-MM-DD
DIRDXXX4070 invalid value for end_date, should follow: YYYY-MM-DD
DIRDXXX4071 invalid value for completed_start_date, should follow: YYYY-MM-DD
DIRDXXX4072 invalid value for completed_end_date, should follow: YYYY-MM-DD
DIRDXXX4073 field is an invalid uuid: id
DIRDXXX4074 field is greater than the allowed size, length, or value: description, may not be greater than 255
DIRDXXX4075 field is required: url
DIRDXXX4076 field is greater than the allowed size, length, or value: url, may not be greater than 255
DIRDXXX4077 field is required: status
DIRDXXX4078 field must be on `YYYY-MM-DD` date format: date
DIRDXXX4079 field is required: type
DIRDXXX4080 transaction expired
DIRDXXX4081 transaction cancelled
DIRDXXX4082 consent denied
DIRDXXX4083 inapp tfa timeout
DIRDXXX4084 qr timeout
DIRDXXX4085 field is required: secret
DIRDXXX4086 the chosen source bank is currently not supported for the hybrid flow
DIRDXXX4087 concurrent login is not allowed
DIRDXXX4088 no shortcode provided
DIRDXXX4089 no data available for given input
DIRDXXX4090 link expired
DIRDXXX4091 field is invalid: status
DIRDXXX4092 invalid transaction id
DIRDXXX4093 <BANK> offline - we have disabled this source bank temporarily
DIRDXXX4094 field is an invalid name: customer.fname
DIRDXXX4095 field is an invalid name: customer.mname
DIRDXXX4096 field is an invalid name: customer.lname
DIRDXXX5000 generic system error
DIRDXXX5001 reserved
DIRDXXX5002 could not read metadata from context
DIRDXXX5003 could not read organization ID from metadata
DIRDXXX5004 failed to retrieve business info record
DIRDXXX5005 failed to create business info record
DIRDXXX5006 failed to update business info record
DIRDXXX5007 failed to create destination account record
DIRDXXX5008 failed to update attached destination accounts
DIRDXXX5009 failed to retrieve destination account
DIRDXXX5010 failed to update destination account record
DIRDXXX5011 failed to retrieve transaction
DIRDXXX5012 failed to count transactions
DIRDXXX5013 failed to create transaction
DIRDXXX5014 failed to update the transaction
DIRDXXX5015 failed to confirm the transaction
DIRDXXX5016 failed to terminate transaction
DIRDXXX5017 failed to compare transaction amount
DIRDXXX5018 failed to format min amount
DIRDXXX5019 failed to format max amount
DIRDXXX5020 failed to format transaction amount
DIRDXXX5021 failed to parse intrabank min amount
DIRDXXX5022 failed to parse intrabank max amount
DIRDXXX5023 failed to parse interbank min amount
DIRDXXX5024 failed to parse interbank max amount
DIRDXXX5025 error converting settlements to proto
DIRDXXX5026 error retrieving settlements
DIRDXXX5027 failed to fetch source account details
DIRDXXX5028 failed to validate create transfer source account requests
DIRDXXX5029 failed to create fetch source account task record
DIRDXXX5030 failed to retrieve fallback account holder details
DIRDXXX5031 failed to compose end user credential hash
DIRDXXX5032 unknown env: <ENV>
DIRDXXX5033 unknown transfer type
DIRDXXX5034 failed to retrieve supported banks
DIRDXXX5035 failed to retrieve callback urls
DIRDXXX5036 failed to create callback url record
DIRDXXX5037 failed to update callback url record
DIRDXXX5038 failed to retrieve reports
DIRDXXX5039 failed to instantiate report generator
DIRDXXX5040 failed to parse transaction amount
DIRDXXX5041 flagged transaction settlement failed
DIRDXXX5042 failed to compute cents reconciliation workaround
DIRDXXX5043 failed to sanitize parameters
DIRDXXX5044 failed to create report record
DIRDXXX5045 failed to perform bank login

BDO

status_code status_desc
DIRIBDO4001 User has not enrolled for online banking
DIRIBDO4002 Invalid login credentials
DIRIBDO4003 Invalid login credentials and account is now locked
DIRIBDO4004 Missing username
DIRIBDO4005 Invalid OTP
DIRIBDO4006 User is reminded to change password
DIRIBDO4007 User is required to change password
DIRIBDO4008 User has not enrolled for online banking
DIRIBDO4009 Missing account’s first name and last name
DIRIBDO4010 Missing source account
DIRIBDO4011 Missing destination account
DIRIBDO4012 Invalid amount
DIRIBDO4013 Missing amount
DIRIBDO4014 Missing bank memo
DIRIBDO4015 Invalid currency
DIRIBDO4016 Source account is not Savings or Checking
DIRIBDO4017 Invalid source account
DIRIBDO4018 Invalid destination account
DIRIBDO4019 Invalid bank memo
DIRIBDO4020 Invalid amount
DIRIBDO4021 Maximum daily transfer amount is reached
DIRIBDO4021 Maximum daily transfer amount is reached
DIRIBDO4022 Insufficient funds
DIRIBDO4023 Maximum daily allowed transactions is reached
DIRIBDO4024 Maximum OTP retries is reached, account is locked
DIRIBDO4025 Destination account’s first, middle and last name is required
DIRIBDO4026 Redirected to login page with error msg from bank
DIRIBDO4027 User has been logged out due to concurrent login
DIRIBDO4028 Invalid login credentials - last attempt
DIRIBDO4029 Invalid login OTP
DIRIBDO4030 Invalid login OTP, last attempt before BDO locks the account
DIRIBDO4031 Unhandled error message from Bank during login
DIRIBDO5002 Unable to navigate to bank’s login form
DIRIBDO5003 Unable to refresh bank’s page
DIRIBDO5004 Unable to retrieve current URL
DIRIBDO5005 Unable to perform login task
DIRIBDO5006 Login is invalid, unable to retrieve message from BDO.
DIRIBDO5007 Unable to navigate to OTP page
DIRIBDO5008 OTP is not supplied
DIRIBDO5009 OTP entered is more than 6 characters
DIRIBDO5010 Unable to display account ending’s balance
DIRIBDO5011 Failed to confirm message from bank
DIRIBDO5012 Internal error is occurred during List Account
DIRIBDO5013 Internal error is occured during Transfer Funds
DIRIBDO5014 Internal error is occured during Transfer TFA
DIRIBDO6001 Bank’s page can’t be accessed due to slowness
DIRIBDO6002 Bank’s login form is not found
DIRIBDO6003 Bank displays a blank page
DIRIBDO6004 Bank’s site is under maintenance
DIRIBDO6005 Navigated to unknown bank’s screen
DIRIBDO6006 Unable to navigate to OTP page after login failed
DIRIBDO6007 Unable to retrieve the OTP form
DIRIBDO6008 Bank’s gateway timeout error
DIRIBDO6009 Bank redirected back to login page although login is successful
DIRIBDO6010 Timeout during OTP submission
DIRIBDO6011 Unhandled error screen
DIRIBDO6012 Unable to retrieve account details due to empty account
DIRIBDO6013 Bank is unable to display account ending’s balance
DIRIBDO6014 Failed to submit transfer form
DIRIBDO6015 Unable to verify bank’s transfer page
DIRIBDO6016 Bank rejects the correct OTP
DIRIBDO6017 Unknown error from the bank but displayed as flash message
DIRIBDO6018 Timeout when loading OTP page
DIRIBDO6019 Bank’s system is under maintenance
DIRIBDO6020 Bank returns an empty error message

BPI

status_code status_desc
DIRIBPI4001 Invalid amount
DIRIBPI4002 Missing amount
DIRIBPI4003 Invalid currency
DIRIBPI4004 Invalid source account
DIRIBPI4005 User has been logged out due to concurrent login
DIRIBPI4006 Maximum Daily transfer has been reached
DIRIBPI4007 Invalid destination account number
DIRIBPI4008 User account is locked after invalid login attempt for the 3rd time
DIRIBPI4009 Bank has not activated user’s BPI Online enrollment
DIRIBPI4010 Invalid username and/or password
DIRIBPI4011 Transaction is cancelled by user
DIRIBPI4012 Issue during login, unhandled error message from Bank
DIRIBPI4013 Destination bank is not supported
DIRIBPI4014 Insufficient balance
DIRIBPI5001 Unable to navigate to bank’s site
DIRIBPI5002 Unable to retrieve list accounts
DIRIBPI5003 Unable to perform fund transfer
DIRIBPI5004 Unable to perform HTTP request to init transfer, validate transaction, request OTP
DIRIBPI5005 Missing source account
DIRIBPI5006 Missing destination account
DIRIBPI5007 Invalid destination bank code
DIRIBPI5008 Missing remarks
DIRIBPI5009 Invalid destination account
DIRIBPI5010 Mobile Key request has expired
DIRIBPI5011 Invalid OTP
DIRIBPI5012 Mobile Key is not activated yet for Interbank transfer
DIRIBPI5014 Navigated to unknown transfer funds screen
DIRIBPI5015 Unable to perform login task
DIRIBPI5016 Unhandled transaction validation error from bank
DIRIBPI5017 Timeout during transaction form
DIRIBPI5018 Mobile Key approval error from bank
DIRIBPI5019 Timeout awaiting mobile key approval
DIRIBPI5020 Failed when performing HTTP request to OTP
DIRIBPI5021 No response when requesting to poll transaction status
DIRIBPI6001 Unable to navigate to bank’s site
DIRIBPI6003 Bank is not returning success when user performs log in
DIRIBPI6004 Bank is not returning success when user performs log out
DIRIBPI6005 Access denied while trying to fetch account list
DIRIBPI6006 Access denied while performing transfer fund
DIRIBPI6007 Bank’s login form is not found
DIRIBPI6008 Failed to perform fund transfer
DIRIBPI6009 Unable to transfer fund, selected account is not allowed
DIRIBPI6010 Timeout - No final status received
DIRIBPI6011 Unable to transfer fund to the selected bank
DIRIBPI6012 Unknown transaction error from bank
DIRIBPI6013 Timeout during login

Metrobank

status_code bank_memo
account number is invalid or is not eligible for transfers. please check and try again. destination account number is invalid
address line 1 field is required address line 1 field is required
amount exceeds maximum transfer limit amount exceeds maximum transfer limit
amount is invalid invalid amount is entered
amount is required amount is required
at least destination holder’s first name is required at least destination holder’s first name is required
destination account is invalid destination account is invalid
destination account is required destination account is required
InternalServerError unknown bank site issue
invalid amount invalid amount
invalid amount format invalid amount format
Invalid credentials. Please try again. credential-error related, i.e., invalid credentials, blocked account, etc.
invalid destination bank code invalid destination bank code
invalid OTP OTP size didn’t match
no account registered PNB sometimes displays “no account registered”.
Please enter account name error on transfer validation on the destination account form
Please enter account number error on transfer validation on the destination account form
Please enter address error on transfer validation on the destination account form
Please enter password form related error, i.e., missing username or password
Please enter user ID form related error, i.e., missing username or password
Please enter value between 10 and 16 characters long account number error on transfer validation on the destination account form
Please select bank got error trying to populate destination account
PNB Website Advisory: We are currently conducting system maintenance. For immediate assistance, please call our 24/7 Customer Service at 537-8888. reached maintenance page
remarks field is required remarks field is required
remarks should contain // TODO: figure out the full text remark field error on transfer validation
site is unable to process any transaction did not reach expected page
Something went wrong, please try again failed to visit PB login page
Sorry, we are currently unable to service your request. reached an error page
Sorry, we are currently unable to service your request. reached an error page
Sorry, we are currently unable to service your request. reached an error page
Sorry, we are unable to process your transaction. bank site issue
source account is invalid source account is invalid
source account is required source account is required
source account not found source account not found
there was an error retrieving account info: “System unavailable” In case of site failure, an account’s ending balance would be “System unavailable”.
there was an error retrieving account info: “System unavailable” In case of site failure, an account’s ending balance would be “System unavailable”.
there was an error retrieving bank accounts there was an error retrieving bank accounts
there was an error retrieving bank accounts there was an error retrieving bank accounts
transfer to other account type is not supported we currently only support transferring from savings accounts
unsupported currency unsupported currency
We’re experiencing some failure while visiting the bank’s site did not find login form
We’re experiencing some failure while visiting the bank’s site, please retry again later did not find login form in time, site might be down or slow
Your session has expired pnb intermittently display a session timeout error even during login attempts

RCBC

status_code bank_memo
[account] is not a valid source account cannot choose the specified source account
amount is invalid cannot parse amount from string to float
amount is required amount == 0
at least destination holder’s first name is required missing destination holder’s first name
destination bank is not supported destination bank is not supported
destination bank is RCBC- interbank transfers only supports transfers to non-RCBC destination bank is RCBC for interbank transfer
invalid destination bank value destination’s bank code and bank name does not match
Login failed (0004) - You have entered an invalid user ID and/or password. Ref No: ## Incorrect Username
Login failed (0005) - You have entered an invalid User ID and/or password. Password is case sensitive. Ref No: ## Incorrect Password
OTP shouldn’t be empty receive empty OTP string
Site under maintenance Welcome message not found
Something went wrong, please try again failed to read auth response body
Something went wrong, please try again Unknown login response status
Something went wrong, please try again main context timeout
The account selected does not exist. Ref No: ## account does not exist
The account selected does not exist. Ref No: ## account does not exist
We’re experiencing some failure while visiting the bank’s site Failed to navigate to the URL
We’re experiencing some failure while visiting the bank’s site Failed to find Welcome message
We’re experiencing some failure while visiting the bank’s site, please retry again later Failed to navigate to the URL - bank is down or slow
We’re experiencing some failure while visiting the bank’s site, please retry again later Failed to find Welcome message - timeout
Your available balance is insufficient to perform this transaction. Ref No: ## insufficient balance
Your available balance is insufficient to perform this transaction. Ref No: ## insufficient balance

Unionbank

status_code bank_memo
Memo should not have more than 20 characters. request memo’s length > 20 characters
Transfer from this currency is not supported at the moment. currency is not PHP
Invalid amount. cannot parse amount into integer
Invalid amount. intrabank: 500,000.00 > amount > 0.01
Invalid amount. instapay: 50,000.00 > amount > 1.00
Invalid amount. failed to convert integer amount back into string
[bank message] transfer api return with 400 bad request
[bank message] transfer api return with 500 internal server error
[bank message] transfer api return with 404 not found
[bank message] transfer api return with 401 unauthorized or 403 forbidden
[bank message] check api return with 400 bad request
[bank message] check api return with status other than 200, 201, 400
[transaction id] check status api return with message “Failed to Credit Beneficiary Account”
[transaction id] check status api return with message “Sent for Processing”
[transaction id] check status api return with message “Sent for Confirmation”