BCA-ECR Specification V 3.01
BCA-ECR Specification V 3.01
ECR Specification
Version 3.01
WARNING
This document is CONFIDENTIAL and may not be reproduced or distributed for any purpose without
written permission of PT. Bank Central Asia. PT. Bank Central Asia reserves the right to make changes to
specification at any time and without notice.
Revision History
Rev Date Editor Description
1.00 June 11th 2013 Ruly W. Initial Version
1.01 Sept 29th 2014 Miryadi F. Modify request & response message
description.
Modify detailed field description.
Modify OtherAmount, Add new feature for
Flazz payment.
Modify RespCode list.
Add Sample Sale (Appendix 1)
Add COM and USB Documentation (Appendix
2)
1.02 Feb 20th 2015 Miryadi F. Add description on RespCode for Echo-test.
1.03 April 24th 2015 Intan S. Add new field (Auth id, Installment Flag,
Redeem Flag, DCC Flag, Installment Plan,
Installment Tenor, Generic Data) to request
message
Add new field(Batch number, Issuer Id,
Installment Flag, DCC Flag, Redeem Flag, DCC
Decimal Place, DCC Currency Name, DCC
Exchange Rate) to response message
Add new transaction type (25 - Get Card
Info,36 - Balance Inquiry Flazz)
Add appendix sample
1.04 Sept 1st 2015 Intan S. Add new field (ReffNumber) to request
message
Add new field (Coupon Flag) to request
message
Add new transaction type (Cash top up flazz
machine, Sakuku)
Add Appendix sample
2.00 Jan 17th 2020 Intan S. Update version ECR to 2.00
Add new trans type for QRIS transaction
3.00 Mar 26th 2021 Intan S. Update version ECR to 3.00
Add new format for issuer id
3.01 July 20 2023 MIY Revision about :
1. Adding Note About Ethernet Connection In
Message Frame Part.
2. Detail Information About Approval Code
Response From Transaction QRIS.
3. Adjustment Format Request Cless To Fase 3
Format.
The LRC character is the module 2 binary sum of every character in the transaction message after the
STX and including the ETX.
In addition to the above described messages, ACK (06H) and NAK (15H) control characters are also
required to ensure error free exchange of request and response messages. An ACK indicates the
successful reception of a messages, a NAK indicates that the receiver requests the retransmission of the
last message that was received in error. The ACK and NAK characters are expected to be received within
2 seconds from the transmission of a message. Every message is expected to get an ACK or NAK. A
message can be sent again (up to 3 times) after the 2 second ACK/NAK response time has expired. In
theory, not all request messages generate a response message but they all require being ACK-ed.
When use Ethernet connection for ECR, please disconnect the connection after it is done and don’t
let multiple connection connect to EDC (just only 1 connection).
a. Normal Transaction
c. Time Out
TransType
The list of values as below:
Code Description
01 Purchase
02 Sale & Cash
03 Refund
04 Release Cardver
05 Authorization
For TransType Sale (“01”), there will be a confirmation on the EDC screen asking to do Flazz
transaction or not (user must press Yes/No button to continue). This Flazz’s confirmation shows only
if Flazz acquire is activated on EDC’s configuration.
TransAmount
The transaction amount is the total amount of the transaction in cents in IDR. Note that if field
OtherAmount present (see below), the amount is included in this field.
The processing rules for this field are:
- When processing non-financial transactions such as Echo-test or Print Receipt, the TransAmount
will be zero.
- When processing the Settlement, it is the total Sale (and Cash/Tip) Amount (without voided
transaction) in IDR
OtherAmount
This field is optional and shares the same currency as transaction amount. The following rules are
applied:
- When processing the Sale & Cash, it is the cash out amount.
- When processing the Sale Adjustment, it is the tipping amount.
- When processing the Sale, if there is tip entry via the EDC, tipping amount will be returned
through this field.
- When processing the Sale, Topup and Topup Tunai with Flazz, it is the end-balance of Flazz
Card.
- When processing the Sale, if Request message has this field, this field will be ignored.
CancelReason
Code Description
01 Time-out Reversal
02 Transaction Void
03 Signature Declined Void
04 User Cancelled
05 EMV Declined
06 Others
07 Power Failure
PAN
The Primary Account Number (PAN) contains the card account number (maximum 19 digits).
Normally the PAN is returned in the response upon a successful capture of card data.
If PAN is exists, then it will be manual PAN entry transaction (depends on EDC settings, if Acquirer
don’t allow, that transaction will be declined).
ExpiryDate
The expiration date of the card. The format is YYMM. Normally the expiration date is returned in the
response upon a successful capture of card data. ExpiryDate from Request Message is used by
Manual PAN entry.
RespCode
A response code is returned to indicate the status of the transaction from EDC. Response code can
be generated by EDC or BCA Host as a card processor. For Echo-test (TransType = 17), RespCode will
always blank.
Code Description
00 Approve
54 Decline Expired Card
55 Decline Incorrect PIN
P2 Read Card Error
P3 User press Cancel on EDC
Z3 EMV Card Decline
CE Connection Error/Line Busy
TO Connection Timeout
PT EDC Problem
aa Decline (aa represent two digit alphanumeric value from EDC)
S2 TRANSAKSI GAGAL
ULANGI TRANSAKSI
DI EDC
S3 TXN BLM DIPROSES
MINTA SCAN QR
S4 TXN EXPIRED
AuthCode
AuthCode is usually referred to as the “Approval Code.” It’s assigned by the authorization host when
the transaction is approved. For QR, length of the approval code from EDC is 9 (6+3space).
OfflineFlag
It means if this is an online transaction or an offline transaction.
- Y : Offline Transaction
- N : Online Transaction
RRN
This is a retrieval reference number unique assigned by the processor and used to retrieve original
transaction data. For Swipe Card transaction, it is acceptable to return a value of all zeros as the
RRN.
Date
Transaction date, the format is YYYYMMDD.
Time
Transaction time, the format is HHMMSS.
CardholderName
Cardholder name from card’s track1 or EMV tag.
MerchantId
Terminal returns the merchant number for reporting and/or receipt printing. This field is optional.
TerminalId
Terminal returns the terminal ID for reporting. This field is optional.
InvoiceNumber
Terminal returns the Invoice Number for reporting. For Void, Refund, Adjustment dan Reprint
transaction, EDC needs Invoice Number of original transaction.
BatchNumber
The batch number of the transaction.
IssuerId
The IssuerId value is the type of card that used by Cardholder on payment. The list of values as
below:
Code Description
00 Debit BCA
02 Mastercard
03 AMEX
04 Diners Club
05 JCB
06 UP ( Union pay)
07 BCA Card
08 Others
09 AMEX BCA
10 BCA Syariah
11 Cash BCA
12 Smartcash
13 Debit MC BCA
14 Flazz BCA
15 JCB BCA
16 Maestro
17 Master BCA
18 Unionpay BCA
19 Visa BCA
20 Visa SQ
BCAFiller
For future use.
InstallmentFlag
It means if this is an installment transaction or an non installment transaction.
RedeemFlag
It means if this is a loyalti redeem transaction.
- Y : Loyalti Redeem Transaction
- N : No Redeem Transaction
CouponFlag
It means if Coupon Flag activated
- Y : Coupon flag On
- N : Coupon flag Off
DCCFlag
It means if this is a DCC transaction.
- Y : DCC Transaction
- N : Non DCC Transaction
InstallmentPlan
InstallmentTenor
GenericData
InfoAmount
Terminal returns other amount eg : Installment Monthly Amount or DCC Amount ( CardHolder
Billing Amount )
DCCDecimalPlace
Terminal returns Conversion Amount Decimal Place ( sample : 2 means 2 Decimal Place )
DCCCurrencyName
DCCExRate
Terminal returns billing Conversion Rate. First Digit is Decimal Place of Conversion Rate and
Second until Eigth Digit is Conversion Rate.
CouponFlag
Transaction sample:
Sale with amount 5725, other amount 0.
'01000000572500000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
Transaction sample :
Trans amount is the sum of Base Amount and Other Amount (Cash/tips/non fare)
Sample Sale with Trans Amount 200000 IDR, Base Amount 198000 and other amount
(Cash/tips/non fare) 2000
'02000020000000000000200000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId CX123456
BatchNumber 000027
DCCDecimalPlace spaces
DCCExRate spaces
Filler Spaces
'03000000400000000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId CX123456
BatchNumber 000027
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Filler spaces
Release cardver with amount 5725. Auth code / Approval code & Original date cardver
transaction is mandatory.
TransType 04
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
'05000002000000000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
BatchNumber 000027
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Filler spaces
'06000000500000000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId EX123456
BatchNumber 000027
DCCCurrencyName spaces
DCCExRate spaces
Filler spaces
08000000000000000000000000 000002100009 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId CX123456
BatchNumber 000027
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Filler Spaces
Trans amount is the sum of Base Amount and Other Amount (adjust).
'12000051000000000001000000 000000100009 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
Transaction sample:
Sale with amount 5725, other amount 0.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
OtherAmount 000000000000
PAN 188980_ _ _ _ _ _4817 _ is space character, could be
masked by *
With format 6.4 or based on
'17000000000000000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
PAN spaces
ExpiryDate spaces
RespCode spaces
RRN Spaces
ApprovalCode spaces
Date spaces
Time spaces
MerchantId spaces
TerminalId spaces
CardholderName spaces
InvoiceNumber spaces
BatchNumber spaces
IssuerId spaces
InstallmentFlag spaces
DCCFlag spaces
RewardFlag spaces
InfoAmount spaces
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
CouponFlag spaces
Filler spaces
'19000000000000000000000000 000000100009 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId CX123456
BatchNumber 000027
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
CouponFlag spaces
Filler spaces
'20000000000000000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId spaces
CardholderName spaces
PANCashierCard spaces
InvoiceNumber spaces
BatchNumber spaces
IssuerId spaces
InstallmentFlag spaces
DCCFlag spaces
RewardFlag spaces
InfoAmount spaces
DCCDecimalPlace spaces
DCCExRate spaces
CouponFlag spaces
Filler spaces
'21000002100000000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId EX123456
BatchNumber 000027
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Filler spaces
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
BatchNumber 000027
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Filler spaces
'23000000000000000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
Date spaces
Time spaces
MerchantId spaces
TerminalId spaces
CardholderName spaces
PANCashierCard spaces
InvoiceNumber spaces
BatchNumber spaces
DCCDecimalPlace spaces
DCCCurrencyName spaces
'24000002400000000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
BatchNumber 000027
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Filler spaces
'36000000000000000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId EX123456
CardholderName spaces
PANCashierCard spaces
InvoiceNumber spaces
BatchNumber 000023
InstallmentFlag spaces
DCCFlag spaces
RewardFlag spaces
InfoAmount spaces
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
CouponFlag spaces
Filler spaces
Transaction sample :
Sale with amount 500.000, Installment: Y, Installment Plan: 001, Installment Tenor: 06.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
BatchNumber 000047
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Filler spaces
'01000001000000000000000000 000000000000 YN
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
TerminalId TESMCN01
BatchNumber 000047
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Filler spaces
'01000011000000000000000000 000000000000 N
'
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId TESMCN01
BatchNumber 000054
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Filler spaces
Transaction sample:
Total Sale 45.000 (Fare with amount 40.000 + Non Fare with amount 5.000), Ticket
Number: 22222.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId CECRTST1
BatchNumber 000002
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Filler spaces
'07000009000000000000000000 000000000159 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId CECRTST1
BatchNumber 000005
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Filler spaces
'01000050000000000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
BatchNumber 000002
Eg:
70001101
Filler spaces
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId TESECR01
BatchNumber 000008
70001101
'12000000000060000000000010 000000100049 Y
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId TESECR01
BatchNumber 000017
Eg:
70001101
Filler spaces
TransAmount 0 Mandatory
Add 00 to the sale amount => 000
Give padding => 000000000000
OtherAmount 0 Add 00 to the other amount =>
000 Give padding =>
000000000000
PAN (blank) Optional ( for Manual Key In Transaction )
Set PAN Number based on Card Information
ExpiryDate 0000 Optional ( for Manual Key In Transaction )
Set Card Expire Date ( YYMM ) based on Card
Information
CancelReason (blank) Set to 00
InvoiceNumber (blank) Set to 000000
AuthCode (blank) Set to spaces
InstallmentFlag (blank) Set to spaces
RedeemFlag (blank) Set to spaces
DCCFlag N Set DCC Flag to N / No
InstallmentPlan (blank) Set to spaces
InstallmentTenor (blank) Set to spaces
GenericData (blank) Set to spaces
ReffNumber (blank) Set to spaces
OriginalDate (blank) Set to spaces
BCAFiller (blank) Set to spaces
'10000000000000000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
PAN Spaces
ExpiryDate Spaces
RespCode 00
RRN Spaces
ApprovalCode Spaces
TerminalId L3112009
CardholderName Spaces
PANCashierCard Spaces
InvoiceNumber Spaces
BatchNumber Spaces
IssuerId Spaces
InstallmentFlag Spaces
DCCFlag Spaces
RewardFlag Spaces
InfoAmount Spaces
DCCCurrencyName Spaces
DCCExRate Spaces
CouponFlag Spaces
Filler Spaces
LC Info printed when cash top up option has been activated in terminal
GRAND TOTAL
Transaction sample :
Sale with amount 500000 IDR, Other amount 0, generate Reff Number 435712000001
'31000050000000000000000000 000000000000 N
'
without ' (apostrophe) sign.
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
TerminalId CX123456
CardholderName Spaces
PANCashierCard Spaces
InvoiceNumber 100009
BatchNumber 000027
IssuerId Spaces
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Transaction sample :
Add STX, Message Length, ETX and LRC value to the message data, so it will form a valid Request
Message ready to be sent to EDC.
After removing STX, Message Length, ETX and LRC value, the message data can be processed by
ECR/POS.
RRN 435712000001
ApprovalCode 090016 9 digit approval code, the real
value is 6, the rest is space
ex:123456
(313233343536202020)
Date 20150508 YYYYMMDD
Time 143616 HHMMSS
MerchantId 000005111111111
TerminalId CX123456
CardholderName Spaces
PANCashierCard Spaces
InvoiceNumber 100009
BatchNumber 000027
IssuerId Spaces
DCCDecimalPlace spaces
DCCCurrencyName spaces
DCCExRate spaces
Filler spaces
a. EDC Castles
1. Install CAS_CDC_Driver pilih installer x64 atau x86 sesuaikan dengan PC POS
1. Run IngenicoUSBDrivers_2.20.exe
f. Plug USB Cable to Ingenico USB Port (labeled USB Slave), and the other part of cable to the POS
g. Once connected to POS, go to Device Manager, and check on Ports and Comms, make sure
Telium is shown in Ports and Comms, with the designated port number.