Skip to content

Verify OTP SNAP

API Verify OTP consists of 2 functions which are to verify OTP when registering a card and to verify OTP when payment.

NameAPI Verify OTP
Service Code04
Path/v1.0/otp-verification
Version1.0
HTTP MethodPOST
Type FormatJSON

Request Body Verify OTP - Card

FieldTypeMandatoryLengthDescription
originalReferenceNoStringM64Original Reference Number from API Card Registration
otpStringM8OTP Code / Passcode
chargeTokenStringM40OTP String Code that is to be verified with the passcode obtained by the user
typeStringO20Action Type. Possible Value: - "OTP_TYPE_CARD"
additionalInfoObjectOAdditional Information

Sample Request:

sh

--header 'X-TIMESTAMP: 2020-12-18T10:55:00+07:00'

--header 'X-SIGNATURE: Jz6sc4sQMlcml1ShG8nJV9nZyUep0dnYkeIZKKx7PFjIofi6/eaN+tk8crJn+IaYWrs5/JKzabrq7OLZ4e4i5igm5tOG+9zBqQtbbtN2XXYWUY9/IFhcs5tRezLq+2HUrT6B56KHYoT+8ac2IEkpPqf9dDSPRp9SzqP7yZvC6FS3SEanAp2seBBWm+eH+8S9LWzgQwetlf22CUdQdViIHUnc49722LRK/A1xqrvYvZLxZx1cwvO0jWyX7FHna0+KQA g===='

--header 'X-Partner-Id: IFP2024078155'

--header 'CHANNEL-ID: DD003'

--header 'X-EXTERNAL-ID: 82849004103792'

--header 'Content-Type: application/json'

--data '{
"originalReferenceNo": "01909ac9b2fd7d4afc17a2f0c737624",
"otp": "999999",
"chargeToken": "TOK_WAOCXIPFT3Q42EKBJLJOOVPNC7P53RKG::0146",
"type": "OTP_TYPE_CARD"
}'

Response Body Verify OTP - Card

FieldTypeMandatoryLengthDescription
responseCodeStringM7Response Code
responseMessageStringM150Response Description
originalReferenceNoStringM64Transaction identifier on iFortepay system
originalPartnerReferenceNoStringO64Transaction identifier on consumer system
accountNoStringO11Customer's account number
bankCardTokenStringM128Card Token for Payment. Card Token have an active period that follows the card's expiration date.
cardPanStringO16Card Number
emailStringO254RFC 3696
expiryDateStringO4Card Expiry Date
phoneNoStringO16Customer's Phone Number. Format: 62xxxxxxxxxxxxxxxx
subscribeDateTimeStringO25Registration Time
tokenExpiryTimeStringO25Time when the token will be expired
additionalInfoObjectOAdditional Information
additionalInfo.debitCardTypeStringODebit Card Type

Sample Response:

sh
    "additionalInfo": {
        "debitCardType": "PVRGLR"
    },
    "bankCardToken": "card_.eyJpYXQiOjE3MTYxNzY4NjMsImlzcyI6IkJhbmsgQlJJIC0gRENFIiwianRpIjoiODdkMGEyOGUtZjQwNC00MzhkLWE1YTUtZTdkZjI5YjVmYWJlIiwicGFydG5lcklkIjoi77-9Iiwic2VydmljZU5hbWUiOiJERF9FWFRFUk5BTF9TRVJWSUNFIn0.XJ0O_jiXIYHY9ldgbWHbUE6UW-Hj880iV3qziazEiJ7_GZ0hmCOvi9Ep_FBgH4kYgNB4CpdIAI4VRbc-pymn3sR-SdzZUZQRTFLdTe47WM6-imWDZtcEq3XkhQ75X3rfcCADsN0hR-0qqj9J84KRRT8SEjFkT96QwdRs3HZZuaa3Pgddcz8nl9zDn1vBXVDiCbMLYmpl90D-wwOUiREbdLpderBjtFA-Ybj8_i7tWbQI0YTou1CG_KTsUTrxTGNjCCBDpzDxE-_ED-DGXfYRZRNv0hitOH2Gwbh2JtXV89fGSF6HafX6TVazEoLpi0vvDP0LtBxm8R-I8c65yKipVQ",
    "cardPan": "************5045",
    "customerId": "78678687613",
    "email": "irham.raziqony@ifortepay.id",
    "expiryDate": "0525",
    "originalPartnerReferenceNo": "QA-20240710-001",
    "originalReferenceNo": "01909ac9b2fd7d74afc17a2f0c737624",
    "phoneNo": "6283849420146",
    "responseCode": "2000400",
    "responseMessage": "Successful",
    "subscribeDateTime": "2024-07-10T10:57:53+07:00",
    "tokenExpiryTime": "2025-05-31T23:59:59+07:00"
}

Request Body Verify OTP - Payment

FieldTypeMandatoryLengthDescription
originalReferenceNoStringM64Original Reference Number from API Card Registration
otpStringM8OTP Code / Passcode
chargeTokenStringM40OTP String Code that is to be verified with the passcode obtained by the user
typeStringO20Action Type. Possible Value: - "OTP_TYPE_PAYMENT"
additionalInfoObjectOAdditional Information
additionalInfo.bankCardTokenStringCBank Card Token for Payment. Becomes mandatory if type is "OTP_TYPE_PAYMENT"

Sample Request:

sh
--header 'X-TIMESTAMP: 2020-12-18T10:55:00+07:00' \
--header 'X-SIGNATURE: JHHcnQ8tCSTW99uJKpEMw6cWXbltAYXwhEvPBCRPZpFuLWCazm8rr5OzSyrBdsqkVv9ErbhzBLZTULRB2oCmKCyaZE80ssen46/O21pVzv/ChmEeurs3ZNDVgMZovFTwV49zEpodHHIH0Z6CFi2XMJj5Ii3SM09PB5L6YqY5s8/Xlihi/TSw1aanhMFH/EbCwGatijAAqMmLDk0KdsHHZQytWWrPpt8ykY2m2bTWvw0Yzt9iq8H/ltukcSDTN1Rfjz+o+Vj5l/WdfRkXD/vkv94OlaWHQUPn1LVyX9Ri02WSiKjTUN+lpqc5MbfYMst3d+wzkuXQqGQ1CaXBKUy1Cw==' \
--header 'X-Partner-Id: IFP2024078155' \
--header 'CHANNEL-ID: DD003' \
--header 'X-EXTERNAL-ID: 50486912930761' \
--header 'Content-Type: application/json' \
--data '{
   "originalReferenceNo":"01909bac04617cb9812afb9ec343a180",
   "otp":"999999",
   "chargeToken":"CHARGE_DE2X26NLDGBUNA3TQ3DOHOKMILCMRX5H::0146",
   "type":"OTP_TYPE_PAYMENT",
   "additionalInfo":{
        "bankCardToken": "card_.eyJpYXQiOjE3MTYxNzY4NjMsImlzcyI6IkJhbmsgQlJJIC0gRENFIiwianRpIjoiODdkMGEyOGUtZjQwNC00MzhkLWE1YTUtZTdkZjI5YjVmYWJlIiwicGFydG5lcklkIjoi77-9Iiwic2VydmljZU5hbWUiOiJERF9FWFRFUk5BTF9TRVJWSUNFIn0.XJ0O_jiXIYHY9ldgbWHbUE6UW-Hj880iV3qziazEiJ7_GZ0hmCOvi9Ep_FBgH4kYgNB4CpdIAI4VRbc-pymn3sR-SdzZUZQRTFLdTe47WM6-imWDZtcEq3XkhQ75X3rfcCADsN0hR-0qqj9J84KRRT8SEjFkT96QwdRs3HZZuaa3Pgddcz8nl9zDn1vBXVDiCbMLYmpl90D-wwOUiREbdLpderBjtFA-Ybj8_i7tWbQI0YTou1CG_KTsUTrxTGNjCCBDpzDxE-_ED-DGXfYRZRNv0hitOH2Gwbh2JtXV89fGSF6HafX6TVazEoLpi0vvDP0LtBxm8R-I8c65yKipVQ"
   }
}'

Response Body Verify OTP - Payment

FieldTypeMandatoryLengthDescription
responseCodeStringM7Response Code
responseMessageStringM150Response Description
originalReferenceNoStringM64Transaction identifier on iFortepay system
originalPartnerReferenceNoStringO64Transaction identifier on consumer system
additionalInfoObjectOAdditional Information
additionalInfo.amountString (ISO4217)M16,2Net amount of the transaction. If it's IDR then value includes 2 decimal digits. e.g. IDR 10.000,- will be placed with 10000.00
additionalInfo.currencyStringM3Currency
additionalInfo.remarksStringO64Transaction Description

Sample response:

json
{
  "additionalInfo": {
    "amount": "20000.00",
    "currency": "IDR",
    "remarks": "Testing Remarks"
  },
  "originalPartnerReferenceNo": "QA-20240710-014",
  "originalReferenceNo": "01909bac04617cb9812afb9ee343a180",
  "responseCode": "2000400",
  "responseMessage": "Successful"
}

iFortepay API Documentation