Customer Data Validation

This method allows Interswitch Bill Payment Platforms to validate third-party customer information before a payment is made.

📘

Implementation Notes:

  1. Interswitch Bill Payment platforms comunicates with third-party platforms via HTTP POST.
  2. All requests sent via HTTP POST should be in XML format; therefore the content type must be set to text/xml.
  3. Request messages are submitted as raw XML in HTTP POST body and not as request parameters.
  4. If Customer Validation and Payment Notification services are implemented, a single endpoint URL must be provided to Interswitch to receive both message types.
  5. Ensure that all XML fields adhere to the CamelCase naming convention.

Customer Information Request Fields

This defines the expected XML tags that will be sent to third-party systems for Customer Validation. This is a generic system and new tags can be added at any time. Do not hard-code the structure of the XML requests. Your system should be able to retrieve data from the required fields and ignore others.

FieldMandatory/Optional LengthFormatDescription
ServiceUrl Mandatory ANY Alphanumeric Third-party platform service URL 
ServiceUsername Optional ANY Alphanumeric Username to access service at merchant's end 
ServicePassword Optional ANY Alphanumeric Password to access service at merchant's end 
FTPUrl Optional ANY Alphanumeric Third-party platform FTP location 
FTPUsername Optional ANY Alphanumeric Username to access FTP location at third party's end 
FTPPassword Optional ANY Alphanumeric Password to access FTP location at third party's end 
MerchantReference Mandatory ANY Alphanumeric Unique ID given by Interswitch to the client using the bill payment solution 
CustReference Mandatory ANY Alphanumeric Unique ID for the paying customer or specific order. Typically provided to the paying customer by the merchant 
PaymentItemCategoryCodeOptional 10 Alphanumeric Agreed code used to group items customers can pay for. 
PaymentItemCodeOptional 10 Alphanumeric This is an agreed code indicating the item that the customer has indicated he wants to pay for. 
TerminalIdOptional 8 Alphanumeric Unique identifier for Terminal. 
AmountOptional ANY Numeric Amount to be paid. NB: You must return amount as 0 when customers can pay any amount. 

Sample Customer Validation Request

This shows the sample request message that would be sent to third-party systems to validate a unique customer identified with the CustReference.

The PaymentItemCode is the specific item the customer wants to pay for.

Note: Additional tags can be added at any time. Ensure your system does not break due to this.


Customer Validation Request

         <CustomerInformationRequest>
            <ServiceUsername></ServiceUsername>
            <ServicePassword></ServicePassword>
            <MerchantReference>6405</MerchantReference>
            <CustReference>11111117</CustReference>
            <PaymentItemCode>01</PaymentItemCode>
            <RouteId>bbVendingPhcnEedcv3</RouteId>
            <Service>bill-payment-service</Service>
            <ThirdPartyCode></ThirdPartyCode>
        </CustomerInformationRequest>

Customer Validation Response (Without Payment Item)

         <CustomerInformationResponse>
            <MerchantReference>6405</MerchantReference>
            <Customers>
                <Customer>
                    <Status>0</Status>
                    <CustReference>11111117</CustReference>
                    <CustomerReferenceAlternate></CustomerReferenceAlternate>
                    <FirstName>test test</FirstName>
                    <Phone></Phone> 
                    <ThirdPartyCode></ThirdPartyCode> 
                    <Amount>0.00</Amount> 
                </Customer>
             </Customers>
          </CustomerInformationResponse>

Customer Information Response Fields

This defines the expected XML tags that should be returned by third-party systems during Customer Validation.

Note: Interswitch Bill Payment platforms use the returned status to determine whether the customer is valid or not

FieldMandatory/Optional LengthFormatDescription
MerchantReference Mandatory ANY Alphanumeric Unique ID given by Interswitch to the client using the bill payment solution. 
Customers Mandatory 
Container element for a collection of Customers. 
Customer Mandatory 
Container element for a customer. 
Status Mandatory ANY Numeric This is a status returned indicating if the customer is valid or not.  
0 = Valid
1 = Invalid
2 = Expired
StatusMessage Optional ANY Alphanumeric Description of the Status. 
CustReference Mandatory ANY Numeric Unique ID for the paying customer or specific order. Typically provided to the paying customer by the merchant. 
CustomerReferenceAlternateOptionalANYAlphanumericThis is an alternate ID used to identify the same customer.
FirstNameMandatoryANYAlphanumericThis is the first name of the customer.
LastNameOptionalANYAlphanumericThis is the surname of the customer.
OtherNameOptionalANYAlphanumericThis is the middle name of the customer.
EmailOptionalANYAlphanumericThis is the email address of the customer.
Phone NumberOptionalANYAlphanumericThis is the phone number of the customer.
ThirdPartyCodeOptional10AlphanumericThis is a unique code agreed between both systems to group the customer in a category.
AmountMandatoryANYNumericThis is the amount the customer is expected to pay. Value should be in major denomination. NB: Amount must be greater than 0.
PaymentItemsOptional (Mandatory if returning payment item)--Container element for a collection of payment items.
ItemOptional (Mandatory if returning payment item)--Container element for an individual payment item.
ProductNameOptional (Mandatory if returning payment item)ANYAlphanumericThis is the name of the item that the customer should/can pay for.
ProductCodeOptional (Mandatory if returning payment item)ANYAlphanumericThis is the code of the item that the customer should/can pay for.
QuantityOptional (Mandatory if returning payment item)ANYNumericThis is the number of items that the customer should/can pay for.
PriceOptional (Mandatory if returning payment item)ANYNumericThis is the unit price of the item that the customer should/can pay for.
SubtotalOptional (Mandatory if returning payment item)ANYNumericThis is the total amount that the customer should/can pay for less tax.
TaxOptional (Mandatory if returning payment item)ANYNumericThis is the additional cost added to the original cost of the item.
TotalOptional (Mandatory if returning payment item)ANYNumericThis is the total amount that the customer should/can pay for.

Sample Customer Validation Response

This shows the sample response message that would be returned from third-party systems to Interswitch Bill Payment Platforms.

Customer Validation Response

NB: Amount is returned as 0, meaning customers will be allowed to pay any amount.

Customer Information Response

          <CustomerInformationResponse>
            <MerchantReference>639</MerchantReference>
            <Customers>
                <Customer>
                    <Status>0</Status>
                    <CustReference>23470</CustReference>
                    <CustomerReferenceAlternate>            </CustomerReferenceAlternate>
                    <FirstName>test test</FirstName>
                    <Phone></Phone> 
                    <ThirdPartyCode></ThirdPartyCode> 
                    <Amount>0</Amount> 
                </Customer>   
             </Customers>
          </CustomerInformationResponse>

Customer Validation Response (With Payment Item)

NB: Use this response when the returned amount is greater than 0

         <CustomerInformationResponse>
            <MerchantReference>639</MerchantReference>
            <Customers>
                <Customer>
                    <Status>0</Status>
                    <CustReference>23470</CustReference>
                    <CustomerReferenceAlternate></CustomerReferenceAlternate>
                    <FirstName>test test</FirstName>
                    <Phone></Phone> 
                    <ThirdPartyCode></ThirdPartyCode> 
                    <Amount>234078</Amount> 
                    <PaymentItems> 
                       <Item> 
                           <ProductName>PayAtBank</ProductName> 
                           <ProductCode>01</ProductCode> 
                           <Quantity>1</Quantity> 
                           <Price>234078</Price> 
                           <Subtotal>234078</Subtotal> 
                           <Tax>0</Tax> 
                           <Total>234078</Total> 
                       </Item> 
                    </PaymentItems
                </Customer>
             </Customers>
          </CustomerInformationResponse>

Did this page help you?