Appearance
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.
Name | API Verify OTP |
---|---|
Service Code | 04 |
Path | /v1.0/otp-verification |
Version | 1.0 |
HTTP Method | POST |
Type Format | JSON |
Request Body Verify OTP - Card
Field | Type | Mandatory | Length | Description |
---|---|---|---|---|
originalReferenceNo | String | M | 64 | Original Reference Number from API Card Registration |
otp | String | M | 8 | OTP Code / Passcode |
chargeToken | String | M | 40 | OTP String Code that is to be verified with the passcode obtained by the user |
type | String | O | 20 | Action Type. Possible Value: - "OTP_TYPE_CARD" |
additionalInfo | Object | O | Additional 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
Field | Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response Code |
responseMessage | String | M | 150 | Response Description |
originalReferenceNo | String | M | 64 | Transaction identifier on iFortepay system |
originalPartnerReferenceNo | String | O | 64 | Transaction identifier on consumer system |
accountNo | String | O | 11 | Customer's account number |
bankCardToken | String | M | 128 | Card Token for Payment. Card Token have an active period that follows the card's expiration date. |
cardPan | String | O | 16 | Card Number |
String | O | 254 | RFC 3696 | |
expiryDate | String | O | 4 | Card Expiry Date |
phoneNo | String | O | 16 | Customer's Phone Number. Format: 62xxxxxxxxxxxxxxxx |
subscribeDateTime | String | O | 25 | Registration Time |
tokenExpiryTime | String | O | 25 | Time when the token will be expired |
additionalInfo | Object | O | Additional Information | |
additionalInfo.debitCardType | String | O | Debit 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
Field | Type | Mandatory | Length | Description |
---|---|---|---|---|
originalReferenceNo | String | M | 64 | Original Reference Number from API Card Registration |
otp | String | M | 8 | OTP Code / Passcode |
chargeToken | String | M | 40 | OTP String Code that is to be verified with the passcode obtained by the user |
type | String | O | 20 | Action Type. Possible Value: - "OTP_TYPE_PAYMENT" |
additionalInfo | Object | O | Additional Information | |
additionalInfo.bankCardToken | String | C | Bank 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
Field | Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response Code |
responseMessage | String | M | 150 | Response Description |
originalReferenceNo | String | M | 64 | Transaction identifier on iFortepay system |
originalPartnerReferenceNo | String | O | 64 | Transaction identifier on consumer system |
additionalInfo | Object | O | Additional Information | |
additionalInfo.amount | String (ISO4217) | M | 16,2 | Net 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.currency | String | M | 3 | Currency |
additionalInfo.remarks | String | O | 64 | Transaction Description |
Sample response:
json
{
"additionalInfo": {
"amount": "20000.00",
"currency": "IDR",
"remarks": "Testing Remarks"
},
"originalPartnerReferenceNo": "QA-20240710-014",
"originalReferenceNo": "01909bac04617cb9812afb9ee343a180",
"responseCode": "2000400",
"responseMessage": "Successful"
}