ATM Drive

1,145 views
Skip to first unread message

zab

unread,
Nov 13, 2006, 9:02:31 AM11/13/06
to jPOS Users
Hello All,

I have access to NCR P77 ATM talking NDC.

Can someone help me do a small app that can interprate what the ATM is
talking?

Thanks.

chhil

unread,
Nov 13, 2006, 9:32:56 AM11/13/06
to jpos-...@googlegroups.com

There is an entire specification for NCRs NDC formatted messages...
Since NDC is not an ISO message you will need to write the message parser yourself.


To name a few....

Transaction requests.
Transaction Responses.
Solicited Statuses
Unsolicited Statuses.
Key Exchange Messages.
Configuration messages for states and screens.
Commands to bring atm inservice,out of service, configurations id's, hardware info..

You wil need to write formatters for these..(Use FDSMsg to set these up).

Then you need to have a state flow of sorts..to handle these messages and respond appropriately.

The idea is the Atm wil lsend transaction requests.
You will get these and basically look at the keybuffer and other buffers that the atm sends  to interpret what it means...for e.g. inquiries, withdrawals with the amount, deposits transfers or any transactions permitted at the atm.

The keybuffers coming in are based on the the states you send to the atm, the states will setup the keybuffer to a value that you have setup to map to a transaction. Convert this message to a ISO8583 message to an upstream entity to either authorize the transaction or send it to the network so that it can be authorized by someone else.

Get the ISO response back convert it to the atm message format and do whatever needs to be done, e.g. dispense money, open depositor etc..

-chhil

zab

unread,
Nov 13, 2006, 9:48:23 AM11/13/06
to jPOS Users

Hi chhil,
Thanks for your quick response

I understand what you have explained.

Do you have access to NCRs NDC formatted messages specification? if you
have please pass it to me.
ochomoz (@) gmail (.) com


Thanks

> On 11/13/06, zab <ocho...@gmail.com> wrote:
>
>
>
>
>
> > Hello All,
>
> > I have access to NCR P77 ATM talking NDC.
>
> > Can someone help me do a small app that can interprate what the ATM is
> > talking?
>

> > Thanks.- Hide quoted text -- Show quoted text -

chhil

unread,
Nov 13, 2006, 9:52:56 AM11/13/06
to jpos-...@googlegroups.com

Sorry..can't do that...its under an NDA...it comes with the atm so talk to the guys who own the atm.

-chhil

On 11/13/06, zab < och...@gmail.com> wrote:

Alejandro Revilla

unread,
Nov 13, 2006, 9:53:36 AM11/13/06
to jpos-...@googlegroups.com
Those specs are copyrighted by NCR so you need to ask your NCR ATM vendor.

zab

unread,
Nov 13, 2006, 10:08:43 AM11/13/06
to jPOS Users
Hi All,

I got the specs.
I has the message specs. but it doesnt show a single complete sample
message.
I expected some good level of "spoon-feeding" !

OK .. do you have some sample message then I can study it?

Thanks

> > > > Thanks.- Hide quoted text -- Show quoted text -- Hide quoted text -- Show quoted text -

chhil

unread,
Nov 13, 2006, 10:16:02 AM11/13/06
to jpos-...@googlegroups.com

An example transaction request...

0000(0000)  31 31 1C 30 30 31 30 30  30 30 30 32 1C 1C 1C 30   11.001000002...0
0016(0010) 39 1C 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 9.**************
0032(0020) 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
0048(0030) 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 41 43 41 41 41 ***********ACAAA
0064(0040) 41 20 20 1C 30 30 30 30 30 30 30 31 30 30 30 30 A .000000010000
0080(0050) 1C 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A .***************
0096(0060) 2A 2A 1C 1C 1C 32 30 31 36 33 31 30 30 30 30 30 **...20163100000
0112(0070) 30 30 30 30 35 30 30 30 30 30 30 30 30 30 30 1C 000050000000000.
0128(0080) 5A 30 30 30 30 30 30 39 38 30 30 30 30 30 30 30 Z000000980000000
0144(0090) 32 2

Fields that are set..
[001 M] : 'message class' = [1]
[001 M] : 'sub class' = [1]
[009 O] : 'LUNO' = [001000002]
001 M] : 'top of receipt flag' = [0]
001 M] : 'message coord number' = [9]
[039 O] : 'track 2' = [;88883*******1513=1001*****************]
[008 O] : 'op code data' = [ACAAAA ]
[012 O] : 'amount' = [000000010000]
[032 O] : 'pin buffer' = [****************]
[999 O] : 'general field' = [20163100000000050000000000]
[999 O] : 'general field' = [Z0000009800000002]

-chhil


On 11/13/06, zab <och...@gmail.com> wrote:

Mark Salter

unread,
Nov 13, 2006, 10:19:00 AM11/13/06
to jPOS Users
On Nov 13, 2:02 pm, "zab" <ocho...@gmail.com> wrote:
> Hello All,
>
> I have access to NCR P77 ATM talking NDC.

So you have some real samples, that you can now match to the
specification?

>
> Can someone help me do a small app that can interprate what the ATM is
> talking?

Is it configured to talk to a machine of yours on which you can receive
and process it's conversations, or at the very least monitor the
network (TCP/IP) traffic?

--
Mark

zab

unread,
Nov 13, 2006, 10:30:30 AM11/13/06
to jPOS Users

On Nov 13, 6:19 pm, "Mark Salter" <marksal...@dsl.pipex.com> wrote:
> On Nov 13, 2:02 pm, "zab" <ocho...@gmail.com> wrote:
>
> > Hello All,
>

> > I have access to NCR P77 ATM talking NDC.So you have some real samples, that you can now match to the
> specification?
>
I have real ATMs here. P76, P86, P88


>
>
> > Can someone help me do a small app that can interprate what the ATM is

> > talking?Is it configured to talk to a machine of yours on which you can receive


> and process it's conversations, or at the very least monitor the
> network (TCP/IP) traffic?
>

The ATM, I expect to talk to my PC directly
> --
> Mark

zab

unread,
Nov 13, 2006, 10:31:38 AM11/13/06
to jPOS Users
Thanks.

Let me study it .. I will come back to you. Though it appears you have
working code?

Thanks again.

chhil

unread,
Nov 13, 2006, 10:34:53 AM11/13/06
to jpos-...@googlegroups.com
Its important to know what protocol the atms will using to talk to your PC...
TCP,SNA, dialup etc

You can use a sniffer to capture raw traffic and then try to parse the messages.
Be aware of the headers etc that are configured on the atm that can be prepended to the the message.

-chhil

On 11/13/06, zab <och...@gmail.com> wrote:

chhil

unread,
Nov 13, 2006, 10:40:12 AM11/13/06
to jpos-...@googlegroups.com
I have non-jpos proprietary working code which I cannot share...I can possibly provide you pointers on identifying messages,parsing messages and setting up formatter  ...

-chhil

On 11/13/06, zab <och...@gmail.com> wrote:

zab

unread,
Nov 13, 2006, 10:40:32 AM11/13/06
to jPOS Users
The ATMs are using the TCP protocol to communicate.

On Nov 13, 6:34 pm, chhil <chil...@gmail.com> wrote:
> Its important to know what protocol the atms will using to talk to your
> PC...
> TCP,SNA, dialup etc
>
> You can use a sniffer to capture raw traffic and then try to parse the
> messages.
> Be aware of the headers etc that are configured on the atm that can be
> prepended to the the message.
>
> -chhil
>

> On 11/13/06, zab <ocho...@gmail.com> wrote:
>
>
>
>
>
> > On Nov 13, 6:19 pm, "Mark Salter" <marksal...@dsl.pipex.com> wrote:
> > > On Nov 13, 2:02 pm, "zab" <ocho...@gmail.com> wrote:
>
> > > > Hello All,
>
> > > > I have access to NCR P77 ATM talking NDC.So you have some real
> > samples, that you can now match to the
> > > specification?
>
> > I have real ATMs here. P76, P86, P88
>
> > > > Can someone help me do a small app that can interprate what the ATM is
> > > > talking?Is it configured to talk to a machine of yours on which you
> > can receive
> > > and process it's conversations, or at the very least monitor the
> > > network (TCP/IP) traffic?
>
> > The ATM, I expect to talk to my PC directly
> > > --

> > > Mark- Hide quoted text -- Show quoted text -

zab

unread,
Nov 13, 2006, 10:43:37 AM11/13/06
to jPOS Users

On Nov 13, 6:40 pm, chhil <chil...@gmail.com> wrote:
> I have non-jpos proprietary working code which I cannot share...I can
> possibly provide you pointers on identifying messages,parsing messages and
> setting up formatter ...
>

Please, do. I need to do something reasonable.
Thanks

> > > > -- Show quoted text -- Hide quoted text -- Show quoted text -- Hide quoted text -- Show quoted text -

Andy Orrock

unread,
Nov 13, 2006, 10:48:45 AM11/13/06
to jpos-...@googlegroups.com

jPOS’ Field Separator Delimited (‘FSD’) facility can be used to define the incoming and outgoing message set.

 


zab

unread,
Nov 13, 2006, 11:03:38 AM11/13/06
to jPOS Users

On Nov 13, 6:48 pm, "Andy Orrock" <aaorr...@gmail.com> wrote:
> jPOS' Field Separator Delimited ('FSD') facility can be used to define the
> incoming and outgoing message set.
>

I dont understand now how the FSD message will work here.
> _____

>
> From: jpos-...@googlegroups.com [mailto:jpos-...@googlegroups.com] On
> Behalf Of chhil
> Sent: Monday, November 13, 2006 7:35 AM
> To: jpos-...@googlegroups.com
> Subject: Re: ATM Drive
>
> Its important to know what protocol the atms will using to talk to your
> PC...
> TCP,SNA, dialup etc
>
> You can use a sniffer to capture raw traffic and then try to parse the
> messages.
> Be aware of the headers etc that are configured on the atm that can be
> prepended to the the message.
>
> -chhil
>

> On 11/13/06, zab <ocho...@gmail.com> wrote:
>
> On Nov 13, 6:19 pm, "Mark Salter" <marksal...@dsl.pipex.com> wrote:> On Nov 13, 2:02 pm, "zab" < <mailto:ocho...@gmail.com> ocho...@gmail.com>
> wrote:
>
> > > Hello All,
>
> > > I have access to NCR P77 ATM talking NDC.So you have some real samples,that you can now match to the> specification?I have real ATMs here. P76, P86, P88


>
> > > Can someone help me do a small app that can interprate what the ATM is
> > > talking?Is it configured to talk to a machine of yours on which you can
> receive
> > and process it's conversations, or at the very least monitor the

> > network (TCP/IP) traffic?The ATM, I expect to talk to my PC directly
>
>
>
> > --
> > Mark- Hide quoted text -- Show quoted text -

chhil

unread,
Nov 13, 2006, 11:19:48 AM11/13/06
to jpos-...@googlegroups.com

http://andyorrock.typepad.com/paymentsystems/2006/09/index.html

If you search the jpos user group messages you will find a lot of interesting info..here is one for example I searched for "FSDMsg".
Check this one out..
http://tech.groups.yahoo.com/group/jpos-dev/message/6593

-chhil

Rk121

unread,
May 5, 2009, 2:34:36 AM5/5/09
to jpos-...@googlegroups.com

Hello-

for formatter how do we know, whether the field is present or not. why
because,some time the FDS also come as optional.so help me to do the
formatter.
--
View this message in context: http://www.nabble.com/ATM-Drive-tp7317445p23381794.html
Sent from the jPOS - Users mailing list archive at Nabble.com.

Mark Salter

unread,
May 5, 2009, 3:02:42 AM5/5/09
to jpos-...@googlegroups.com
Rk121 wrote:
>
> Hello-
>
> for formatter how do we know, whether the field is present or not. why
> because,some time the FDS also come as optional.so help me to do the
> formatter.
>
What does your message or ATM interface specification document say?

As there is no bitmap, the early/start field content will likely flavour
the message so you have enough information to know which fields should
or might be present.

My *guess* is that optional field separators would be when the message
is ending early as no more data follows.

You need to read your ATM message manuals I'm afraid.

--
Mark

Rk121

unread,
May 5, 2009, 8:32:49 AM5/5/09
to jpos-...@googlegroups.com

please find the sample message

11[1C]000[1C][1C]28000000[1C]01[1C];5799320000001237=081210115477677667?[1C]

once doing parse, i got the data like,

Field : 1
Field : 1
Field : [1C]
Field : 000
Field : [1C]
Field : [1C]
Field : 28000000
Field : [1C]
Field : 0
Field : 1
Field : [1C]
Field : ;5799320000001237=081210115477677667?
Field : [1C]

the aboue example if the field(28000000) is optional and it didn't come from
the message then

11[1C]000[1C][1C][1C]01[1C];5799320000001237=081210115477677667?[1C]

then i got like

Field : 1
Field : 1
Field : [1C]
Field : 000
Field : [1C]
Field : [1C]
Field : [1C]01[1
Field : C];5
Field : 7
Field : 9
Field : 9320
Field : 000001237=081210115477677667?
Field : [1C]

that why i am asking how to format the value in order...?
--
View this message in context: http://www.nabble.com/ATM-Drive-tp7317445p23386573.html

Victor Salaman

unread,
May 5, 2009, 8:41:13 AM5/5/09
to jpos-...@googlegroups.com
Take a look at FSDMsg and in your schema the data types 'AFS' and 'NFS'.

Let me express politely though, that the purpose of this list is to exchange valuable information relating to the jPOS system. It seems your query would best be served by your ATM vendor and/or reference your ATM spec.

/V

Mark Salter

unread,
May 5, 2009, 8:42:56 AM5/5/09
to jpos-...@googlegroups.com
Rk121 wrote:
>
> please find the sample message
>
> 11[1C]000[1C][1C]28000000[1C]01[1C];5799320000001237=081210115477677667?[1C]
>
> once doing parse, i got the data like,
>
> Field : 1
> Field : 1
> Field : [1C]
> Field : 000
> Field : [1C]
> Field : [1C]
> Field : 28000000
> Field : [1C]
> Field : 0
> Field : 1
> Field : [1C]
> Field : ;5799320000001237=081210115477677667?
> Field : [1C]

What are you using to parse this?


>
> the aboue example if the field(28000000) is optional and it didn't come from
> the message then
>
> 11[1C]000[1C][1C][1C]01[1C];5799320000001237=081210115477677667?[1C]
>
> then i got like
>
> Field : 1
> Field : 1
> Field : [1C]
> Field : 000
> Field : [1C]
> Field : [1C]
> Field : [1C]01[1
> Field : C];5
> Field : 7
> Field : 9
> Field : 9320
> Field : 000001237=081210115477677667?
> Field : [1C]
>
> that why i am asking how to format the value in order...?

Are you really trying to parse a String that includes the *characters*
"[" "1" "C" "]"?

I would humbly suggest that "[1C]" is meant to represent a single byte
containing the binary value x'1C'. It is this binary byte you *should*
be using as a sign that a variable field is complete.

My question about what you are using to parse this (test?) data still
stands?

I'm also asking about test data, in case you now need to think about
destroying this card having published it's track2 content on the internet.


--
Mark

Rk121

unread,
May 6, 2009, 1:05:55 AM5/6/09
to jpos-...@googlegroups.com

hello-

From using this transaction request example how you are exactly mapping
the values like msg class,sub class and luno etc...
--
View this message in context: http://www.nabble.com/ATM-Drive-tp7317445p23400093.html

Mark Salter

unread,
May 6, 2009, 2:11:58 AM5/6/09
to jpos-...@googlegroups.com
Rk121 wrote:
>
> hello-
>
> From using this transaction request example how you are exactly mapping
> the values like msg class,sub class and luno etc...

This discussion holds references to other discussions and pointers to
various sites.

The example Chhil gives is using a private FSDMsg schema to do the
parsing. This detail is mentioned and the fact that it could not be
shared is also present.

I suggest you read through the whole thread carefully and completely, it
starts here :-

http://tinyurl.com/ccjwwk

Carefully follow and read the targets of *all* of the links the
discussion holds *and* any other discussion referenced.

Once you have done this, you should have a good idea of what *you* need
to do and how your message specification will help you build the FSDMsg
schema that will then build/parse the messages you need to.

Could you also make time to answer my recent questions :-

http://tinyurl.com/d9m5lp

I think you have confused yourself somewhat with your examples, it would
be a good idea that you at least confirm that you understand why none of
the following characters :-

'[', '1', 'C' or ']'

should appear in your parsed output!

--
Mark

Reply all
Reply to author
Forward
0 new messages