External Auth API

This section helps the client build the External Authorization API. External Authorization API is a client-hosted API called by the Prepaid system whenever an auth transaction occurs for client approval (external authorizer).

Prerequisites

  • Basis the approval/rejection from the client side, the response will be passed ahead with the network.
  • The client should make this API available all the time and the response should be well within the timeout time.
  • If the API does not respond withing the timeout time, then the issuer shall decline the transaction as timed-out.
  • The timeout time at Wibmo Prepaid is 2000 milliseconds.
  • The endpoint ending with <API_PATH> must be maintained by the client.

API / webhooks headers

Parameter

Type

Parameter Requirement

Description

X-Consumer-Custom-ID

string (15)

Mandatory

This is the unique key to be shared with the client by Wibmo for the API environment exposure.

clientId

string (15)

Mandatory

This is the Unique ID for the client to be shared by Wibmo.

bankId

numeric (4)

Mandatory

Unique ID to identify the issuer bank. Wibmo to share.

6060 - in case PayU is the issuer

entityId

numeric (4)

Optional

Child corporate/branch entity ID under the client. If not passed, it will default to the client's parent branch.

External authorization

API URL Path: api/v1/externalAuth

Type: POST

Request parameters

Parameter

Type

Parameter Requirement

Description

Sample value

customerId

string(50)

Optional

Unique customer ID for the customer in the Prepaid and client system.

HRM0054454

urn

string(20)

Mandatory

Unique reference number for the customer.

10000333

merchantName

string(50)

Optional

The Merchant name of the transaction

xyz

terminalId

string(50)

Mandatory

Terminal ID

1234

mcc

numeric(10)

Optional

Payee merchant category code

5999

systemTraceAuditNumber

numeric(6)

Mandatory

STAN 6-digit unique internal audit number for the issuer

162

cardNetwork

string(20)

Mandatory

Card scheme

RUPAY

channel

string(10)

Mandatory

POS, ECOM, ATM, POS-Contactless

ATM

merchantId

string(50)

Optional

Payee merchant ID

12

transactionAmount

string(15)

Mandatory

Transaction amount in implied decimals.

20000

fee

string(15)

Optional

Fee collected for the transaction in implied decimals.

1000

transactionReferenceNumber

string(50)

Mandatory

Transaction Reference Number

0200900780010618271700000123

currencyCode

string(3)

Optional

In ISO-4217 country currency code format. E.g., 356 for INR and 840 for USD

356

last4Digits

string(4)

Mandatory

Last four digits of the card number

8689

originalRrn

string(30)

Optional

RRN received from the network

726474

billingCurrency

string(3)

Conditional

For cross border transactions, billing currency and billing amount will be used.

Billing currency code in ISO-4217 country currency code format. E.g., 356 for INR and 840 for USD

356

billingAmount

string(15)

Conditional

Billing currency Amount in implied decimals.

2000

Sample request

{
	"fee": "1000",
	"merchantName": "xyz",
	"terminalId": "1234",
	"mcc": 5999,
	"systemTraceAuditNumber": 900780,
	"entityId": "100",
	"cardNetwork": "RUPAY",
	"channel": "ATM",
	"merchantId": "12",
	"transactionAmount": "200000",
	"transactionReferenceNumber": "0200900780010618271700000123",
	"urn": "611930",
	"currencyCode": "356",
	"last4Digits": "1234",
	"orignialRrn": "726474",
	"customerId": "IN2016201611",
	"billingCurrency": "356",
	"billingAmount": "200000"
}

Response parameters

ParameterTypeParameter RequirementDescriptionSample value
responseCodestring(5)MandatoryResponse code as per the API response code table.00
responseDescriptionstring(100)MandatoryResponse description based on the responseCode.TRANSACTION_APPROVED
responseDateTimenumeric(14)MandatoryResponse timestamp in the format YYYYMMDDHHMMSS with time in 24 hr format.20161031214559
transactionAmountstring(15)MandatoryTransaction amount.20000
currencyCodestring(3)MandatoryEchoed from the request.356

Sample response

{
	"transactionAmount": "200000",
	"currencyCode": "356",
	"responseCode": "00",
	"responseDescription": "TRANSACTION_APPROVED",
	"responseDateTime": "20161031214559"
}

Response codes

📘

Note:

A proper response code should be sent in the response from the client. In case of any other scenario from the codes mentioned in the following table, `05` should be passed by default.

Response codeResponse description
00TRANSACTION_APPROVED
05DO_NOT_HONOR
14CARD_NOT_FOUND
34SUSPECTED_FRAUD
41LOST_CARD
43STOLEN_CARD
51NO_SUFFICIENT_FUNDS
61EXCEEDS_WITHDRAWAL_AMOUNT_LIMIT
65EXCEEDS_WITHDRAWAL_FREQUENCY_LIMIT