Instant Payment Notification (IPN) V4 migration guide


The following guide will help you migrate from old IPN API to IPN V4 API. We advise you to do so, as old versions won't be maintained anymore.

A list of all migration guides can be found here: Go to migration guides


Note: Everything colored with red was removed in API V4, while the new functionalities added in V4 are colored with green.

Endpoints

Endpoint HTTP method Deprecated V4
PayU IPN Request POST /merchant-ipn-url /merchant-ipn-url


PayU IPN Request

Request parameters mapping
Deprecated V4 Details
REFNO orderData.payuPaymentReference
REFNOEXT orderData.merchantPaymentReference
IPN_TOTALGENERAL orderData.amount
IPN_COMMISSION orderData.commission
CURRENCY orderData.currency
ORDERSTATUS orderData.status
SALEDATE orderData.orderDate
USED_LOYALTY_POINTS orderData.loyaltyPointsAmount
USED_LOYALTY_POINTS_DETAILS_TYPE[0] orderData.loyaltyPointsDetails.0.type
USED_LOYALTY_POINTS_DETAILS_AMOUNT[0] orderData.loyaltyPointsDetails.0.amount
HAS_FAST_REFUND orderData.hasFastRefund
REFUND_REQUEST_ID orderData.refundRequestId
CHARGEBACK orderData.refundInfo.chargeback
PAYMETHOD_CODE paymentResult.paymentMethod
PAYMENTDATE paymentResult.paymentDate
COMPLETE_DATE paymentResult.captureDate
BANK_MERCHANT_ID paymentResult.merchantId
TERMINAL_BANK paymentResult.paymentBankShortName
BANK_RRN paymentResult.rrn
AUTH_CODE paymentResult.authCode
IPN_INSTALLMENTS_NUMBER paymentResult.installmentsNumber
IPN_INSTALLMENTS_PROGRAM paymentResult.cardProgramName
SERVICE_PROCESSING_TYPE paymentResult.serviceProcessingType
CARD_HOLDER_NAME paymentResult.cardDetails.owner
CARD_BIN paymentResult.cardDetails.bin
CARD_MASK paymentResult.cardDetails.pan
CARD_TYPE paymentResult.cardDetails.type
ISSUING_BANK paymentResult.cardDetails.cardIssuerBank
IPADDRESS client.ip
IPCOUNTRYCODE client.ipCountryCode
FIRSTNAME client.billing.firstName
LASTNAME client.billing.lastName
COMPANY client.billing.companyName
FISCALCODE client.billing.taxId
ADDRESS1 client.billing.addressLine1
ADDRESS2 client.billing.addressLine2
CITY client.billing.city
STATE client.billing.state
ZIPCODE client.billing.zipCode
COUNTRY_CODE client.billing.countryCode
PHONE client.billing.phone
CUSTOMEREMAIL client.billing.email
IDENTITY_NO client.billing.identityDocument.number
IDENTITY_TYPE client.billing.identityDocument.type
FIRSTNAME_D client.delivery.firstName
LASTNAME_D client.delivery.lastName
COMPANY_D client.delivery.companyName
ADDRESS1_D client.delivery.addressLine1
ADDRESS2_D client.delivery.addressLine2
CITY_D client.delivery.city
STATE_D client.delivery.state
ZIPCODE_D client.delivery.zipCode
COUNTRY_D_CODE client.delivery.countryCode
PHONE_D client.delivery.phone
IPN_PID[0] If this is sent IPN_PNAME, IPN_PCODE, IPN_INFO, IPN_QTY, IPN_PRICE and IPN_VAT will be reveived
IPN_PNAME[0] products.0.name
IPN_PCODE[0] products.0.sku
IPN_INFO[0] products.0.additionalDetails
IPN_QTY[0] products.0.quantity
IPN_PRICE[0] products.0.unitPrice
IPN_VAT[0] products.0.vatAmount
EMAIL_D client.delivery.email
USED_LOYALTY_POINTS_DETAILS_PROGRAM
HASH it was moved in X-Header-Signature header, see authentication section
ORDERNO
PAYMETHOD
IDENTITY_ISSUER
IDENTITY_CNP
REGISTRATIONNUMBER
CBANKNAME
CBANKACCOUNT
COUNTRY
FAX
COUNTRY_D
IPN_VER
IPN_DISCOUNT
IPN_PROMONAME
IPN_DELIVEREDCODES
IPN_TOTAL
IPN_SHIPPING
IPN_GLOBALDISCOUNT
authorization.timestamp
authorization.authorized
authorization.cardDetails.cardScheme
authorization.cardDetails.cardType
authorization.cardDetails.issuerBank
authorization.cardDetails.issuerCountryCode
authorization.cardDetails.cardProfile
authorization.cardDetails.lastFourDigits
authorization.cardDetails.binNumber
authorization.storedCredentials.useId

Response parameters mapping
Deprecated V4 Details
<EPAYMENT>DATE|HASH</EPAYMENT> On V4 should receive an empty body with HTTP Status Code 200


Authentication

Deprecated V4
Can be done in two ways:
  • Header authentication: Authorization and X-timestamp headers
  • Request parameter authentication: merchant, timestamp and signature parameters
The signature is passed in the requests X-Header-Signature header, that has to be sent together with X-Header-Date and X-Header-Merchant headers. Read more about how its calculated here