APIDOCS Virtual Account Briva Online SNAP BI
API Information
Title |
API Virtual Account/Briva Online |
---|---|
Version |
v2.0 |
URL Sandbox |
|
URL Production |
Version Control
Doc Version |
API Version |
Date |
Link to document |
Description |
---|---|---|---|---|
v1.0 |
v1.0 |
04 Desember 2021 |
Baseline version. |
|
v2.0 |
v1.0 |
25 April 2022 |
Update field format |
|
v2.1 |
v1.0 |
20 Mar 2023 |
|
|
v2.2 |
v1.0 |
11 Aug 2023 |
|
|
v2.3 |
v1.0 |
04 Sep 2023 |
|
|
v2.4 | v1.0 | 13 Sep 2023 | Here |
|
v2.5 | v2.0 | 22 Nov 2023 | this page |
|
Product Description
Product Overview
The BRI virtual account service feature (BRIVA) to simplify and speed up financial activities which has advantages compared to manual transfers, for example, there is no need to confirm payments manually because they will be verified automatically.
Notes
- BRI provides a maximum time span of less than 10 s (<10 s) for each transaction, if it exceeds the specified time, the transaction is timeout.
- Transactions that are declared timeout need to carry out the BRIAPI reconciliation procedure using the API Account Statement, CMS Account Statement, or MT940 File according to the following page (https://developers.bri.co.id/en/docs/reconciliation-procedure)
- The reconciliation parameter that can be used on BRIVA Online SNAP BI are field virtualAccountNo, totalAmount and trxDateTime on the Payment endpoint
- Please check your account statement for any pending/suspend status responses.
Header Structure
Key |
Value |
Format |
Mandatory |
Length |
Description |
---|---|---|---|---|---|
Authorization |
Authorization |
|
M |
|
Bearer {Token} |
X-TIMESTAMP |
BRI - Timestamp |
|
M |
|
Format Timestamp ISO8601 |
X-SIGNATURE |
BRI - Signature |
|
M |
|
HMAC_SHA512 |
Content-type |
application/json |
|
M |
|
application/json |
X-PARTNER-ID |
|
Alphanumeric |
M |
36 |
|
CHANNEL-ID |
|
Numeric |
M |
5 |
Channel code BRI refers to: 00001 : teller 00002 : ATM 00003 : IB/NBMB/Brilink Mobile 00004 : SMSB 00005 : CMS/IBIZ 00006 : EDC 00007 : RTGS 00008 : OTHER 00009 : API |
X-EXTERNAL-ID |
|
Numeric |
M |
36 |
numeric |
Endpoint
A. Inquiry
Endpoint Description
This endpoint is used to make VA inquiries to BRI partners
General Information
HTTP Method |
POST |
---|---|
Path |
.../{{version}}/transfer-va/inquiry |
Tipe Format |
JSON |
Authentication |
OAuth 2.0 with Access Token |
Request Structure
Field |
Data Type |
Format |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|---|
partnerServiceId |
String |
Numeric |
M |
8 |
Derivative of X PARTNER ID, similar to company code, 8 digit left padding space. partnerServiceId + customerNo or virtualAccountNo |
____77777 |
customerNo |
String |
Numeric |
M |
13 Note: SNAP BI length (20) |
Unique number (up to 20 digits). partnerServi ceId + customerNo or virtualAccountNo |
0000000000001 |
virtualAccountNo |
String |
Numeric |
M |
28 |
partnerServiceId (8 digit left padding 0) + customerNo (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo (kalau devportal BI partnerServiceId + customerNo) |
____777770000000000001 |
amount |
Object |
|
O |
|
|
|
> value |
String |
Numeric |
M |
16,2 |
Transaction Amount. Nominal inputted by Customer with 2 decimal (Bank BRI set this value to 0. This value is generated by Partner) |
0.00 |
>currency |
String |
Alphabet |
M |
3 |
Currency |
IDR |
trxDateInit |
Date |
Numeric |
O |
25 |
PJP internal system datetime with timezone, which follows the ISO-8601 standard |
2021-11-25T15:01:07+07:00 |
channelCode |
Integer |
Numeric |
O |
4 |
Channel code based on ISO 18245 Channel code BRI refers to: 1 ; teller 2 ; ATM 3 : IB/NBMB/Brilink Mobile 4 : SMSB 5 : CMS/IBIZ 6 : EDC 7 : RTGS 8 : OTHER 9 : API |
1 |
sourceBankCode |
String |
Numeric |
O |
3 |
Bank code BRI. Format : 0002 |
002 |
passApp |
String |
Alphanumeric |
O |
64 |
Key from 3rd parties to access API like client secret |
b7aee423dc7489dfa868426e5c950c677925f3b9 |
inquiryRequestId |
String |
Alphanumeric |
M |
36 Note: SNAP BI length (128) |
Unique identifier for this Inquiry. |
065ad3ca-2490-4432-8a29-0a9a7ce4904b |
additionalInfo |
Object |
|
O |
|
|
|
>idApp |
String |
Alphanumeric |
M |
8 |
Bank identifier from 3rd parties to access API |
TEST |
Response Structure
Field |
Data Type |
Format |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|---|
responseCode |
String |
Numeric |
M |
7 |
Response code |
2002400 |
responseMessage |
String |
Alphabet |
M |
150 |
Response description |
Successful |
virtualAccountData |
Object |
|
M |
|
Detail virtual account data |
|
>partnerServiceId |
String |
Numeric |
M |
8 |
Derivative of X- PARTNER- ID , similar to company code. partnerServiceId + customerNo or virtualAccou ntNo |
___77777 |
>customerNo |
String |
Numeric |
M |
13 Note: SNAP BI length (20) |
Unique number (up to 20 digits). partnerServi ceId + customerNo or virtualAccou ntNo |
0000000000001 |
>virtualAccountNo |
String |
Numeric |
M |
18 Notes : SNAP BI (28) |
BRIVA number. Format : partnerServiceId + customerNo |
___777770000000000001 |
>virtualAccountName |
String |
Alphanumeric |
M |
255 |
customer name |
John Doe |
>inquiryRequestId |
String |
Alphanumeric |
M |
128 |
From Inquiry Request |
e3bcb9a2-e253-40c6-aa77-d72cc138b744 |
>totalAmount |
Object |
|
M Note : SNAP BI (O) |
|
|
|
>>value |
String |
Numeric |
M |
16,2 |
Transaction Amount. Total Amount with 2 decimal (ISO 4217 ) |
200000.00 |
>>currency |
String |
|
M |
3 |
Currency |
IDR |
>inquiryStatus |
String |
Numeric |
O |
2 |
|
00 |
>inquiryReason |
Object |
|
O |
|
|
|
>>english |
String |
Alphabet |
O |
64 |
|
Success |
>>indonesia |
String |
Alphabet |
O |
64 |
|
Sukses |
>additionalInfo |
String |
|
O |
|
|
|
>>idApp |
String |
Alphanumeric |
M |
8 |
Bank identifier from 3rd parties to access API |
TEST |
>>info1 |
String |
Alphanumeric |
O |
20 |
Catatan dari mitra |
info 1 harus diisi |
Request & Response Payload Sample
Request
{ "partnerServiceId":" 77777", "customerNo":"0000000000001", "virtualAccountNo":" 777770000000000001", "trxDateInit":"2021-11-25T22:01:07+07:00", "channelCode":1, "sourceBankCode":"002", "passApp":"b7aee423dc7489dfa868426e5c950c677925", "inquiryRequestId":"e3bcb9a2-e253-40c6-aa77-d72cc138b744", "additionalInfo":{ "idApp":"TEST" } }
Normal Response :
{ "responseCode":"2002400", "responseMessage":"Successful", "virtualAccountData":{ "partnerServiceId":" 77777", "customerNo":"0000000000001", "virtualAccountNo":" 777770000000000001", "virtualAccountName":"John Doe", "inquiryRequestId":"e3bcb9a2-e253-40c6-aa77-d72cc138b744", "totalAmount":{ "value":"200000.00", "currency":"IDR" }, "inquiryStatus":"00", "inquiryReason":{ "english":"Success", "indonesia":"Sukses" }, "additionalInfo":{ "idApp":"TEST", "info1":"info 1 harus diisi" } } }
Error Response :
{ "responseCode": "4042414", "responseMessage": "Paid Bill" }
List of Error/Response Code
HTTP Status |
Service Code |
Case Code |
Response Message |
Status |
Mandatory |
---|---|---|---|---|---|
200 |
24 |
00 |
Success |
Successful |
M |
202 |
24 |
00 |
Request in Progress |
Failed |
O |
400 |
24 |
00 |
Bad Request |
Failed |
M |
400 |
24 |
01 |
Invalid Field Format {field name} |
Failed |
M |
400 |
24 |
02 |
Invalid Mandatory Field {field name} |
Failed |
M |
401 |
24 |
00 |
Unauthorized. [reason] |
Failed |
M |
401 |
24 |
01 |
Invalid Token (B2B) | Failed | M |
401 |
24 |
02 |
Invalid Customer Token |
Failed |
O |
401 |
24 |
03 |
Token Not Found (B2B) |
Failed |
O |
401 |
24 |
04 |
Customer Token Not Found |
Failed |
O |
401 |
73 |
00 |
Unauthorized. [reason] |
Failed |
O |
401 |
73 |
01 |
Invalid Token (B2B) |
Failed |
O |
401 |
73 |
02 |
Invalid Customer Token | Failed | O |
401 | 73 | 03 | Token Not Found (B2B) | Failed | O |
401 | 73 | 04 | Customer Token Not Found | Failed | O |
403 | 24 | 00 | Transaction Expired | Failed | O |
403 | 24 | 01 | Feature Not Allowed [Reason] | Failed | O |
403 | 24 | 02 | Exceeds Transaction Amount Limit | Failed | O |
403 | 24 | 03 | Suspected Fraud | Failed | O |
403 | 24 | 04 | Activity Count Limit Exceeded | Failed | O |
403 | 24 | 05 | Do Not Honor | Failed | O |
403 | 24 | 06 | Feature Not Allowed At This Time. [reason] | Failed | O |
403 | 24 | 07 | Card Blocked | Failed | O |
403 | 24 | 08 | Card Expired | Failed | O |
403 | 24 | 09 | Dormant Account | Failed | O |
403 | 24 | 10 | Need To Set Token Limit | Failed | O |
403 | 24 | 11 | OTP Blocked | Failed | O |
403 | 24 | 12 | OTP Lifetime Expired | Failed | O |
403 | 24 | 13 | OTP Sent To Cardholer | Failed | O |
403 | 24 | 14 | Insufficient Funds | Failed | O |
403 | 24 | 15 | Transaction Not Permitted.[reason] | Failed | O |
403 | 24 | 16 | Suspend Transaction | Failed | O |
403 | 24 | 17 | Token Limit Exceeded | Failed | O |
403 | 24 | 18 | Inactive Card/Account/Customer | Failed | O |
403 | 24 | 19 | Merchant Blacklisted | Failed | O |
403 | 24 | 20 | Merchant Limit Exceed | Failed | O |
403 | 24 | 21 | Set Limit Not Allowed | Failed | O |
403 | 24 | 22 | Token Limit Invalid | Failed | O |
403 | 24 | 23 | Account Limit Exceed | Failed | O |
404 | 24 | 00 | Invalid Transaction Status | Failed | O |
404 | 24 | 01 | Transaction Not Found | Failed | O |
404 | 24 | 02 | Invalid Routing | Failed | O |
404 | 24 | 03 | Bank Not Supported By Switch | Failed | O |
404 | 24 | 04 | Transaction Cancelled | Failed | O |
404 | 24 | 05 | Merchant Is Not Registered For Card Registration Services | Failed | O |
404 | 24 | 06 | Need To Request OTP | Failed | O |
404 | 24 | 07 | Journey Not Found | Failed | O |
404 | 24 | 08 | Invalid Merchant | Failed | O |
404 | 24 | 09 | No Issuer | Failed | O |
404 | 24 | 10 | Invalid API Transition | Failed | O |
404 | 24 | 11 | Invalid Card/Account/Customer [info]/Virtual Account | Failed | O |
404 | 24 | 12 | Invalid Bill/Virtual Account [Reason] | Failed | M |
404 | 24 | 13 | Invalid Amount | Failed | O |
404 | 24 | 14 | Paid Bill | Failed | M |
404 | 24 | 15 | Invalid OTP | Failed | O |
404 | 24 | 16 | Partner Not Found | Failed | O |
404 | 24 | 17 | Invalid Terminal | Failed | O |
404 | 24 | 18 | Inconsistent Request | Failed | O |
404 | 24 | 19 | Invalid Bill/Virtual Account | Failed | M |
405 | 24 | 00 | Requested Function Is Not Supported | Failed | O |
405 | 24 | 01 | Requested Opearation Is Not Allowed | Failed | O |
409 | 24 | 00 | Conflict | Failed | M |
409 | 24 | 01 | Duplicate partnerReferenceNo | Failed | O |
429 | 24 | 00 | Too Many Requests | Failed | O |
500 | 24 | 00 | General Error | Failed | M |
500 | 24 | 01 | Internal Server Error | Failed | O |
500 | 24 | 02 | External Server Error | Failed | O |
504 | 24 | 00 | Timeout | Failed | M |
Any error response not listed in the BRIAPI response list is considered pending/suspend and requires further investigation.
B. Payment
Endpoint Description
This endpoint is used for flagging VA payments to BRI partners
General Information
HTTP Method |
POST |
---|---|
Path |
../{{version}}/transfer-va/payment |
Tipe Format |
JSON |
Authentication |
OAuth 2.0 with Access Token |
Request Structure
Field |
Data Type |
Format |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|---|
partnerServiceId |
String |
Numeric |
M |
8 |
Derivative of X-PARTNER-ID , similar to company code, 8 digit left padding space. partnerServiceId + customerNo or virtualAccountNo |
____77777 |
customerNo |
String |
Numeric |
M |
13 Note: SNAPBI Length (20) |
Unique number (up to 20 digits). partnerServi ceId + customerNo or virtualAccou ntNo |
0000000000001 |
virtualAccountNo |
String |
Numeric |
M |
28 |
partnerServiceId (8 digit left padding 0) + customerNo (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
___777770000000000001 |
virtualAccountName |
String |
Alphanumeric |
M |
255 |
Customer name |
John Doe |
paidAmount |
Object |
|
M |
|
|
|
> value |
String |
Numeric |
M |
16,2 |
Transaction Amount. Nominal inputted by Customer with 2 |
10001.00 |
>currency |
String |
Alphabet |
M |
3 |
Currency |
IDR |
trxDateTime |
Date |
Numeric |
O |
25 |
PJP internal system datetime with timezone, which follows the ISO-8601 standard |
2021-11-25T22:56:31+07:00 |
channelCode |
Integer |
Numeric |
O |
4 |
Channel code based on ISO 18245 Channel code BRI refers to: 1 : teller 2 : ATM 3 : IB/NBMB/Brilink Mobile 4 : SMSB 5 : CMS/IBIZ 6 : EDC 7 : RTGS 8 : OTHER 9 : API |
1 |
sourceBankCode |
String |
Numeric |
O |
3 |
Bank code BRI. Format : 0002 |
002 |
trxId |
String |
Numeric |
C |
64 |
Identifier of transaction. |
2132902068917559061 |
paymentRequestId |
String |
Alphanumeric |
M |
36 Note: SNAP BI Length (128)
|
Unique identifier. If Payment comes from the Inquiry process, this value must be the same with inquiryRequestId. |
e3bcb9a2-e253-40c6-aa77-d72cc138b744 |
hashedSourceAccountNo |
String |
Hash Base64 |
O |
32 |
Source account number in hash |
kmlm234k2nnsoebr997 |
additionalInfo |
Object |
|
O |
|
|
|
>passApp |
String |
Alphanumeric |
O |
64 |
Key from 3rd parties to access API |
b7aee423dc7489dfa868426e5c950c677925f3b9 |
>idApp |
String |
Alphanumeric |
O |
8 |
Bank identifier from 3rd parties to access API |
TEST |
Response Structure
Field |
Data Type |
Format |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|---|
responseCode |
String |
Numeric |
M |
7 |
Response code |
2002500 |
responseMessage |
String |
|
M |
150 |
Response description |
Successful |
virtualAccountData |
Object |
|
M |
|
Detail virtual account data |
|
>partnerServiceId |
String |
Numeric |
M |
8 |
Derivative of X- PARTNER- ID , similar to company code. partnerServiceId + customerNo or virtualAccou ntNo |
___77777 |
>customerNo |
String |
Numeric |
M |
13 Note: SNAP BI length (20) |
Unique number (up to 20 digits). partnerServi ceId + customerNo or virtualAccou ntNo |
0000000000001 |
>virtualAccountNo |
String |
Numeric |
M |
28 |
BRIVA number. Format : partnerServiceId + customerNo |
___777770000000000001 |
>virtualAccountName |
String |
Alphanumeric |
M |
255 |
Customer Name |
John Doe |
>paymentRequestId |
String |
Alphanumeric |
M |
36 Note: SNAP BI length (128) |
From Payment Request |
e3bcb9a2-e253-40c6-aa77-d72cc138b744 |
>paidAmount |
Object |
|
O |
|
|
|
>>value |
String |
Numeric |
M |
16,2 |
Transaction Amount. From Payment Request |
10001.00 |
>>currency |
String |
Alphabet |
M |
3 |
Currency |
IDR |
>paymentFlagStatus |
Object |
Numeric |
O |
2 |
Status for Payment Flag from Partner 00 = Success 01 = Reject 02 = Timeout |
00 |
>paymentFlagReason |
String |
|
O |
|
|
|
>>english |
String |
Alphabet |
O |
|
|
Success |
>>indonesia |
String |
Alphabet |
O |
|
|
Sukses |
additionalInfo |
Object |
|
O |
|
|
|
>passApp |
String |
Alphanumeric |
O |
64 |
Key from 3rd parties to access API |
b7aee423dc7489dfa868426e5c950c677925f3b9 |
>idApp |
String |
Alphanumeric |
M |
8 |
Bank identifier from 3rd parties to access API |
TEST |
>info1 |
String |
Alphanumeric |
O |
20 |
Catatan dari mitra |
info 1 diisi |
Request & Response Payload Sample
Request
{ "partnerServiceId":" 77777", "customerNo":"0000000000001", "virtualAccountNo":" 777770000000000001", "virtualAccountName":"John Doe", "paidAmount":{ "value":"10001.00", "currency":"IDR" }, "trxDateTime":"2021-11-25T22:56:31+07:00", "channelCode":1, "sourceBankCode":"002", "trxId":"2132902068917559061", "paymentRequestId":"e3bcb9a2-e253-40c6-aa77-d72cc138b744", "hashedSourceAccountNo":"kmlm234k2nnsoebr997", "additionalInfo":{ "idApp":"TEST", "passApp":"b7aee423dc7489dfa868426e5c950c677925f3b9" } }
Normal Response :
{ "responseCode":"2002500", "responseMessage":"Successful", "virtualAccountData":{ "partnerServiceId":" 77777", "customerNo":"0000000000001", "virtualAccountNo":" 777770000000000001", "virtualAccountName":"John Doe", "paymentRequestId":"e3bcb9a2-e253-40c6-aa77-d72cc138b744", "paidAmount":{ "value":"10001.00", "currency":"IDR" }, "paymentFlagStatus":"00", "paymentFlagReason":{ "english":"Success", "indonesia":"Sukses" } }, "additionalInfo":{ "idApp":"TEST", "passApp":"b7aee423dc7489dfa868426e5c950c677925f3b9", "info1":"info 1 diisi" } }
Error Response :
{ "responseCode": "4042512", "responseMessage": "Invalid Bill/Virtual Account [Reason]" }
List of Error/Response Code
HTTP Status |
Service Code |
Case Code |
Response Message |
Status |
Mandatory |
---|---|---|---|---|---|
200 |
25 |
00 |
Success |
Successful |
M |
202 |
25 |
00 |
Request In Progress |
Reversal |
O |
400 |
25 |
00 |
Bad Request |
Reversal |
M |
400 |
25 |
01 |
Invalid Field Format {field name} |
Reversal |
M |
400 |
25 |
02 |
Invalid Mandatory Field {field name} |
Reversal |
M |
401 |
25 |
00 |
Unauthorized. [reason] |
Reversal |
M |
401 |
25 |
01 |
Invalid Token (B2B) |
Reversal |
M |
401 |
25 |
02 |
Invalid Customer Token |
Reversal |
O |
401 |
25 |
03 |
Token Not Found (B2B) |
Reversal |
O |
401 |
25 |
04 |
Customer Token Not Found |
Reversal |
O |
403 |
25 |
00 |
Transaction Expired |
Reversal |
O |
403 |
25 |
01 |
Feature Not Allowed [Reason] |
Reversal |
O |
403 |
25 |
02 |
Exceeds Transaction Amount Limit |
Reversal |
O |
403 | 25 | 03 | Suspected Fraud | Reversal | O |
403 | 25 | 04 | Activity Count Limit Exceeded | Reversal | O |
403 | 25 | 05 | Do Not Honor | Reversal | O |
403 | 25 | 06 | Feature Not Allowed At This Time. [reason] | Reversal | O |
403 | 25 | 07 | Card Blocked | Reversal | O |
403 | 25 | 08 | Card Expired | Reversal | O |
403 | 25 | 09 | Dormant Account | Reversal | O |
403 | 25 | 10 | Need To Set Token Limit | Reversal | O |
403 | 25 | 11 | OTP Blocked | Reversal | O |
403 | 25 | 12 | OTP Lifetime Expired | Reversal | O |
403 | 25 | 13 | OTP Sent To Cardholer | Reversal | O |
403 | 25 | 14 | Insufficient Funds | Reversal | O |
403 | 25 | 15 | Transaction Not Permitted.[reason] | Reversal | O |
403 | 25 | 16 | Suspend Transaction | Reversal | O |
403 | 25 | 17 | Token Limit Exceeded | Reversal | O |
403 | 25 | 18 | Inactive Card/Account/Customer | Reversal | O |
403 | 25 | 19 | Merchant Blacklisted | Reversal | O |
403 | 25 | 20 | Merchant Limit Exceed | Reversal | O |
403 | 25 | 21 | Set Limit Not Allowed | Reversal | O |
403 | 25 | 22 | Token Limit Invalid | Reversal | O |
403 | 25 | 23 | Account Limit Exceed | Reversal | O |
404 | 25 | 00 | Invalid Transaction Status | Reversal | O |
404 | 25 | 01 | Transaction Not Found | Reversal | O |
404 | 25 | 02 | Invalid Routing | Reversal | O |
404 | 25 | 03 | Bank Not Supported By Switch | Reversal | O |
404 | 25 | 04 | Transaction Cancelled | Reversal | O |
404 | 25 | 05 | Merchant Is Not Registered For Card Registration Services | Reversal | O |
404 | 25 | 06 | Need To Request OTP | Reversal | O |
404 | 25 | 07 | Journey Not Found | Reversal | O |
404 | 25 | 08 | Invalid Merchant | Reversal | O |
404 | 25 | 09 | No Issuer | Reversal | O |
404 | 25 | 10 | Invalid API Transition | Reversal | O |
404 | 25 | 11 | Invalid Card/Account/Customer [info]/Virtual Account | Reversal | O |
404 | 25 | 12 | Invalid Bill/Virtual Account [Reason] | Reversal | M |
404 | 25 | 13 | Invalid Amount | Reversal | M |
404 | 25 | 14 | Paid Bill | Reversal | M |
404 | 25 | 15 | Invalid OTP | Reversal | O |
404 | 25 | 16 | Partner Not Found | Reversal | O |
404 | 25 | 17 | Invalid Terminal | Reversal | O |
404 | 25 | 18 | Inconsistent Request | Reversal | O |
404 | 25 | 19 | Invalid Bill/Virtual Account | Reversal | M |
405 | 25 | 00 | Requested Function Is Not Supported | Reversal | O |
405 | 25 | 01 | Requested Opearation Is Not Allowed | Reversal | O |
409 | 25 | 00 | Conflict | Reversal | M |
409 | 25 | 01 | Duplicate partnerReferenceNo | Reversal | O |
429 | 25 | 00 | Too Many Requests | Suspend | O |
500 | 25 | 00 | General Error | Suspend | M |
500 | 25 | 01 | Internal Server Error | Suspend | O |
500 | 25 | 02 | External Server Error | Suspend | O |
504 | 25 | 00 | Timeout | Suspend | M |
Any error response not listed in the BRIAPI response list is considered pending/suspend and requires further investigation.