API Docs - Valas 2.0 - Nego Continue
API Information
Title | Valas v2.0 |
---|---|
Version |
v1.2 |
URL Sandbox |
https://sandbox.partner.api.bri.co.id |
URL Production |
https://partner.api.bri.co.id |
Version Control
Versi Doc | Versi API | Date | Link to Document | Description |
---|---|---|---|---|
v1.0 |
v2.0 |
14 Oct 2022 |
Baseline Version |
|
v1.1 |
v2.0 |
22 Dec 2022 |
Added mandatory info and length fields to the request structure of all endpoints |
|
v1.2 | v2.0 | 30 Mar 2023 | Here | Adding RC 4038209 "Dormant Account" to the Endpoint of Transaction Valas and Transaction Valas Non-Nego |
v1.3 | v2.0 | 19 May 2023 | Here | Adding RC 4038215 "Transaction Not Permitted. Duplicate Jurnal Sequence" to the Endpoint of Transaction Valas and Transaction Valas Non-Nego |
v1.4 | v2.0 | 07 Aug 2023 | Here | Changing the mandatory "M" to "O" in the originalPartnerReferenceNo field for the Inquiry Transaction endpoint |
v1.5 | v2.0 | 03 Apr 2024 | this pages | Added endpoints for "Rate Profile", "Nego Rate Profile", and "Nego Continue". |
Product Description
Product Overview
This document aims to describe the API specifications for Valas 2.0 with detailed endpoints as follows :
- Get Token
- Valas Nego Info
- Check Deal Code
- Transaction Valas
- Transaction Valas Non Nego
- Inquiry Transaction
- Inquiry Limit
- Info Kurs Counter
- Upload Underlying
- Info Kurs Rate Profile
- Nego Rate Profile
- Nego Continue
Flow API
A. Get Token
Endpoint Description
This endpoint is used to generate a token that must be included in every API call. Place this token in the Authorization attribute in the Header.
Method | Environment | URL |
---|---|---|
POST | Sandbox | https://sandbox.partner.api.bri.co.id/oauth/client_credential/accesstoken?grant_type=client_credentials |
POST | Production | https://partner.api.bri.co.id/oauth/client_credential/accesstoken?grant_type=client_credentials |
Header Data
Array Field |
M/O |
Format |
---|---|---|
Content-Type |
M |
application/x-www-form-urlencoded |
Request Data
Array Field |
Data Type |
M/O |
Information |
---|---|---|---|
client_id |
string |
M |
Consumer key |
client_secret |
string |
M |
Consumer secret |
Signature
To ensure security in every API request, BRIAPI uses a signature to ensure that the data in each request and response cannot be tampered with by unauthorized users. The signature is generated by the service user and verified by the service receiver. The signature is formed from a predetermined payload, by implementing the SHA256-HMAC algorithm with the Consumer Secret as the key. This signature is then encrypted using Base64 and placed in the BRI-Signature attribute in the Header.
Payload
The payload consists of path, verb, token, timestamp, and body.
Example:
path=/v1.0/bansos/binding &verb=POST&token=BearerR04XSUbnm1GXNmDiXx9ysWMpFWBr×tamp=2019-01-02T13:14:15.678Z&body=
Details of each element in the payload:
Path
The value for the path is the URL after the hostname and port without query parameters.
Example :
from https://sandbox.partner.api.bri.co.id/v1.0/bansos/binding/ to /v1.0/bansos/binding
Verb
HTTP Method in uppercase.
Example : GET, POST, PUT, PATCH, and DELETE.
Token
Token used in the Authorization header.
Example:
Bearer R04XSUbnm1GXNmDiXx9ysWMpFWBr
Timestamp
The exact time you call the API. The timestamp format follows the ISO8601 format (yyyy-MM-ddTHH:mm
.SSSZ). Must be in zero UTC offset.
Example:
2019-01-02T13:14:15.678Z
Body
Request Body for calling the API.
Example:
&body={"hello":"world"}
If there is no request body, such as on GET call, leave it empty. Example:
&body=
B. Valas Nego Info
Endpoint Description
This API is used to get single exchange rate negotiation information without a deal code.
General Information
HTTP Method | POST |
---|---|
Path | /v2.0/valas-info/kurs-nego |
Type Format | JSON |
Authentication | OAuth 2.0 |
Header Structure
Key | Value | Mandatory | Length | Description | Example |
---|---|---|---|---|---|
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer {token} |
M |
- |
Token OAuth 2.0 |
|
BRI-Signature |
|
M |
64 |
Signature |
|
BRI-Timestamp |
|
M |
- |
Timestamp Timestamp the time you called the API. The time format used refers to the ISO 8601 format (yyyy-MMddTHH:mm:ss.SSSZ). The time must be in UTC zero. |
2020-01- 15T17:01: 11+07:00 |
partnerCode |
|
M |
- |
Partner code |
rxEG1EMYHQZMgb3 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
dealtCurrency |
String |
M |
3 |
|
USD |
counterCurrency | String | M | 3 | IDR |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
7 |
Response code |
2008200 |
responseMessage |
String |
M |
150 |
Response message |
Successful |
data |
Object |
M |
|
The details of the data object content can be found in the table below |
|
Structure within "data" Object
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
currencyPair |
String |
M |
|
|
USD-IDR |
currency1 |
String |
M |
|
|
USD |
currency2 |
String |
M |
|
|
IDR |
buy |
String |
M |
|
|
15669.0000 |
sell |
String |
M |
|
|
15689.0000 |
lastestUpdate |
String |
M |
|
|
2022-11-30T16:31:24.26 |
Request & Response Payload Sample
Request :
{ "dealtCurrency":"USD", "counterCurrency":"IDR" }
Normal Response :
{ "responseCode":"2008200", "responseMessage":"Successful", "data":{ "currencyPair":"USD-IDR", "currency1":"USD", "currency2":"IDR", "buy":"15669.0000", "sell":"15689.0000", "lastestUpdate":"2022-11-30T16:31:24.26" } }
Erorr Response :
{ "responseCode":"4008201", "responseMessage":"Invalid Field Format dealtCurrency" }
List of Error/Response Code
HTTP Status |
Response Code |
Status |
Response Message |
Description |
---|---|---|---|---|
200 |
2008200 |
Success |
Successful |
Success |
400 |
0601 |
Failed |
Invalid Token |
|
400 |
0602 |
Failed |
Invalid Signature |
|
400 |
0109 |
Failed |
Invalid request parameter |
|
400 |
4008201 |
Failed |
Invalid Mandatory Field {field name} |
|
400 |
4008202 |
Failed |
Invalid Field Format {field name} |
Incorrect field format or length |
401 |
4018200 |
Failed |
Unauthorized Client |
|
400 |
4008222 |
Failed |
Dealcode Expired |
|
403 |
4038215 |
Failed |
Transaction Not Permitted.dealcode already used |
|
403 |
4038215 |
Failed |
Transaction Not Permitted.value date does not match today’s date |
|
403 |
4038215 |
Failed |
Transaction Not Permitted. Inquiry Delcode Failed. |
|
504 |
5048200 |
Failed |
Timeout | Response time exceeds the timeout limit in apigee (55s) and service |
500 |
5008200 |
Failed |
General Error |
|
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
C. Check Deal Code
Endpoint Description
The Check Deal Code API is used for inquiring deal codes in BRIFX.
General Information
HTTP Method | POST |
---|---|
Path | /v2.0/valas-transaction/nego/dealcode |
Type Format | JSON |
Authentication | OAuth 2.0 |
Header Structure
Key | Value | Mandatory | Length | Description | Example |
---|---|---|---|---|---|
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer {token} |
M |
- |
Token OAuth 2.0 |
|
BRI-Signature |
|
M |
64 |
Signature |
|
BRI-Timestamp |
|
M |
- |
Timestamp Timestamp the time you called the API. The time format used refers to the ISO 8601 format (yyyy-MMddTHH:mm:ss.SSSZ). The time must be in UTC zero. |
2020-01- 15T17:01: 11+07:00 |
partnerCode |
|
M |
- |
Partner code |
rxEG1EMYHQZMgb3 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
dealCode |
String |
M |
|
|
O0003540 |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
7 |
Response code |
2008200 |
responseMessage |
String |
M |
150 |
Response message |
Successful |
data |
Object |
M |
|
The details of the data object content can be found in the table below |
|
Structure within "data" Object
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
dealNumber |
String |
M |
|
|
O0761674 |
dealDate |
String |
M |
|
|
2022-12-05T10:29:07.067 |
valueDate |
String |
M |
|
|
2022-12-05T00:00:00 |
debitCurrency |
String |
M |
|
|
USD |
creditCurrency |
String |
M |
|
|
EUR |
debitAmount |
Numerric |
M |
|
|
12.27 |
creditAmount |
Numerric |
M |
|
|
10.00 |
dealRate |
Numerric |
M |
|
|
1.2273 |
buyRate |
Numerric |
M |
|
|
13819.8280 |
sellRate |
Numerric |
M |
|
|
16961.0750 |
timeExpired |
String |
M |
|
|
2022-12-05T23:45:00 |
Request & Response Payload Sample
Request :
{ "dealCode":"O0003540" }
Normal Response :
{ "responseCode":"2008200", "responseMessage":"Successful", "data":{ "dealNumber":"O0761674", "dealDate":"2022-12-05T10:29:07.067", "valueDate":"2022-12-05T00:00:00", "debitCurrency":"USD", "creditCurrency":"EUR", "debitAmount":"12.27", "creditAmount":"10.00", "dealRate":"1.2273", "buyRate":"13819.8280", "sellRate":"16961.0750", "timeExpired":"2022-12-05T23:45:00" } }
Erorr Response :
{ "responseCode":"4008222", "responseMessage":"Dealcode Expired" }
List of Error/Response Code
HTTP Status |
Response Code |
Status |
Response Message |
Description |
---|---|---|---|---|
200 |
2008200 |
Success |
Successful |
Success |
400 |
0601 |
Failed |
Invalid Token |
|
400 |
0602 |
Failed |
Invalid Signature |
|
400 |
0109 |
Failed |
Invalid request parameter |
|
400 |
4008201 |
Failed |
Invalid Mandatory Field {field name} |
|
400 |
4008202 |
Failed |
Invalid Field Format {field name} |
Incorrect field format or length |
400 |
4008200 |
Failed |
Bad Request |
|
401 |
4018200 |
Failed |
Unauthorized Client |
|
400 |
4008222 |
Failed |
Dealcode Expired |
|
403 |
4038215 |
Failed |
Transaction Not Permitted.dealcode already used |
Parameter Response “status” parameter has the value “SLU”, “SK”, “STOK”, “GK” or other than the status “IN” and the status mentioned above |
403 |
4038215 |
Failed |
Transaction Not Permitted.value date does not match today’s date |
Transaction on dealCode is not for the specified day |
403 |
4038215 |
Failed |
Transaction Not Permitted. Inquiry Delcode Failed. |
dealCode does not exist. |
504 |
5048200 |
Failed |
Timeout | Response time exceeds the timeout limit in apigee (55s) and service |
500 |
5008200 |
Failed |
General Error |
|
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
D. Transaction Valas
Endpoint Description
The Valas Transaction API is used to conduct valas transactions based on the current exchange rate.
General Information
HTTP Method | POST |
---|---|
Path | /v2.0/valas-transaction/nego |
Type Format | JSON |
Authentication | OAuth 2.0 |
Header Structure
Key | Value | Mandatory | Length | Description | Example |
---|---|---|---|---|---|
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer {token} |
M |
- |
Token OAuth 2.0 |
|
BRI-Signature |
|
M |
64 |
Signature |
|
BRI-Timestamp |
|
M |
- |
Timestamp Timestamp the time you called the API. The time format used refers to the ISO 8601 format (yyyy-MMddTHH:mm:ss.SSSZ). The time must be in UTC zero. |
2020-01- 15T17:01: 11+07:00 |
partnerCode |
|
M |
- |
Partner code |
rxEG1EMYHQZMgb3 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
debitAccount |
String |
M |
15 |
|
030702000141509 |
creditAccount | String | M | 15 | 034401083104504 | |
dealCode | String | M | O0003540 | ||
remark | String | 15 | 374628374 | ||
partnerReferenceNo | String | M | 64 | 6278163827789 | |
underlyingReference | String | C |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
7 |
Response code |
2008200 |
responseMessage |
String |
M |
150 |
Response message |
Successful |
data |
Object |
M |
|
The details of the data object content can be found in the table below |
|
Structure within "data" Object
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
referenceNo |
String |
|
|
|
8757771 |
partnerReferenceNo |
String |
|
|
|
6278163827789 |
dealCode |
String |
|
|
|
O0003540 |
buy |
String |
|
|
|
14000.00 |
sell |
String |
|
|
|
1.00 |
debitAmount |
String |
|
|
|
11.00 |
creditAmount |
String |
|
|
|
154000.00 |
remark | String | 374628374 |
Request & Response Payload Sample
Request :
{ "debitAccount": "030702000141509", "creditAccount": "034401083104504", "dealCode": "O0003540", "remark": "374628374", "partnerReferenceNo": "6278163827789", "underlyingReference": ""/CONDITIONAL }
Normal Response :
{ "responseCode":"2008200", "responseMessage":"Successful", "data":{ "referenceNo":"8759384", "partnerReferenceNo":"6278163827813", "dealCode":"O0003540", "buy":"14000.00", "sell":"1.00", "debitAmount":"11.00", "creditAmount":"154000.00", "remark":"374628374" } }
Erorr Response :
{ "responseCode":"4038215", "responseMessage":"Transaction Not Permitted. Inquiry Failed" }
List of Error/Response Code
HTTP Status |
Response Code |
Status |
Response Message |
Description |
---|---|---|---|---|
200 |
2008200 |
Success |
Successful |
Success |
400 |
0601 |
Failed |
Invalid Token |
|
400 |
0602 |
Failed |
Invalid Signature |
|
400 |
0109 |
Failed |
Invalid request parameter |
|
400 |
4008201 |
Failed |
Invalid Mandatory Field {field name} |
|
400 |
4008202 |
Failed |
Invalid Field Format {field name} |
Incorrect field format or length |
400 |
4008200 |
Failed |
Bad Request |
|
400 |
4018200 |
Failed |
Unauthorized Client |
|
400 |
4008222 |
Failed |
Dealcode Expired |
|
403 |
4038209 |
Failed |
Dormant Account | Account is inactive |
403 |
4038215 |
Failed |
Transaction Not Permitted.dealcode already used |
Parameter Response “status” parameter has the value “SLU”, “SK”, “STOK”, “GK” or other than the status “IN” and the status mentioned above |
403 |
4038215 |
Failed |
Transaction Not Permitted.value date does not match today’s date |
Transaction on dealCode is not for the specified day |
403 |
4038215 |
Failed |
Transaction Not Permitted. Inquiry Delcode Failed. |
dealCode does not exist |
403 |
4038215 |
Failed |
Transaction Not Permitted. Inquiry Delcode Failed. |
Duplicate Jurnal Sequence |
403 |
4038218 |
Failed |
Inactive Account |
debitAccount or creditAccount is no longer active or the account cannot be withdrawn |
403 |
4038206 |
Failed |
Feature Not Allowed At This Time. Must Upload Underlying |
If the transaction exceeds the limit, you must upload the underlying |
404 |
4048211 |
Failed |
Invalid Account |
debitAccount / creditAccount yang dimasukkan tidak valid |
404 |
4048245 |
Failed |
debitAccount Not Found |
The entered debitAccount / creditAccount is invalid |
400 |
4008224 |
Failed |
Transaction Over Limit |
Exceeding the limit to making transactions |
404 |
4048241 |
Failed |
Invalid underlyingReference |
Missing input underlyingReference |
404 |
4048242 |
Failed |
Expired underlyingReference |
underlyingReference active period has ended (1 day) |
404 |
4048243 |
Failed |
underlyingReference already in uses |
underlyingReference is already in used |
403 |
4038214 |
Failed |
Insufficient Funds |
Insufficient balance |
403 |
4038215 |
Failed |
Transaction Not Permitted. Currency discrepency |
The requested debitAccount/creditAccount does not match the currency entered |
403 |
4038215 |
Failed |
Transaction Not Permitted.Transaction is not supported |
Transaction cannot be continued |
400 |
4008213 |
Failed |
Invalid BRI External ID |
Duplicate BRI EXTERNAL ID di header |
409 |
4098201 |
Failed |
Duplicate partnerReferenceNo |
partnerReferenceNo is already in use (must be unique) |
504 |
5048200 |
Failed |
Timeout | Response time exceeds the timeout limit in apigee (55s) and service |
500 |
5008200 |
Failed |
General Error |
|
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
E. Transaction Valas Non Nego
Endpoint Description
API Transaction Valas Non Nego is used to retrieve the status of a currency transaction.
General Information
HTTP Method | POST |
---|---|
Path | /v2.0/valas-transaction/counter |
Type Format | JSON |
Authentication | OAuth 2.0 |
Header Structure
Key | Value | Mandatory | Length | Description | Example |
---|---|---|---|---|---|
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer {token} |
M |
- |
Token OAuth 2.0 |
|
BRI-Signature |
|
M |
64 |
Signature |
|
BRI-Timestamp |
|
M |
- |
Timestamp Timestamp the time you called the API. The time format used refers to the ISO 8601 format (yyyy-MMddTHH:mm:ss.SSSZ). The time must be in UTC zero. |
2020-01- 15T17:01: 11+07:00 |
partnerCode |
|
M |
- |
Partner code |
rxEG1EMYHQZMgb3 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
debitAccount |
String |
M |
15 |
|
030702000141509 |
creditAccount |
String |
M |
15 |
|
034401083104504 |
debitCurrency |
String |
M |
3 |
|
USD |
creditCurrency |
String |
M |
3 |
|
IDR |
debitAmount |
String |
M |
|
|
3.00 |
remark |
String |
|
15 |
|
374628374 |
partnerReferenceNo |
String |
M |
64 |
|
6278163827120 |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
|
7 |
Response code |
2008200 |
responseMessage |
String |
|
150 |
Response message |
Successful |
data |
Object |
|
|
The details of the data object content can be found in the table below |
|
Structure within "data" Object
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
referenceNo |
String |
|
|
|
8759248 |
partnerReferenceNo |
String |
|
|
|
6278163827789 |
buy |
String |
|
|
|
13955.00 |
sell |
String |
|
|
|
1.00 |
DebitAmount |
String |
|
|
|
3.00 |
CreditAmount |
String |
|
|
|
41865.00 |
remark |
String |
|
|
|
374628374 |
Request & Response Payload Sample
Request :
{ "debitAccount":"030702000141509", "creditAccount":"034401083104504", "debitCurrency":"USD", "creditCurrency":"IDR", "debitAmount":"3.00", "remark":"374628374", "partnerReferenceNo":"6278163827120" }
Normal Response :
{ "responseCode":"2008200", "responseMessage":"Successful", "data":{ "referenceNo":"8759248", "partnerReferenceNo":"6278163827120", "buy":"13955.00", "sell":"1.00", "DebitAmount":"3.00", "CreditAmount":"41865.00", "remark":"374628374" } }
Erorr Response :
{ "responseCode":"4098201", "responseMessage":"Duplicate partnerReferenceNo" }
List of Error/Response Code
HTTP Status |
Response Code |
Status |
Response Message |
Description |
---|---|---|---|---|
200 |
2008200 |
Success |
Successful |
Success |
400 |
0601 |
Failed |
Invalid Token |
|
400 |
0602 |
Failed |
Invalid Signature |
|
400 |
0109 |
Failed |
Invalid request parameter |
|
400 |
4008201 |
Failed |
Invalid Mandatory Field {field name} |
|
400 |
4008202 |
Failed |
Invalid Field Format {field name} |
Incorrect field format or length |
400 |
4008200 |
Failed |
Bad Request |
|
401 |
4018200 |
Failed |
Unauthorized Client |
|
404 |
4048245 |
Failed |
debitAccount Not Found | The entered debitAccount / creditAccount is invalid |
400 |
4008224 |
Failed |
Transaction Over Limit | Exceeding the limit for making transactions |
403 |
4038209 |
Failed |
Dormat Account | Account is inactive |
403 |
4038214 |
Failed |
Insufficient Funds | Insufficient Balance |
403 |
4038215 |
Failed |
Transaction Not Permitted.Currency discrepency | The requested debitAccount/creditAccount does not match the currency entered |
403 |
4038215 |
Failed |
Transaction Not Permitted.Transaction is not supported | Transaction cannot be continued |
400 |
4008213 |
Failed |
Invalid BRI External ID | Duplicate BRI EXTERNAL ID in header |
403 |
4038215 |
Failed |
Transaction Not Permitted.Unused Parameter | There is a creditAmount field in the body of the request |
403 |
4038215 |
Failed |
Transaction Not Permitted. Duplicate Jurnal Sequence | Duplicate Jurnal Sequence |
404 |
4048213 |
Failed |
Invalid Amount | DebitAmount input "0" or less than 1 |
404 |
4048211 |
Failed |
Invalid Account | debitAccount / creditAccount entered is invalid |
403 |
4038218 |
Failed |
Inactive Account | debitAccount or creditAccount is no longer active |
409 |
4098201 |
Failed |
Duplicate partnerReferenceNo | partnerReferenceNo is already in use (must be unique) |
504 | 5048200 | Failed | Timeout | Response time exceeds timeout limit in apigee (55s) and service |
500 | 5008200 | Failed | General Error |
|
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
F. Inquiry Transaction
Endpoint Description
The Inquiry Transaction API is used to perform an inquiry on valas transactions that have been carried out..
General Information
HTTP Method | POST |
---|---|
Path | /v2.0/valas-transaction/inquiry |
Type Format | JSON |
Authentication | OAuth 2.0 |
Header Structure
Key | Value | Mandatory | Length | Description | Example |
---|---|---|---|---|---|
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer {token} |
M |
- |
Token OAuth 2.0 |
|
BRI-Signature |
|
M |
64 |
Signature |
|
BRI-Timestamp |
|
M |
- |
Timestamp Timestamp the time you called the API. The time format used refers to the ISO 8601 format (yyyy-MMddTHH:mm:ss.SSSZ). The time must be in UTC zero. |
2020-01- 15T17:01: 11+07:00 |
partnerCode |
|
M |
- |
Partner code |
rxEG1EMYHQ ZMgb3 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
originalPartnerReferenceNo |
String |
O |
64 |
|
6278163827789 |
originalReferenceNo |
String |
M |
64 |
|
8757771 |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
|
7 |
Response code |
2008200 |
responseMessage |
String |
|
150 |
Response message |
Successful |
data |
Object |
|
|
Details of the object data fields are in the table below. |
|
Structure within "data" Object
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
originalPartnerReferenceNo |
String |
|
|
|
62791638699848 |
originalReferenceNo |
String |
|
|
|
7540140 |
dealCode |
String |
|
|
|
AP60136176 |
buy |
String |
|
|
|
10698.2569 |
sell |
String |
|
|
|
126.9504 |
amount |
String |
|
|
|
100979.86 |
remark |
String |
|
|
|
3746283742343454555445567788776 5544345671234512345123451234561 23 |
originalTransactionStatusCode |
String |
|
|
|
00 |
originalTransactionStatus |
String |
|
|
|
Transaction approved |
debitAmount |
String |
|
|
|
100979.86 |
creditAmount |
String |
|
|
|
84344627.11 |
Request & Response Payload Sample
Request :
{ "originalPartnerReferenceNo":"6278163827789", "originalReferenceNo":"8757771" }
Normal Response :
{ "responseCode":"2008200", "responseMessage":"Successful", "data":{ "originalPartnerReferenceNo":"62791638699848", "originalReferenceNo":"7540140", "dealCode":"AP60136176", "buy":"10698.2569", "sell":"126.9504", "debitAmount":"100979.86", "creditAmount":"84344627.11", "remark":"3746283742343454555445567788776554434567123451234512345123456123", "originalTransactionStatusCode":"00", "originalTransactionStatus":"Transaction approved" } }
Erorr Response :
{ "responseCode":"4048201", "responseMessage":"Transaction Not Found" }
List of Error/Response Code
HTTP Status |
Response Code |
Status |
Response Message |
Description |
---|---|---|---|---|
200 |
2008200 |
Success |
Successful |
Success |
400 |
0601 |
Failed |
Invalid Token |
|
400 |
0602 |
Failed |
Invalid Signature |
|
400 |
0109 |
Failed |
Invalid request parameter |
|
400 |
4008201 |
Failed |
Invalid Mandatory Field {field name} |
|
400 |
4008202 |
Failed |
Invalid Field Format {field name} |
Incorrect field format or length |
400 |
4008200 |
Failed |
Bad Request |
|
401 |
4018200 |
Failed |
Unauthorized Client |
|
404 |
4048201 |
Failed |
Transaction Not Found |
originalPartnerReferenceNo & originalRefrenceNo does not exist |
504 |
5048200 |
Failed |
Timeout | Response time exceeds timeout limit in apigee (55s) and service |
500 |
5008200 |
Failed |
General Error |
|
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
G. Inquiry Limit
Endpoint Description
The Inquiry Limit API is used to check customer daily limits.
General Information
HTTP Method | POST |
---|---|
Path | /v2.0/valas-transaction/inquiry-limit |
Type Format | JSON |
Authentication | OAuth 2.0 |
Header Structure
Key | Value | Mandatory | Length | Description | Contoh |
---|---|---|---|---|---|
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer {token} |
M |
- |
Token OAuth 2.0 |
|
BRI-Signature |
|
M |
64 |
Signature |
|
BRI-Timestamp |
|
M |
- |
Timestamp Timestamp the time you called the API. The time format used refers to the ISO 8601 format (yyyy-MMddTHH:mm:ss.SSSZ). The time must be in UTC zero. |
2020-01- 15T17:01: 11+07:00 |
partnerCode |
|
M |
- |
Partner code |
rxEG1EMYHQ ZMgb3 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
debitAccount |
String |
M |
15 |
|
020602000008513 |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
|
7 |
Response code |
2008200 |
responseMessage |
String |
|
150 |
Response message |
Successful |
data |
object |
|
|
The details of the data object content can be found in the table below |
|
Structure within "data" Object
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
totalTransaction |
String |
|
|
|
0 |
underlyingThreshold |
String |
|
|
|
25000 |
underlyingFormulas |
String |
|
|
|
PER_BULAN |
Request & Response Payload Sample
Request :
{ "debitAccount": "020602000008513" }
Normal Response :
{ "responseCode": "2008200", "responseMessage": "Successful", "data": { "totalTransaction": 0, "underlyingThreshold": "25000", "underlyingFormulas": "PER_BULAN" } }
Erorr Response :
{ "responseCode": "4008202", "responseMessage": "Invalid Mandatory Field debitAccount" }
List of Error/Response Code
HTTP Status |
Response Code |
Status |
Response Message |
Description |
---|---|---|---|---|
200 |
2008200 |
Success |
Successful |
Success |
400 |
0601 |
Failed |
Invalid Token |
|
400 |
0602 |
Failed |
Invalid Signature |
|
400 |
0109 |
Failed |
Invalid request parameter |
|
400 |
4008201 |
Failed |
Invalid Mandatory Field {field name} |
|
400 |
4008202 |
Failed |
Invalid Field Format {field name} |
Incorrect field format or length |
400 |
4008200 |
Failed |
Bad Request |
|
401 |
4018200 |
Failed |
Unauthorized Client |
|
404 |
4048245 |
Failed |
debitAccount Not Found |
debitAccount Not Found |
504 |
5048200 |
Failed |
Timeout | Response time exceeds timeout limit in apigee (55s) and service |
500 |
5008200 |
Failed |
General Error |
|
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
H. Info Kurs Counter
Endpoint Description
The Counter Exchange Rate Info API is used to get a single counter exchange rate info.
General Informasi
HTTP Method | POST |
---|---|
Path | /v2.0/valas-info/kurs-counter |
Type Format | JSON |
Authentication | OAuth 2.0 |
Header Structure
Key |
value |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer {token} |
M |
- |
Token OAuth 2.0 |
|
BRI-Signature |
|
M |
64 |
Signature |
|
BRI-Timestamp |
|
M |
- |
Timestamp Timestamp the time you called the API. The time format used refers to the ISO 8601 format (yyyy-MMddTHH:mm:ss.SSSZ). The time must be in UTC zero. |
2020-01- 15T17:01: 11+07:00 |
partnerCode |
|
M |
- |
Partner code |
rxEG1EMYHQ ZMgb3 |
Request Structure
Key |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
dealtCurrency |
string |
M |
3 |
|
USD |
counterCurrency |
string |
M |
3 |
|
IDR |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
string |
7 |
|
Response Code |
2008200 |
responseMessage |
string |
150 |
|
Response Message |
Successful |
data |
Object |
|
|
The details of the data object content can be found in the table below |
|
Structure within "data" Object
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
currency |
String |
|
|
|
USD |
counterBuy |
String |
|
|
|
13955.0000 |
counterSell |
String |
|
|
|
14105.0000 |
LastestUpdate |
String |
|
|
|
2022-12-02T13:28:22.1 |
Request & Response Payload Sample
Request :
{ "dealtCurrency":"USD", "counterCurrency":"IDR" }
Normal Response :
{ "responseCode":"2008200", "responseMessage":"Successful", "data":{ "currency":"USD", "counterBuy":"13955.0000", "counterSell":"14105.0000", "LastestUpdate":"2022-12-02T13:28:22.1" } }
Error Response :
{ "responseCode":"4048201", "responseMessage":"Transaction Not Found" }
List of Error/Response Code
HTTP Status |
Response Code |
Status |
Response Message |
Description |
---|---|---|---|---|
200 |
2008200 |
Success |
Successful |
Success |
400 |
0601 |
Failed |
Invalid Token |
|
400 |
0602 |
Failed |
Invalid Signature |
|
400 |
0109 |
Failed |
Invalid request parameter |
|
400 |
4008201 |
Failed |
Invalid Mandatory Field {field name} |
|
400 |
4008202 |
Failed |
Invalid Field Format {field name} |
Incorrect field format or length |
401 |
4018200 |
Failed |
Unauthorized Client |
|
400 |
4008200 |
Failed |
Bad Request |
|
404 |
4048201 |
Failed |
Transaction Not Found |
|
403 |
4038215 |
Failed |
Transaction Not Permitted.Currency Pair Not Found |
Currecy List is not registered in Backend |
504 |
5048200 |
Failed |
Timeout | Response time exceeds timeout limit in apigee (55s) and service |
500 |
5008200 |
Failed |
General Error |
|
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
I. Upload
Endpoint Description
Upload API is used to upload underlying.
General Information
HTTP Method | POST |
---|---|
Path | /v2.0/valas-transaction/upload-underlying |
Type Format | JSON |
Authentication | OAuth 2.0 |
Header Structure
Key | Value | Mandatory | Length | Description | Contoh |
---|---|---|---|---|---|
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer {token} |
M |
- |
Token OAuth 2.0 |
|
BRI-Signature |
|
M |
64 |
Signature |
|
BRI-Timestamp |
|
M |
- |
Timestamp Timestamp the time you called the API. The time format used refers to the ISO 8601 format (yyyy-MMddTHH:mm:ss.SSSZ). The time must be in UTC zero. |
2020-01- 15T17:01: 11+07:00 |
partnerCode |
|
M |
- |
Partner code |
rxEG1EMYHQ ZMgb3 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
fileData |
base64 |
M |
|
Files with a maximum size of 5MB |
{inputan base64}} |
fileName |
String |
M |
|
File name |
fileNameTest |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
|
7 |
Response code |
2008200 |
responseMessage |
String |
|
150 |
Response message |
Successful |
data |
object |
|
|
The details of the data object content can be found in the table below |
|
Response Structure in object"data"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
underlyingReference |
String |
|
|
|
1669089033515629956 |
Request & Response Payload Sample
Request :
curl --location --request POST 'https://sandbox.partner.api.bri.co.id/v2.0/valas/upload-underlying' \ --header 'BRI-Signature: {{signature}}' \ --header 'BRI-Timestamp: {{timestamp}}' \ --header 'Content-Type: application/json' \ --header 'partnerCode: rxEG1EMYHQZMgb3' \ --data-raw '{ "fileData": "{Inputan Base64}", "fileName": "fileNameTest" }'
Normal Response :
{ "responseCode":"2008200", "responseMessage":"Successful", "data":{ "underlyingReference":"1669089033515629956" } }
Erorr Response :
{ "responseCode":"4008201", "responseMessage":"Invalid Field Format fileName" }
List of Error/Response Code
HTTP Status |
Response Code |
Status |
Response Message |
Description |
---|---|---|---|---|
200 |
2008200 |
Success |
Successful |
Success |
400 |
0601 |
Failed |
Invalid Token |
|
400 |
0602 |
Failed |
Invalid Signature |
|
400 |
0109 |
Failed |
Invalid request parameter |
|
400 |
4008201 |
Failed |
Invalid Mandatory Field {field name} |
|
400 |
4008202 |
Failed |
Invalid Field Format {field name} |
Request length, format does not match |
400 |
4008200 |
Failed |
Bad Request |
|
401 |
4018200 |
Failed |
Unauthorized Client |
|
403 |
4038215 |
Failed |
Transaction Not Permitted.Files too big |
Uploaded files exceed 10 MB |
403 |
4038215 |
Failed |
Transaction Not Permitted. Duplicate filename. |
Already Existing File Name |
413 |
- |
Failed |
Request Entity Too Large |
Uploaded files exceed 5 MB |
504 |
5048200 |
Failed |
Timeout | Response time exceeds the timeout limit in apigee (55s) and service |
500 |
5008200 |
Failed |
General Error |
|
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
J. Info Kurs Rate Profile
Endpoint Description
The Rate Profile Exchange Rate Info API is used to get information from the Rate Profile exchange rate.
General Information
HTTP Method | POST |
---|---|
Path | /v2.0/valas-info/rate-profile |
Type Format | JSON |
Authentication | OAuth 2.0 |
Header Structure
Key | Value | Mandatory | Length | Description | Contoh |
---|---|---|---|---|---|
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer {token} |
M |
- |
Token OAuth 2.0 |
|
BRI-Signature |
|
M |
64 |
Signature |
|
BRI-Timestamp |
|
M |
- |
Timestamp Timestamp the time you called the API. The time format used refers to the ISO 8601 format (yyyy-MMddTHH:mm:ss.SSSZ). The time must be in UTC zero. |
2020-01- 15T17:01: 11+07:00 |
partnerCode |
|
M |
- |
Partner code |
rxEG1EMYHQ ZMgb3 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
accountNo |
String |
M |
16 |
|
0206xxxxxxxxxxxx |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
|
7 |
Response code |
2008200 |
responseMessage |
String |
|
150 |
Response message |
Successful |
data |
Array Object |
|
|
Details of the object data fields are in the table below. |
|
Response Structure in object"data"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
underlyingReference |
String |
|
|
|
1669089033515629956 |
Request & Response Payload Sample
Request :
{ "accountNo": "0206xxxxxxxxxxxx", }
Normal Response :
{ "responseCode": "2008200", "responseMessage": "Successful", "data": [ { "bid": "14835", "ask": "15055", "currencyPair": "USD-IDR" }, { "bid": "16387.656", "ask": "16445.5", "currencyPair": "EUR-IDR" } ] }
Erorr Response :
{ "responseCode": "4048201", "responseMessage": "Transaction Not Found" }
List of Error/Response Code
HTTP Status |
Response Code |
Status |
Response Message |
Description |
---|---|---|---|---|
200 |
2008200 |
Success |
Successful | Success |
400 |
0601 |
Failed |
Invalid Token |
|
400 |
0602 |
Failed |
Invalid Signature |
|
400 |
0109 |
Failed |
Invalid request parameter |
|
400 |
4008202 |
Failed |
Invalid Mandatory Field {field name} |
|
400 |
4008201 |
Failed |
Invalid Field Format {field name} |
Incorrect field format or length |
401 |
4018200 |
Failed |
Unauthorized Client |
|
400 |
4008200 |
Failed |
Bad Request |
|
504 |
5048200 |
Failed |
Timeout |
Response time exceeds timeout limit in apigee (55s) and service |
500 |
5008200 |
Failed |
General Error |
|
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
K. Nego Rate Profile
Endpoint Description
The Negotiated Rate Profile Transaction API is used to carry out valas transactions with a rate profile or negotiable exchange rate.
General Information
HTTP Method | POST |
---|---|
Path | /v2.0/valas-transaction/nego-rate-profile |
Type Format | JSON |
Authentication | OAuth 2.0 |
Header Structure
Key | Value | Mandatory | Length | Description | Contoh |
---|---|---|---|---|---|
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer {token} |
M |
- |
Token OAuth 2.0 |
|
BRI-Signature |
|
M |
64 |
Signature |
|
BRI-Timestamp |
|
M |
- |
Timestamp Timestamp the time you called the API. The time format used refers to the ISO 8601 format (yyyy-MMddTHH:mm:ss.SSSZ). The time must be in UTC zero. |
2020-01- 15T17:01: 11+07:00 |
partnerCode |
|
M |
- |
Partner code |
rxEG1EMYHQ ZMgb3 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
partnerReferenceNo |
String |
M |
64 |
|
|
debitAccount |
String |
M |
16 |
|
0206xxxxxxxxxxxx |
creditAccount | |||||
debitCurrency | |||||
creditCurrency | |||||
debitAmount | |||||
remark | |||||
debitRate | |||||
underlyingReference |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
7 |
Response code |
2008200 |
responseMessage |
String |
M |
150 |
Response message |
Successful |
data |
object |
|
|
|
|
Structure within "data" Object
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
referenceNo |
String |
M |
|
|
8759384 |
partnerReferenceNo | String | M | 6278163827813 | ||
buy | String | M | USD-IDR | ||
sell | String | M | 14000.00 | ||
debitAmount | String | M | 1.00 | ||
creditAmount | String | M | 154000.00 | ||
remark | String | M | 374628374 |
Request & Response Payload Sample
Request :
{ "partnerReferenceNo":"6278163827120", "debitAccount":"030702000141509", "creditAccount":"034401083104504", "debitCurrency":"EUR", "creditCurrency":"USD", "debitAmount":"10000.00", "remark":"test", "debitRate":"1.0825", "underlyingReference":"1029384756" }
Normal Response :
{ "responseCode":"2008200", "responseMessage":"Successful", "data":{ "referenceNo":"8759384", "partnerReferenceNo":"6278163827813", "buy":"14000.00", "sell":"1.00", "debitAmount":"11.00", "creditAmount":"154000.00", "remark":"374628374" } }
Erorr Response :
{ "responseCode":"4048201", "responseMessage":"Transaction Not Found" }
List of Error/Response Code
HTTP Status |
Response Code |
Status |
Response Message |
Description |
---|---|---|---|---|
200 |
2008200 |
Success |
Successful |
Success |
400 |
0601 |
Failed |
Invalid Token |
|
400 |
0602 |
Failed |
Invalid Signature |
|
400 |
0109 |
Failed |
Invalid request parameter |
|
400 |
4008201 |
Failed |
Invalid Mandatory Field {field name} |
|
400 |
4008202 |
Failed |
Invalid Field Format {field name} |
Incorrect field format or length |
400 |
4008200 |
Failed |
Bad Request |
|
401 |
4018200 |
Failed |
Unauthorized Client |
|
504 |
5048200 |
Failed |
Timeout | Response time exceeds the timeout limit in apigee (55s) and service |
500 |
5008200 |
Failed |
General Error |
|
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
L. Nego Continue
Endpoint Description
The Negotiation Continue Transaction API is used to continue negotiating Valas rates submitted by partners/merchants.
General Information
HTTP Method | POST |
---|---|
Path | /v2.0/valas-transaction/continue |
Type Format | JSON |
Authentication | OAuth 2.0 |
Header Structure
Key | Value | Mandatory | Length | Description | Contoh |
---|---|---|---|---|---|
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer {token} |
M |
- |
Token OAuth 2.0 |
|
BRI-Signature |
|
M |
64 |
Signature |
|
BRI-Timestamp |
|
M |
- |
Timestamp Timestamp the time you called the API. The time format used refers to the ISO 8601 format (yyyy-MMddTHH:mm:ss.SSSZ). The time must be in UTC zero. |
2020-01- 15T17:01: 11+07:00 |
partnerCode |
|
M |
- |
Partner code |
rxEG1EMYHQ ZMgb3 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
debitAccount |
String |
M |
16 |
|
0206xxxxxxxxxxxx |
creditAccount |
String |
M |
16 |
|
|
debitCurrency | String | M | 3 | ||
creditCurrency | String | M | 3 | ||
debitAmount | String | M | |||
debitRate | String | M |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
|
7 |
Response code |
2008200 |
responseMessage |
String |
|
150 |
Response message |
Successful |
additionalInfo |
object |
|
|
|
|
Structure within "data" Object
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
dealCode |
String |
|
|
|
N35227921 |
Request & Response Payload Sample
Request :
{ "partnerReferenceNo":"6278163827120", "debitAccount":"030702000141509", "creditAccount":"034401083104504", "debitCurrency":"EUR", "creditCurrency":"USD", "debitAmount":"10000.00", "debitRate":"1.0825" }
Normal Response :
{ "responseCode":"2008200", "responseMessage":"Successful", "additionalInfo":{ "dealCode":"N35227921" } } }
Erorr Response :
{ "responseCode":"4048201", "responseMessage":"Transaction Not Found" }
List of Error/Response Code
HTTP Status |
Response Code |
Status |
Response Message |
Description |
---|---|---|---|---|
200 |
2008200 |
Success |
Successful |
Success |
400 |
0601 |
Failed |
Invalid Token |
|
400 |
0602 |
Failed |
Invalid Signature |
|
400 |
0109 |
Failed |
Invalid request parameter |
|
400 |
4008201 |
Failed |
Invalid Mandatory Field {field name} |
|
400 |
4008202 |
Failed |
Invalid Field Format {field name} |
Incorrect field format or length |
400 |
4008200 |
Failed |
Bad Request |
|
401 |
4018200 |
Failed |
Unauthorized Client |
|
504 |
5048200 |
Failed |
Timeout | Response time exceeds the timeout limit in apigee (55s) and service |
500 |
5008200 |
Failed |
General Error |
|
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.