Concept
Billing is the process by which business models, such as PA, Claim, and RI, generate and send ARAP and fee information to the BCP for processing.
Upon the completion of a transaction within a business module, such as policy issuance or claim settlement, it’s necessary to provide data to the BCP module. This data is used not only to record such transactions but also to initiate the process of collecting premiums or paying claims to end-customers. Such a recording process is called Billing to have a Bill generated.
Usually, if the bill is to collect money, it will involve one or multiple AR (Account Receivable) or if it’s to pay out money, it involves one or multiple AP (Account Payable). Each AR or AP can contain a list of detailed breakdown of fees.
From a system implementation perspective, the billing process usually involves integration with multiple systems, including:
- Policy Admin
- Claim
- Reinsurance
- Sales Channel
- Printing Management
All these systems can send their billing information to BCP via our billing APIs for further transactions.
Upon receiving the billing, the BCP module can conduct collections, payments, or offsets one by one or consolidate them into multiple statements for bulk operations.
AR and AP statuses change between Outstanding, Paid, and Cancelled. AR and AP balances change from a certain amount of 0.
Key Configuration
Now all BCP-related configuration are conducted in the data table module. There are several data tables that are key to launching any new project, and users must ensure they have a complete understanding of all these tables before starting any BCP project.
- BcpFeeType
Fee Type Definition: The bcpFeeType passed to BCP through the SyncDataToBCP API must be defined in this table. In addition, bcpFeeType and BizModule also must match, otherwise BCP cannot correctly recognize data, which will cause SyncDataToBCP requests to fail.
- CurrencySetting
Currency Setting for Branch: This includes the local currency and booking currency. If branch and currency data are missing from this table, the system page will display an error message, and SyncDataToBCP API requests will also fail.
API List
- /bcp-core/fee/v1/syncDataToBCP
- /bcp-core/fee/v1/syncAdditionalFeeToBCP?generateNewTransaction={{isNewTransaction}}
- /bcp-core/arap/v1/updateArapUnSensitiveFields
- /bcp-core/arap/v1/cancelArap
- /bcp-core/arap/v1/cancelArapWithGenerateFeeWithModel
- /bcp-core/prepay/v1/cancelPrepayOrder
- /bcp-core/fee/v1/syncDataToBCPBatch
ARAP & Fee Creation API (Business Data Transfer BCP)
API Path
/bcp-core/fee/v1/syncDataToBCP
Business Usage
The business system transmits accounts receivable and accounts payable data to BCP, which generates accounts receivable and accounts payable data.
A business data transmission can contain multiple distinct fee components, such as pre-tax premiums, taxes, commissions, and other types of fees, but can only generate one AR or AP record. A transaction cannot have multiple AR or AP records, otherwise it will result in anomalies in BCPFee data during subsequent operations.
If commissions are treated as a fee item under accounts receivable (AR) or accounts payable (AP), then subsequent collection, payment, or cancellation operations performed on the AR/AP will cause the commissions to be offset or cancelled accordingly. In actual business scenarios, however, commissions are mostly settled independently of AR and AP, while still being dependent on the payment results of AR and AP transactions. In such cases, AR/AP data and commission data should be transmitted to BCP separately. Specifically, only AR/AP data is sent in the first data transmission, which is also referred to as the main transaction. Subsequently, based on this main transaction, commission data is transmitted separately, with an associative relationship established between the two sets of data in the system. This subsequent transmission of commission data is also defined as the additional transaction.
Dynamic Fields
The SyncdataToBcp API supports dynamic fields. Please note that dynamic fields in the API need to be configured in the Data Dictionary in advance, otherwise the API will report an error stating that the field does not exist.
A single transaction may contain multiple accounts receivable (AR)/accounts payable (AP) entries, while only one accounts receivable (AR) or one accounts payable (AP) entry is allowed under the same installment of the transaction.
| Compliant Scenario Examples | Non-Compliant Scenario Examples | ||||
|---|---|---|---|---|---|
| Transaction | Current Period | AR or AP | Transaction | Current Period | AR or AP |
| Transaction 1 | 1 | 1 AR | Transaction 2 | 1 | 1 AR |
| Transaction 1 | 2 | 1 AR | Transaction 2 | 1 | 1 AR |
| Transaction 1 | 3 | 1 AR | Transaction 2 | 1 | 1 AR |
API Sample
main transaction Sample Request
{
"BizModule": "10",
"BizSource": "1",
"BizTransType": "NEWBIZ",
"BizUniqueId": "104XXXXXXX3,F166XXXXX5A70F96A90XXXXX9718DXXX",
"BookingCurrencyCode": "USD",
"BranchCode": "10006",
"ChannelCode": "PTY10000047304001",
"ClaimNo": null,
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"FeeList": [
{
"BcpFeeType": "100101",
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"BankName": null,
"CommissionStatus": "1",
"CreditCardHolderName": null,
"CreditCardNo": null,
"OrderStatus": "",
"PayerPayeeType": "IndiCustomer",
"BranchCode": "10006",
"CurrencyCode": "USD",
"PayerPayeeName": "PolicyCollection",
"PaymentMethod": "100",
"TotalPeriods": 1,
"DirectEr": 1,
"DirectBookingEr": 1,
"Amount": 1004.4,
"Balance": 1004.4,
"FeeId": 10480820015,
"CurrentPeriod": 1,
"DueDate": "2024-05-18",
"GlPostDueDate": "2024-05-18",
"PeriodStartDate": "2024-05-18",
"PeriodEndDate": "2024-05-18",
"Commission": 93,
"Tax": 74.4
},
{
"BcpFeeType": "100400",
"Amount": 74.4,
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"CommissionStatus": "1",
"FeeId": 10480820015,
"BranchCode": "10006",
"DueDate": "2024-05-18",
"GlPostDueDate": "2024-05-18",
"CurrencyCode": "USD",
"DirectEr": 1,
"DirectBookingEr": 1,
"CurrentPeriod": 1,
"TotalPeriods": 1,
"PeriodStartDate": "2024-05-18",
"PeriodEndDate": "2024-05-18",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100"
},
{
"BcpFeeType": "100501",
"Amount": 930,
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"CommissionStatus": "1",
"FeeId": 10480820015,
"BranchCode": "10006",
"DueDate": "2024-05-18",
"GlPostDueDate": "2024-05-18",
"CurrencyCode": "USD",
"DirectEr": 1,
"DirectBookingEr": 1,
"CurrentPeriod": 1,
"TotalPeriods": 1,
"PeriodStartDate": "2024-05-18",
"PeriodEndDate": "2024-05-18",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100"
}
],
"IsPrepay": "N",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyHolderName": "PolicyCollection",
"PolicyHolderTypeCode": "",
"PolicyHolderTypeName": "IndiCustomer",
"PolicyNo": "POTBTI01238631",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductName": "API TEST",
"QuotationNo": "",
"RefTransId": "104XXXXXXX3,F166XXXXX5A70F96A90XXXXX9718DXXX",
"RefTransNo": "POTBTI01238631",
"TotalPeriods": 1
}Sample Response
[
{
"@pk": 10473721498,
"@type": "BcpArap-Arap",
"Amount": 1004.4,
"ArapCate": "1",
"ArapId": "104XXXXXXX8,F28FXXXXX1580A36D0A2XXXXX9515XXX",
"ArapNo": "DR20240500003747",
"ArapStatus": "1",
"ArapType": "-1001",
"Balance": 1004.4,
"BizTransId": "1047XXXXX94,21F4XXXXX78E99D2BXXXXXD331730XXX",
"BookingCurrencyCode": "USD",
"BusinessObjectId": 1100002651088,
"Commission": 93,
"CurrencyCode": "USD",
"CurrentPeriod": 1,
"DirectBookingEr": 1,
"DirectEr": 1,
"DueDate": "2024-05-18",
"GenerateDate": "2024-05-17T14:47:09.554",
"HasMandate": "N",
"HasNote": "N",
"IsApproved": "N",
"IsOffsetByCommission": "N",
"LocalCurrencyCode": "INR",
"NeedStatement": "N",
"OffsetAmount": 0,
"OffsetByCommissionAmount": 0,
"OperateTime": "2024-05-17T14:47:09.554",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100",
"PeriodEndDate": "2024-05-18",
"PeriodStartDate": "2024-05-18",
"RefFeeId": 10473721495,
"Tax": 74.4,
"TotalPeriods": 1,
"Transaction": {
"@pk": 10473721494,
"@type": "BcpBizTransaction-BizTransaction",
"BizModule": "10",
"BizSource": "1",
"BizTransId": "104XXXXX494,21F48XXXXX8E99XXXXX936D33173XXXX",
"BizTransTime": "2024-05-17T14:47:06",
"BizTransType": "NEWBIZ",
"BizUniqueId": "1048XXXXX03,F1667CXXXXX70F9XXXXXAB469718XXXX",
"BookingCurrencyCode": "USD",
"BranchCode": "10006",
"BranchName": "India Branch",
"BusinessObjectId": 1100002651370,
"ChannelCode": "PTY10000047304001",
"ChannelName": "TEST0418",
"ChannelType": "13",
"ChannelTypeName": "Individual Agent",
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"LocalCurrencyCode": "INR",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyHolderName": "PolicyCollection",
"PolicyNo": "POTBTI01238631",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductName": "API TEST",
"RefTransId": "1048XXXXX03,F1667CXXXXX70F9XXXXXAB469718XXXX",
"RefTransNo": "POTBTI01238631",
"TotalPeriods": 1,
"CustomerField001":"Field001",
"CustomerField002":"Field002"
},
"VersionSeq": 1
}
]Additional Transaction Sample Request
In this data transmission, based on the BizTransId returned in the main transaction, the BizTransId needs to be transmitted to BCP through the parameter refTransId. In the BCP system, the transaction in step 1 will be associated with the transaction being called this time.
Sample Request
{
"BizModule": "40",
"BizSource": "1",
"BizTransType": "SALESCHANNEL",
"BizUniqueId": "1048XXXXX03,F166XXXXX5A70F96A9XXXXX9718D075100XXX",
"RefTransId": "10473XXXXX4,21F4XXXX78E9XXXX2936D3XXXXXE8",
"BookingCurrencyCode": "USD",
"BranchCode": "10006",
"ChannelCode": "PTY10000047304001",
"ClaimNo": null,
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"FeeList": [
{
"BcpFeeType": "100600",
"Amount": 930,
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"CommissionStatus": "1",
"FeeId": 10279000023,
"BranchCode": "10001",
"DueDate": "2024-04-09",
"CurrencyCode": "USD",
"DirectEr": 1,
"DirectBookingEr": 1,
"CurrentPeriod": 1,
"TotalPeriods": 1,
"PeriodStartDate": "2024-04-09",
"PeriodEndDate": "2024-04-09",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100"
}
],
"IsPrepay": "N",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyHolderName": "PolicyCollection",
"PolicyHolderTypeCode": "",
"PolicyHolderTypeName": "IndiCustomer",
"PolicyNo": "POTBTI01238631",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductName": "API TEST",
"QuotationNo": "",
"RefTransNo": "POTBTI01238631",
"TotalPeriods": 1
}Sample Response
No returnInternal Data Behavior
Related Data Dictionaries:
BcpBizTransaction,BcpFee,BcpArap,SalesCommission
The data of BcpFee can be mainly used in three scenarios based on the field BcpFeeType:
- Enter
BcpArap - Enter
SalesCommission - Send to GL
See the configuration of BcpFeeType code table.
Steps:
-
Store the main business data of the issue after paid transaction in the main transaction model
BcpBizTransactionwhere data is unmodifiable after it is sent to BCP. -
Generate the main transaction model first, and then the main fee model
BcpFee; associate the main fee model withBcpBizTransactionthrough the primary keyBizTransId. Data in the main fee model is unmodifiable. -
Determine whether the ARAP and commission data are generated and if it’s needed to send to GL based on the field BcpFeeType of
BcpFee. -
Store the generated ARAP data in
BcpArap; associateBcpArapwithBcpBizTransactionthrough the field BizTransId and withBcpFeethrough the filed RefFeeId. In the subsequent operations, Balance and ArapStatus fields will be changed. -
Store the generated commission data in
SalesCommission; associateSalesCommissionwithBcpBizTransactionthrough the field BizTransId and withBcpFeethrough the field RefFeeId. In the subsequent operations, two fields will be changed: Balance and CommissionStatus. -
Call GI API
GLIntegrationVoucherService.createVoucherDetailto send the data ofBcpFeeto GL when required.
-
FeeType configuration is important for BCP. BcpFeeType plays an important role in all ARAP, COMMISSION and GL transactions. To ensure BCP functions normally, the system administrator needs to have a comprehensive understanding of how to configure the data table - BcpFeeType in advance.
-
When being associated with the main transaction model
BcpBizTransaction,BcpFeedata needs to be sent to GL. Take the following steps:(1) Call the API
FeeRestful.getFeeListByTransIdsto get the targeted data.(2) Change the BcpFeeType to the viable type listed in Key Domain and DB Tables.
(3) Call the API
FeeRestful.createListto create a newBcpFeeand send it to GL. -
The field BcpFeeType cannot be directly sent to GL.
Continue Transmission Fee API
API Path
/bcp-core/fee/v1/syncAdditionalFeeToBCP?generateNewTransaction=false
Business Usage
If the business data has been transmitted to BCP in the main transaction, there are additional fees for the business that also need to be transmitted.
For example, in the business scenario of writing off fees after reinsurance payment, due to the large amount of data for the fees to be written off, a single data request cannot transmit all the fee data to BCP and requires multiple request processing. So data processing can be done through the syncAdditionalFeeToBCP API. When making a request, the parameter bizUniqueId must be the same as the bizUniqueId in the main transaction.
API Sample
Sample Request
{
"bizUniqueId": "104XXXXX003,F166XXXXX5A70F96XXXXXB469718DXXX",
"feeList": [
{
"bcpFeeType": "100900",
"amountSign": "+",
"arapCate": "1",
"arapStatus": "1",
"bankName": null,
"commissionStatus": "1",
"creditCardHolderName": null,
"creditCardNo": null,
"orderStatus": "",
"payerPayeeType": "",
"currencyCode": "USD",
"payerPayeeName": "feeListTrue",
"paymentMethod": "100",
"totalPeriods": 2,
"directEr": 1,
"directBookingEr": 1,
"amount": 1500,
"balance": 1500,
"branchCode": "10006",
"currentPeriod": 2,
"periodStartDate": "2024-03-13",
"periodEndDate": "2024-12-13"
}
]
}Sample Response
No return.The syncAdditionalFeeToBCP is used to search for existing transaction data or copy a new data based on an existing transaction. Therefore, the generateNewTransaction, bizUniqueId, NewBizUniqueId parameters and parameters under the feelist Objext in this api are valuable, and other parameters will be ignored by this api.
ARAP Update API
API Path
/bcp-core/arap/v1/updateArapUnSensitiveFields
Business Usage
Because of the sensitivity of BCP, as a basic principle, we do not recommend updating any BCP data unless it is necessary. Most BCP updates can be achieved by canceling or reversing the original transaction and re-performing it. For example, canceling an AR and then re-generating it, or reversing a collection and then re-collecting it.
Now there’s only one scenario like updating the payment method, which is allowed and involves BizTransaction and ARAP update. Before calling the respective API, users must go to the Global Parameter to find the BCPConfig and input the field name to be changed in the arapFieldAllowUpdate or biztransFieldAllowUpdate parameter.
Please pay special attention to the fact that not all fields are allowed to be updated. The following fields are always prohibited from being updated:
BizTransaction:
{"BizModule","BizSource","BizTransId","BizTransTime","BizTransType","BizUniqueId","BookingCurrencyCode","BranchCode","BranchName","CertificateNo","ClaimId","ClaimNo","ClaimSettlementNo","PolicyId","PolicyNo","ProductCode","ProductLineCode","ProductLineName","ProductName","QuotationNo","RefTransId","RefTransNo","RiPolicyId","RiPolicyNo","RiStatementId","RiStatementNo","SubClaimId","SubClaimNo","SubEndoType","SubEndoTypeName","CurrencyCode","DirectBookingEr","DirectEr","EndoId","EndoNo","EndoType","EndoTypeName","IsUndo","LocalCurrencyCode","MasterPolicyNo","TotalPeriods"}ARAP:
{"ARAPSequence","Amount","ArapCate","ArapId","ArapNo","ArapStatus","ArapType","Balance","BizTransId","BookingCurrencyCode","Commission","CurrencyCode","CurrentPeriod","DirectBookingEr","DirectEr","HasNote","IsApproved","IsOffsetByCommission","LocalCurrencyCode","OffsetAmount","OffsetByCommissionAmount","OriginRefId","OriginRefNo","Premium","PremiumBeforeTax","RefFeeId","Tax","TotalPeriods","VersionSeq"}Except for BizTransaction and ARAP, you are not allowed to update other domain information such as fees, collections, and payments.
API Sample
Sample Request
[
{
"@type": "BcpArap-Arap",
"ArapId": "916XXXXX16,C0BXXXXX5D31CFDXXXXXAA7A6B672XXX",
"StatementNo": "testtest234",
"StatementType": "CI00000112"
},
{
"@type": "BcpArap-Arap",
"ArapId": "916XXXXX11,66BXXXXX22D300XXXXX3CEE203799XXX",
"StatementNo": "testtest234",
"StatementType": "CI00000112"
}
]Sample Response
[
{
"@pk": 9164540816,
"@type": "BcpArap-Arap",
"Amount": 55.23,
"ArapCate": "1",
"ArapId": "916XXXXX16,C0BXXXXX5D31CFDXXXXXAA7A6B672XXX",
"ArapNo": "DR20230900003031",
"ArapStatus": "1",
"ArapType": "-1001",
"Balance": 0,
"BizTransId": "916XXXXX97,00CXXXXXE8BB55XXXXXD0B556B802XXX",
"BookingCurrencyCode": "USD",
"BusinessObjectId": 1100002651088,
"Commission": 5.02,
"CurrencyCode": "USD",
"CurrentPeriod": 4,
"DirectBookingEr": 1,
"DirectEr": 1,
"DueDate": "2024-09-21",
"GenerateDate": "2023-09-21T10:48:27",
"HasMandate": "N",
"HasNote": "N",
"IsApproved": "N",
"IsOffsetByCommission": "N",
"LocalCurrencyCode": "USD",
"NeedStatement": "Y",
"OffsetAmount": 0,
"OffsetByCommissionAmount": 0,
"PayerPayeeType": "20",
"PeriodEndDate": "2024-09-21",
"PeriodStartDate": "2024-05-22",
"Premium": 55.23,
"RefFeeId": 9164540815,
"StatementNo": "testtest234",
"StatementType": "CI00000112",
"TotalPeriods": 4,
"Transaction": {
"@pk": 9164540797,
"@type": "BcpBizTransaction-BizTransaction",
"BizModule": "10",
"BizSource": "1",
"BizTransId": "916XXXXX97,00XXXXXBE8BB55EXXXXX0B556B802XXX",
"BizTransTime": "2023-09-21T10:48:26",
"BizTransType": "NEWBIZ",
"BizUniqueId": "FEE9173750192",
"BookingCurrencyCode": "USD",
"BranchCode": "10001",
"BranchName": "xxxxxx",
"BusinessObjectId": 1100002651370,
"ChannelCode": "PTY10000051656007",
"ChannelName": "apiTest612488",
"ChannelType": "14",
"ChannelTypeName": "Agent Company",
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"LocalCurrencyCode": "USD",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyEffDate": "2023-09-21",
"PolicyExpDate": "2024-09-20",
"PolicyHolderCode": "CI00000110",
"PolicyHolderName": "CAT",
"PolicyHolderTypeCode": "IndiCustomer",
"PolicyHolderTypeName": "Individual",
"PolicyId": "917XXXXX92,188XXXXX0A427XXXXXE7B4DD677DAXXX",
"PolicyNo": "POTBTI01219968",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductLineName": "Travel",
"ProductName": "Oversea Travel (PBU for Auto Test)",
"QuotationNo": "PABTBTI0001288250",
"RefTransId": "917XXXXX92,188XXXXX0A427XXXXXE7B4DD677DAXXX",
"RefTransNo": "PABTBTI0001288250",
"TotalPeriods": 4
},
"VersionSeq": 7
},
{
"@pk": 9164540811,
"@type": "BcpArap-Arap",
"Amount": 55.23,
"ArapCate": "1",
"ArapId": "916XXXXX11,66BXXXXX22D300XXXXX3CEE203799XXX",
"ArapNo": "DR20230900003030",
"ArapStatus": "1",
"ArapType": "-1001",
"Balance": 0,
"BizTransId": "916XXXXX97,00CXXXXXE8BB5XXXXXAD0B556B802XXX",
"BookingCurrencyCode": "USD",
"BusinessObjectId": 1100002651088,
"Commission": 5.02,
"CurrencyCode": "USD",
"CurrentPeriod": 3,
"DirectBookingEr": 1,
"DirectEr": 1,
"DueDate": "2024-05-21",
"GenerateDate": "2023-09-21T10:48:27",
"HasMandate": "N",
"HasNote": "N",
"IsApproved": "N",
"IsOffsetByCommission": "N",
"LocalCurrencyCode": "USD",
"NeedStatement": "Y",
"OffsetAmount": 0,
"OffsetByCommissionAmount": 0,
"PayerPayeeType": "20",
"PeriodEndDate": "2024-05-21",
"PeriodStartDate": "2024-01-22",
"Premium": 55.23,
"RefFeeId": 9164540810,
"StatementNo": "testtest234",
"StatementType": "CI00000112",
"TotalPeriods": 4,
"Transaction": {
"@pk": 9164540797,
"@type": "BcpBizTransaction-BizTransaction",
"BizModule": "10",
"BizSource": "1",
"BizTransId": "916XXXXX97,00CXXXXXE8BB55XXXXXD0B556B802XXX",
"BizTransTime": "2023-09-21T10:48:26",
"BizTransType": "NEWBIZ",
"BizUniqueId": "FEE9173750192",
"BookingCurrencyCode": "USD",
"BranchCode": "10001",
"BranchName": "xxxxxx",
"BusinessObjectId": 1100002651370,
"ChannelCode": "PTY10000051656007",
"ChannelName": "apiTest612488",
"ChannelType": "14",
"ChannelTypeName": "Agent Company",
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"LocalCurrencyCode": "USD",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyEffDate": "2023-09-21",
"PolicyExpDate": "2024-09-20",
"PolicyHolderCode": "CI00000110",
"PolicyHolderName": "CAT",
"PolicyHolderTypeCode": "IndiCustomer",
"PolicyHolderTypeName": "Individual",
"PolicyId": "917XXXXX92,188XXXXX0A4271XXXXX7B4DD677DAXXX",
"PolicyNo": "POTBTI01219968",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductLineName": "Travel",
"ProductName": "Oversea Travel (PBU for Auto Test)",
"QuotationNo": "PABTBTI0001288250",
"RefTransId": "917XXXXX92,188XXXXX0A4271XXXXX7B4DD677DAXXX",
"RefTransNo": "PABTBTI0001288250",
"TotalPeriods": 4
},
"VersionSeq": 7
}
]ARAP Cancel API
API Path
/bcp-core/arap/v1/cancelArapWithGenerateFeeWithModel
Business Usage
Cancel the arap in the outstanding status using either the ArapId or the bizUniqueId. Fields such as GlPostDueDate, newBcpBeeTypeMap, and noNeedCancelBeeType are optional. The function of the field newBcpFeeTypeMap[sourceFeeType, targetFeeType] is to generate Fee data of the specified FeeType from the original Fee data. Additionally, the field noNeedCancelFeeType specifies that the Fee corresponding to the specified FeeType does not need to be cancelled.
API Sample
Sample Request
{
//"bizUniqueId": "9281211908" //Not mandatory
"arapIds": [10816740024]
//"GlPostDueDate":"",
//"newBcpFeeTypeMap":["100600","100601"],//Not mandatory
// "noNeedCancelFeeType":["100400"]//Not mandatory
}Sample Response
No return.API Path
/bcp-core/arap/v1/cancelArap?bizUniqueId={{bizUniqueId}}
Business Usage
Cancel the arap in the outStanding status using bizUniqueId.
API Sample
Sample Request
{}Sample Response
{
"IsSuccess": "Y"
}Prepayment API (Cash before Cover from Policy Admin, Not Real ARAP Fee)
API Path
/bcp-core/fee/v1/syncDataToBCP
Business Usage
PA transmits the insurance proposal to be charged to BCP.
Distinguish whether it is CBC or NCBC through the transfer parameter is Praypay of the API.
- Y — Cash Before Cover(CBC)
- N — Non Cash Before Cover(NCBC)
Dynamic Fields
The SyncdataToBcp API supports dynamic fields. Please note that dynamic fields in the API need to be configured in the Data Dictionary in advance, otherwise the API will report an error stating that the field does not exist.
API Sample
Sample Request
{
"BizModule": "10",
"BizSource": "1",
"BizTransType": "NEWBIZ",
"BizUniqueId": "PREXXXXX29248XXXX",
"BookingCurrencyCode": "USD",
"BranchCode": "10001",
"ChannelCode": "PTY1100064819952",
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"IsPrepay": "Y",
"IsUndo": "1",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyCate": "1",
"PolicyEffDate": "2024-05-21",
"PolicyExpDate": "2025-05-20T23:59:59",
"PolicyHolderName": "CC",
"PolicyHolderTypeCode": "IndiCustomer",
"PolicyHolderTypeName": "IndiCustomer",
"PolicyId": 24292482801,
"PrepayOrderList": [
{
"Amount": 196.34,
"Balance": 196.34,
"CurrentPeriod": 1,
"DueDate": "2024-05-21",
"PayerPayeeName": "CC",
"PayerPayeeType": "IndiCustomer",
"PeriodEndDate": "2024-05-21",
"PeriodStartDate": "2024-05-21",
"TotalPeriods": 2
}
],
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductLineName": "Travel",
"ProductName": "Oversea Travel (PBU for Auto Test)",
"QuotationNo": "PTBTI-202405-0000000561",
"RefTransId": 24292482801,
"RefTransNo": "PTBTI-202405-0000000561",
"TotalPeriods": 2
}Sample Response
[
{
"@pk": 874333504,
"@type": "BcpPrepayOrder-PrepayOrder",
"Amount": 196.34,
"Balance": 196.34,
"BizTransId": 874XXXXX3,
"BookingCurrencyCode": "USD",
"BusinessObjectId": 110XXXXX52813,
"CurrencyCode": "USD",
"CurrentPeriod": 1,
"DirectBookingEr": 1,
"DirectEr": 1,
"DueDate": "2024-05-21",
"LocalCurrencyCode": "USD",
"OrderId": 874333504,
"OrderNo": "DR20240500000124",
"OrderStatus": "1",
"PayerPayeeName": "CC",
"PayerPayeeType": "IndiCustomer",
"PeriodEndDate": "2024-05-21",
"PeriodStartDate": "2024-05-21",
"TotalPeriods": 2,
"VersionSeq": 1,
"CustomerField001":"Field001",
"CustomerField002":"Field002"
}
]Internal Data Behavior
Related Data Dictionaries:
BcpBizTransaction,BcpPrepayOrder
-
Store the main business data of the issue after paid transaction in the main transaction
BcpBizTransactionwhere data is unmodifiable after it is sent to BCP. -
Store the main data related to the transaction amount in
BcpPrepayOrderand associate it withBcpBizTransactionthrough the primary keyBizTransId. The subsequent amount is settled based on two fields ofBcpPrepayOrder: Balance and OrderStatus.
API Path
/bcp-core/prepay/v1/cancelPrepayOrder?proposalNo={{proposalNo}}
Business Usage
Cancel the Prepay Order in the outStanding status using proposalNo.
API Sample
Sample Request
{}Sample Response
{
"AgentCode": "SCCE0025",
"AgentName": "TestParent",
"Amount": 1004.4,
"Balance": 1004.4,
"BranchCode": "10001",
"ChannelCode": "SCCE0025",
"ChannelName": "TestParent",
"CurrencyCode": "CNY",
"LocalCurrencyCode": "CNY",
"PartyName": "PrePaidPolicy",
"PolicyHolderName": "PrePaidPolicy",
"PolicyholderCode": "CI00001023",
"PolicyholderId": "",
"PremiumCurrencyCode": "CNY",
"PrepayOrderStatus": "7",
"ProposalNo": "PABTBTI0001387396",
"QuotationNo": "PABTBTI0001387396"
}Batch ARAP & Fee Creation API (Business Data Transfer BCP)
API Path
/bcp-core/fee/v1/syncDataToBCPBatch
Business Usage
The batch version of the syncDataToBCP API, which allows multiple transaction objects to be transmitted to BCP in a single request. The business functionality is identical to the single-object API, but supports batch processing to improve efficiency when multiple billing records need to be created simultaneously.
Key Difference: The request body is an array of transaction objects instead of a single object. Each object in the array follows the same structure and validation rules as the single syncDataToBCP API.
API Sample
Sample Request (Batch - Multiple Transactions)
[
{
"BizModule": "10",
"BizSource": "1",
"BizTransType": "NEWBIZ",
"BizUniqueId": "11845900049,323663B0671CFB29A125316337E4BCBB",
"BookingCurrencyCode": "CNY",
"BranchCode": "10006",
"ChannelCode": "PTY10000085305034",
"ClaimNo": null,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"FeeList": [
{
"BcpFeeType": "100101",
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"BankName": null,
"CommissionStatus": "1",
"CreditCardHolderName": null,
"CreditCardNo": null,
"OrderStatus": "",
"PayerPayeeType": "IndiCustomer",
"BranchCode": "10006",
"CurrencyCode": "CNY",
"PayerPayeeName": "PolicyCollection",
"PaymentMethod": "100",
"TotalPeriods": 1,
"DirectEr": 1,
"DirectBookingEr": 1,
"Amount": 1004.4,
"Balance": 1004.4,
"FeeId": 11845900060,
"CurrentPeriod": 1,
"DueDate": "2026-03-14",
"GlPostDueDate": "2026-03-14",
"PeriodStartDate": "2026-03-14",
"PeriodEndDate": "2026-03-14",
"Commission": 93,
"Tax": 74.4
},
{
"BcpFeeType": "100400",
"Amount": 74.4,
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"CommissionStatus": "1",
"FeeId": 11845900060,
"BranchCode": "10006",
"DueDate": "2026-03-14",
"GlPostDueDate": "2026-03-14",
"CurrencyCode": "CNY",
"DirectEr": 1,
"DirectBookingEr": 1,
"CurrentPeriod": 1,
"TotalPeriods": 1,
"PeriodStartDate": "2026-03-14",
"PeriodEndDate": "2026-03-14",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100"
},
{
"BcpFeeType": "100501",
"Amount": 930,
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"CommissionStatus": "1",
"FeeId": 11845900060,
"BranchCode": "10006",
"DueDate": "2026-03-14",
"GlPostDueDate": "2026-03-14",
"CurrencyCode": "CNY",
"DirectEr": 1,
"DirectBookingEr": 1,
"CurrentPeriod": 1,
"TotalPeriods": 1,
"PeriodStartDate": "2026-03-14",
"PeriodEndDate": "2026-03-14",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100"
}
],
"IsPrepay": "N",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyHolderName": "PolicyCollection",
"PolicyHolderTypeCode": "",
"PolicyHolderTypeName": "IndiCustomer",
"PolicyNo": "POTBTI00025568",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductName": "API TEST",
"QuotationNo": "",
"RefTransId": "11845900049,323663B0671CFB29A125316337E4BCBB",
"RefTransNo": "POTBTI00025568",
"TotalPeriods": 1
}
]Sample Response (Batch - Array of ARAP Arrays)
[
[
{
"@pk": 11837864639,
"@type": "BcpArap-Arap",
"Amount": 1004.4,
"ArapCate": "1",
"ArapId": 11837864639,
"ArapNo": "DR20260300004184",
"ArapStatus": "1",
"ArapType": "-1001",
"Balance": 1004.4,
"BizTransId": 11837864635,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002651088,
"Commission": 93,
"CurrencyCode": "CNY",
"CurrentPeriod": 1,
"DirectBookingEr": 1,
"DirectEr": 1,
"DueDate": "2026-03-14",
"GenerateDate": "2026-03-13T14:07:13.740",
"HasMandate": "N",
"HasNote": "N",
"IsApproved": "N",
"IsOffsetByCommission": "N",
"LastOperateBy": 10000080472063,
"LastOperateTime": "2026-03-13T14:07:14",
"LocalCurrencyCode": "INR",
"NeedStatement": "N",
"OffsetAmount": 0,
"OffsetByCommissionAmount": 0,
"OperateTime": "2026-03-13T14:07:13.740",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100",
"PeriodEndDate": "2026-03-14",
"PeriodStartDate": "2026-03-14",
"RefFeeId": 11837864636,
"Tax": 74.4,
"TotalPeriods": 1,
"Transaction": {
"@pk": 11837864635,
"@type": "BcpBizTransaction-BizTransaction",
"BizModule": "10",
"BizSource": "1",
"BizTransId": 11837864635,
"BizTransTime": "2026-03-13T14:07:13",
"BizTransType": "NEWBIZ",
"BizUniqueId": "11845900049,323663B0671CFB29A125316337E4BCBB",
"BookingCurrencyCode": "CNY",
"BranchCode": "10006",
"BranchName": "Insurer A",
"BusinessObjectId": 1100002651370,
"ChannelCode": "PTY10000085305034",
"ChannelName": "apiTest213773",
"ChannelType": "14",
"ChannelTypeName": "Agent Company",
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 12.4425,
"HasMandate": "N",
"LocalCurrencyCode": "INR",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyHolderName": "PolicyCollection",
"PolicyNo": "POTBTI00025568",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductName": "API TEST",
"RefTransId": "11845900049,323663B0671CFB29A125316337E4BCBB",
"RefTransNo": "POTBTI00025568",
"TotalPeriods": 1
},
"VersionSeq": 1
}
]
]Important Notes
-
Request Format: The request body must be an array of transaction objects. Each object follows the same structure as the single
syncDataToBCPAPI. -
Response Format: The response is a two-dimensional array. Each element in the outer array corresponds to the result of processing each transaction object in the request. Each inner array contains the ARAP records generated for that transaction.
-
Transaction Independence: Each transaction object in the batch is processed independently. The
bizUniqueIdmust be unique across all transactions in the batch. -
Field Validation: All validation rules from the single
syncDataToBCPAPI apply to each transaction object in the batch, including:BcpFeeTypemust be defined in the BcpFeeType data tableBcpFeeTypeandBizModulemust match- Branch and currency data must exist in CurrencySetting data table
- Dynamic fields must be configured in the Data Dictionary in advance
-
Same Internal Data Behavior: The batch API follows the same internal data processing logic as the single API:
- Creates
BcpBizTransactionfor each transaction - Creates
BcpFeerecords associated with the transaction - Generates
BcpAraprecords based onBcpFeeTypeconfiguration - Optionally creates
SalesCommissionrecords - Optionally sends data to GL
- Creates
Comparison with Single API
| Feature | syncDataToBCP | syncDataToBCPBatch |
|---|---|---|
| Request Format | Single object {} | Array of objects [{}] |
| Response Format | Array of ARAP objects [{}] | Array of ARAP arrays [[{}]] |
| Transactions per Request | 1 | Multiple |
| Use Case | Single billing operation | Batch billing operations |
| Error Handling | Transaction-level | Batch-level |