0% found this document useful (0 votes)
6 views16 pages

API_Document

The Teleco Message Specification outlines the structure and requirements for Bill Payment Transactions, which include Bill Inquiry, Bill Payment, and Echo Message transactions. Each transaction has specific input parameters, response codes, and data types that must be adhered to for successful processing. The document also addresses handling duplicate transactions and provides a sample WSDL for implementation.

Uploaded by

Kamran Butt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views16 pages

API_Document

The Teleco Message Specification outlines the structure and requirements for Bill Payment Transactions, which include Bill Inquiry, Bill Payment, and Echo Message transactions. Each transaction has specific input parameters, response codes, and data types that must be adhered to for successful processing. The document also addresses handling duplicate transactions and provides a sample WSDL for implementation.

Uploaded by

Kamran Butt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

Introduction:

Teleco Message Specification provides the details of transaction


message which will be used for Bill Payment Transaction.

A complete Bill Payment transaction consists of following two


transactions which are implemented through web services.

1. Bill Inquiry
2. Bill Payment
3. Echo Message

1. Bill Inquiry
Bill Inquiry Transaction is required to check the validity of the
transaction. The details of the function are as under:

Input Parameters
For Utility
Company
Usually, This field
Id
contains UCID in case
string(8
there are multiple
)
companies attached
to the webservice on
the other end.

The field can


configure only one
time for an
environment. If it is
configure for Bank
Mnemonic than all
Online Company
that are according to
this message format
will receive Bank
Mnemonic else utility
company Id

Banks’ Mnemonic
e.g.
BoK, QNB
etc

Reserved Reserved field O String (200)

TMF Generic Reserved field Details


Parameter Description Data Type
STAN String (6)
Dummy String (194)

Signature

BillInquiry(string userName, string password, string consumerNumber,


string bankMnemonic, string reserved)

Return String in following format


Response Message Length: [299]
Response should return as shown in the e.g. form below.
Response Message: [00Muhammad Konain
U20190618+0000000012000+0000000013000190620190618000000
012000698243
]
Moreover, for further bifurcation, please refer the below table.
Parameter Description Mandatory/ Data Type
Optional
Payment
U B P
Response_Code ‘00’ in case of M M M String (N) 2
valid
consumer/mobile
number that exists
in the
system/database of
utility/telecom
company and
status is active

‘01’ in case of
invalid
consumer/mobile
number that
doesnot exists

‘02’ in caseof
valid
consumer/mobile
number that
is currently
blocked or
dormant/inactive
(i-e transactions
are not allowed)

‘03’
Unknown
Consumer_Detail This will M M M String (A) 30
contain
Consumer Name Left justified
in case of utility right padded
company and with spaces
Package Plan in
case of Telecom
company
“PREPAID” or
“POSTPAID”.
Bill_Status ‘U’ in case of M M M String (A) 1
unpaid
bill or bill on
which payment is
allowed
‘P’ in case of paid
payment is no
allowed
‘B’ in case of
blocked
bill
Partial(Multipl
e/
Excess) payment
companies will
always send ‘T’
because excess
Due_Date payments
DueDate can will
be M M M yyyyMMdd
be
provided in case of
Utility company
consumers and
Telecom PostPaid
customers. In case
of prepaid
customers, this field
will be filled with all
Amount_Within_Due Amount will be M M M AN14
provided
Date
in case of Utility
- Last 2
company
digits minor
consumers and
units
Telecom PostPaid
customers. In case - Left padded
of prepaid with zeros
customers, this field
will be filled with e.g.
Amount
spaces.
120.00 Rs
is formatted as
+000000001200
0

Amount -
120.00
Rs

Amount_After_DueD Amount will be M M M is formatted as


AN14
a provided

te in case of Utility
- Last 2
company
digits minor
consumers and
units
Telecom PostPaid
customers. In case - Left padded
of prepaid with zeros
customers, this field
will be filled with e.g.
Amount
spaces.
is formatted as
+000000001200
0

Amount -
120.00
Rs
is formatted as
Billing_Month Billing Month will be M M M String
provided in case of
N(4)
Utility
company yyMM
consumers.
In case of Telecom,
this field will be
Date_Paid filled
In casewith
billspaces.
status is O O M String
‘P’ else white space N(8)
should be sent yyyyMMdd
according to
specified length

Amount_Paid In case bill status is O O M String N(12)


‘P’ else white - Last 2
spaces should be digits minor
sent according to units
the specified - Left padded
length with
zeros
e.g. Amount
120.00 Rs
Tran_Auth_Id In case bill status O O M is formatted
String N(6) as
is
e.g. 698243
‘P’ else white space
should be send
according to
specified length

Reserved Reserved field O O O String (200)

PIA Reserved field


Details
Parameter Description Data Type
PNR No. String (6)
Flight No. String (6)
Flight Date String (7) Format ddMMMyy
Dummy String (181)
2. Payment Transaction

Input Parameters

Parameter Description Mandatory/ Data Type


Optional
Payment (U/B/P)
Username M String
Maximum length
(60), in case length
is less than 60
then there will no
whitespaces padded
Password M String
Maximum length
(60), in case length
is less than 60
then there will no
whitespaces padded
Consumer_Number This will be M String
either maximum
(PK)
consumer number in length
(24)
case of utility
company and
In case of consumer
mobile number in
number field
case of telecom
length less than
company
24 then there will
be no whitespace
padded.

Tran_Auth_Id (PK) Transaction M String


Authorization
ID N(6)

e.g. 698243

Transaction Credit Amount M String


Amount

AN12

- Last 2 digits
minor units

- Left padded
with zeros
e.g. Amount
120.00
Rs
is formatted as
000000012000

Tran_Date (PK) Transaction Date M String

N(8)
YYYYMMD
D
Tran_Time (PK) Transaction Time M String

N(6)
HHMMS
S
Bank_Mnemonic This field M For Bank
contains Mnemonic
either Bank string(3)
Mnemonic or Utility
Company Id. For Utility Company
Id string(8)
Usually, This field
contains UCID in
case there are
multiple companies
attached to the
webservice on the
other end.

The field can


configure only one
time for an
environment. If it is
configure for Bank
Mnemonic than all
Online Company
that are according
to this message
format will receive
Bank Mnemonic else
utility company Id

Banks’ Mnemonic
e.g.
BoK, QNB
etc
SSGC0001,
UFONE003
etc

Reserved Reserved Field String (200)


(Detailed
in Reserved fields grid)

PTCL Reserved field


Details
Parameter Description Data Type
Delivery Channel Id String (2)
ATM Id String (10)
PAN String (19)
STAN String (6)
Dummy String (163)

BAHL Generic Reserved field Details


Parameter Description Data Type
CustomerAccountNo SPI field - String (28)
CustomerAccountNo
Dummy String (172)

Signature

BillPayment(string userName, string password, string consumerNumber,


string authId,string amount, string tranDate, string tranTime, string
bankMnemonic, string reserved)

Return String in following format


Response Message Length: [222]
Response should return as shown in the e.g. form below.

Response Message: [00


]

Moreover, for further bifurcation, please refer the below table.

Parameter Description Mandatory/ Data Type


Optional
Full Payment
U B P
Response_Code 00 is success M M M N(2)
01 Mobile number
not found
02 unknown error
03
Duplicate
Transaction
04 Invalid Data
05 Processing Failed
Note: more
response codes may
be added where
ever applicable
Identification Voucher Number, O O O String
Parameter Scratch Card Length: (20)
Number etc
Reserved Reserved field - first O O O String (200)
20
digits will be the
serial number

3. Echo Transaction

Input Parameters
Parameter Description Mandatory/ Data Type
Optional
Username M String
Password M String
Ping Fixed Value M String
=
“ARE_YOU_ALIVE”

Return String in following format


Parameter Description Mandatory/ Data Type
Optional
Ping Fixed Value M String
=
“ARE_YOU_ALIVE”

NOTE: All optional fields will either have white spaces or zeros as per
the field requirement.
4. Response Codes

Transaction Type Response Code Response Code Description


Bill Inquiry 00 Successful Bill Inquiry
Bill Inquiry 01 Consumer Number does not exist
Bill Inquiry 02 Consumer Number Block
Bill Inquiry 03 Unknown Error / Bad Transaction
Bill Inquiry 04 Invalid Data
(e.g userid, password, Bank
Mnemonic provided wrong)
Bill Inquiry 05 Service Fail
Bill Payment 00 Successful Bill Payment
Bill Payment 01 Consumer Number does not exist
Bill Payment 02 Unknown Error / Bad Transaction
Bill Payment 03 Duplicate Transaction
Bill Payment 04 Invalid Data
(e.g userid, password, Bank
Mnemonic provided wrong)
Bill Payment 05 Service Fail

5. Duplicate Transaction

It is possible that Web Service will receive same bill payment transaction multiple
times (duplicate transaction) so it is necessary that Web Service should able to
handle duplicate transaction. A bill payment transaction can be identified as unique
by using following fields.
1. Consumer_Number
2. Tran_Auth_Id
3. Tran_Date
4. Tran_Time
Sam ple WSDL

<?xml version="1.0" encoding="utf-16"?


>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/"
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.
xmlsoap.org/wsdl/http/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
<s:element name="BillInquiry">
<s:complexT ype>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="userName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="consumerNumber" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="bankMnemonic" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="reserved" type="s:string" />
</s:sequence>
</s:complexT ype>
</s:element>
<s:element name="BillInquiryResponse">
<s:complexT ype>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="BillInquiryResult" type="s:string" />
</s:sequence>
</s:complexT ype>
</s:element>
<s:element name="BillPayment">
<s:complexT ype>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="userName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="consumerNumber" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="authId" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="amount" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="tranDate" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="tranTime" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="bankMnemonic" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="reserved" type="s:string" />
</s:sequence>
</s:complexT ype>
</s:element>
<s:element name="BillPaymentResponse">
<s:complexT ype>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="BillPaymentResult" type="s:string" />
</s:sequence>
</s:complexT ype>
</s:element>
<s:element name="string" nillable="true" type="s:string" />
</s:schema>
</wsdl:types>
<wsdl:message
name="BillInquirySoapIn">
<wsdl:part name="parameters" element="tns:BillInquiry" />
</wsdl:message>
<wsdl:message
name="BillInquirySoapOut">
<wsdl:part name="parameters" element="tns:BillInquiryResponse" />
</wsdl:message>
<wsdl:message
name="BillPaymentSoapIn">
<wsdl:part name="parameters" element="tns:BillPayment" />
</wsdl:message>
<wsdl:message
name="BillPaymentSoapOut">
<wsdl:part name="parameters" element="tns:BillPaymentResponse" />
</wsdl:message>
<wsdl:message name="BillInquiryHttpGetIn">
<wsdl:part name="userName" type="s:string" />
<wsdl:part name="password" type="s:string" />
<wsdl:part name="consumerNumber" type="s:string" />
<wsdl:part name="bankMnemonic" type="s:string" />
<wsdl:part name="reserved" type="s:string" />
</wsdl:message>
<wsdl:message name="BillInquiryHttpGetOut">
<wsdl:part name="Body" element="tns:string" />
</wsdl:message>
<wsdl:message name="BillPaymentHttpGetIn">
<wsdl:part name="userName" type="s:string" />
<wsdl:part name="password" type="s:string" />
<wsdl:part name="consumerNumber" type="s:string" />
<wsdl:part name="authId" type="s:string" />
<wsdl:part name="amount" type="s:string" />
<wsdl:part name="tranDate" type="s:string" />
<wsdl:part name="tranTime" type="s:string" />
<wsdl:part name="bankMnemonic" type="s:string" />
<wsdl:part name="reserved" type="s:string" />
</wsdl:message>
<wsdl:message name="BillPaymentHttpGetOut">
<wsdl:part name="Body" element="tns:string" />
</wsdl:message>
<wsdl:message name="BillInquiryHttpPostIn">
<wsdl:part name="userName" type="s:string" />
<wsdl:part name="password" type="s:string" />
<wsdl:part name="consumerNumber" type="s:string" />
<wsdl:part name="bankMnemonic" type="s:string" />
<wsdl:part name="reserved" type="s:string" />
</wsdl:message>
<wsdl:message name="BillInquiryHttpPostOut">
<wsdl:part name="Body" element="tns:string" />
</wsdl:message>
<wsdl:message name="BillPaymentHttpPostIn">
<wsdl:part name="userName" type="s:string" />
<wsdl:part name="password" type="s:string" />
<wsdl:part name="consumerNumber" type="s:string" />
<wsdl:part name="authId" type="s:string" />
<wsdl:part name="amount" type="s:string" />
<wsdl:part name="tranDate" type="s:string" />
<wsdl:part name="tranTime" type="s:string" />
<wsdl:part name="bankMnemonic" type="s:string" />
<wsdl:part name="reserved" type="s:string" />
</wsdl:message>
<wsdl:message name="BillPaymentHttpPostOut">
<wsdl:part name="Body" element="tns:string" />
</wsdl:message>
<wsdl:portType name="ServiceSoap">
<wsdl:operation name="BillInquiry">
<wsdl:input message="tns:BillInquirySoapIn" />
<wsdl:output message="tns:BillInquirySoapOut" />
</wsdl:operation>
<wsdl:operation name="BillPayment">
<wsdl:input message="tns:BillPaymentSoapIn" />
<wsdl:output message="tns:BillPaymentSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="ServiceHttpGet">
<wsdl:operation name="BillInquiry">
<wsdl:input message="tns:BillInquiryHttpGetIn" />
<wsdl:output message="tns:BillInquiryHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="BillPayment">
<wsdl:input message="tns:BillPaymentHttpGetIn" />
<wsdl:output message="tns:BillPaymentHttpGetOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="ServiceHttpPost">
<wsdl:operation name="BillInquiry">
<wsdl:input message="tns:BillInquiryHttpPostIn" />
<wsdl:output message="tns:BillInquiryHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="BillPayment">
<wsdl:input message="tns:BillPaymentHttpPostIn" />
<wsdl:output message="tns:BillPaymentHttpPostOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ServiceSoap" type="tns:ServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="BillInquiry">
<soap:operation soapAction="http://tempuri.org/BillInquiry" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="BillPayment">
<soap:operation soapAction="http://tempuri.org/BillPayment" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="ServiceSoap12" type="tns:ServiceSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="BillInquiry">
<soap12:operation soapAction="http://tempuri.org/BillInquiry" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="BillPayment">
<soap12:operation soapAction="http://tempuri.org/BillPayment" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="ServiceHttpGet" type="tns:ServiceHttpGet">
<http:binding verb="GET" />
<wsdl:operation name="BillInquiry">
<http:operation location="/BillInquiry" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="BillPayment">
<http:operation location="/BillPayment" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="ServiceHttpPost" type="tns:ServiceHttpPost">
<http:binding verb="POST" />
<wsdl:operation name="BillInquiry">
<http:operation location="/BillInquiry" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="BillPayment">
<http:operation location="/BillPayment" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Service">
<wsdl:port name="ServiceSoap" binding="tns:ServiceSoap">
<soap:address location="http://localhost/TPS/Simulator_live/UBPSService.asmx" />
</wsdl:port>
<wsdl:port name="ServiceSoap12" binding="tns:ServiceSoap12">
<soap12:address location="http://localhost/TPS/Simulator_live/UBPSService.asmx" />
</wsdl:port>
<wsdl:port name="ServiceHttpGet" binding="tns:ServiceHttpGet">
<http:address location="http://localhost/TPS/Simulator_live/UBPSService.asmx" />
</wsdl:port>
<wsdl:port name="ServiceHttpPost" binding="tns:ServiceHttpPost">
<http:address location="http://localhost/TPS/Simulator_live/UBPSService.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
THIS DOCUMENT AND THE INFORMATION HEREIN ARE THE PROPERTY OF TPS PAKISTAN (PVT.)
LTD. AND ALL UNAUTHORIZED USE AND REPRODUCTION IS STRICTLY PROHIBITED.

COPYRIGHT 2009 BY TPS PAKISTAN (PVT.) LTD. ALL RIGHTS RESERVED.


CONFIDENTIAL, UNPUBLISHED PROPERTY OF TPS PAKISTAN (PVT.) LTD.
FOR INTERNAL USE ONLY

All Rights Reserved- Copyrights © 2009 TPS Pakistan Pvt Ltd


Limited
This is unpublished, confidential document of TPS Pakistan Private
Limited.
No part of this document may be reproduced, stored in retrieval form, adopted or transmitted in any form or by any
means, electronic, mechanical, photographic, graphic, optic or otherwise, translated in any language or computer
language, without prior written permission from TPS Pakistan Private Limited (TPS).This document has b een
prepared with all due diligence, however, TPS Pakistan Private Limited, makes no representation or warranties with
respect to the contents hereof and shall not be responsible for any loss or damage caused to the user by the direct or
indirect use of this document and the accompanying information. Furthermore TPS Pakistan Private Limited,
reserves the right to alter, modify or otherwise change in any manner the content hereof, without the obligation to
notify any person of such revision or changes.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy