Skip to content

Payment SNAP

Endpoint to initiate payment (with or without OTP) using a registered Direct Debit Card.

NameAPI Direct Debit Payment
Service Code54
Path/v1.0/debit/payment-host-to-host
Version1.0
HTTP MethodPOST
Type FormatJSON

Request Body E-Wallet and Direct Debit

Details
FieldTypeMandatoryLengthDescription
partnerReferenceNoStringM64Transaction identifier on service consumer system
bankCardTokenStringC560Token for Payment. Only Mandatory For Direct Debit BRI. For E-Wallet such as DANA, OVO, LinkAja this is not necessary.
chargeTokenStringC50string code for verification OTP. Fill with "null". For E-Wallet such as DANA, OVO, LinkAja this is not necessary.
amountObjectM
amount.valueString (ISO4217)M16,2Net amount of the transaction. If it's IDR then the value includes 2 decimal digits. e.g. IDR 10.000,- will be placed with 10000.00. Amount refers to amount validation
amount.currencyStringM3Currency. Possible value: IDR
urlParamsArray of ObjectO
urlParams.urlstringM512The URL
urlParams.typestringM32URL Type. Possible value: PAY_NOTIFY / PAY_RETURN. PAY_NOTIFY for notification url (Required), PAY_RETURN for return url (Conditional (Required for DANA only)).
urlParams.isDeeplinkstringM1Whether the URL is a deep link URL or not. Possible value: N
pointOfInitiationStringO20used for getting more info regarding the source of request of the user. Possible value: - Mobile App - Web App - Others
payOptionDetailsArray of ObjectOPayment option that will be used for this payment. Applicable only to BRI Direct Debit
payOptionDetails.payMethodStringC64Payment Method. Possible value: DEBIT_CARD, Required for BRI only
payOptionDetails.payOptionStringC64Payment option which shows the provider of this payment. Possible value: BRI.
Required for BRI only
additionalInfoObjectOAdditional information
additionalInfo.isWithOtpStringC5With OTP or Without OTP. Possible value: - Y: With OTP - N: Without OTP.
Required for BRI only
additionalInfo.remarksStringO64Transaction description
additionalInfo.billDetailsArray of ObjectO
billDetails.billNameStringO20Bill Name
billDetails.billEmailStringO50Bill Email
billDetails.billPhoneNumerStringO30Bill Phone Number
additionalInfo.accountDetailsObjectCApplicable only to E-Wallet transactions such as DANA, OVO, LinkAja
additionalInfo.accountDetails.idStringC50Payer's phone number, email user. Only required for OVO.
additionalInfo.accountDetails.idTypeStringCenumPHONE, EMAIL, CASHTAG
additionalInfo.itemDetailsArray of ObjectsOExplain the items purchased
Applicable only to E-Wallet transactions such as DANA, OVO, LinkAja
additionalInfo.itemDetails.itemIdStringM25ID of product. Mandatory if item details is filled
additionalInfo.itemDetails.nameStringM100Name of product. Mandatory if item details is filled
additionalInfo.itemDetails.amountObjectM
additionalInfo.itemDetails.amount.valueStringM16,2Price per unit. Mandatory if item details is filled. Accumulation amount should be match with original amount.
additionalInfo.itemDetails.amount.currencyStringM3Mandatory if item details is filled
additionalInfo.itemDetails.qtyIntegerM8Number of product units. Mandatory if item details is filled. Maximum 99999999
additionalInfo.itemDetails.descriptionStringO255Description of product
additionalInfo.paymentCategoryStringO50Category of payment

Example Request E-Wallet (DANA)

Details
sh
POST .../v1.0/debit/payment-host-to-host HTTP/1.2
Content-type: application/json
X-TIMESTAMP: 2020-12-23T07:44:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
CHANNEL-ID: 95221

{
    "partnerReferenceNo": "2020102900000000000001",
    "amount": {
        "value": "12345678.00",
        "currency": "IDR"
    },
    "urlParams": [
        {
            "url": "https://test1.bi.go.id/v1/test",
            "type": "PAY_NOTIFY",
            "isDeeplink": "N"
        },
        {
            "url": "https://test2.bi.go.id/v1/test",
            "type": "PAY_RETURN",
            "isDeeplink": "N"
        }
    ],
    "validUpTo": "2020-12-23T07:44:11+07:00",
    "pointOfInitiation": "Web App",
    "additionalInfo": {
        "remarks": "Dress Wanita Pink",
        "accountDetails": {
            "id": "08888999999",
            "idType": "PHONE",
        },
        "billDetails": {
            "billName": "John Doe",
            "billEmail": "[email protected]",
            "billPhoneNumber": "08888999999"
        },
        "itemDetails": [{
            "itemId": "F001",
            "name": "Dress",
            "amount": {
                "value": "12345678.00",
                "currency": "IDR"
            },
            "qty": 1,
            "description": "Dress Wanita Pink"
        }],
		"paymentCategory" : "Dress"
    }
}

Example Request with OTP (Direct Debit BRI)

Details
sh
curl --location 'https://api-stage.ifortepay.id/v1.0/debit/payment-host-to-host' \
--header 'X-TIMESTAMP: 2020-12-18T10:55:00+07:00' \
--header 'X-SIGNATURE: ZF9tnd42ngwP6eStSRY4dBQdGrzrq/ucryeRwOROdJ4o1L99w3baE47niPa+q9X2AzMbKNiTvMNxBYJ48lp1x4rXLGUTJ7K3su7tKXjUndAn9KGSjZFmvFxrZFllQv9mEh0BGYvLo9B+Z9mbAcHztCRJuU0VgIYWrAAD3VaefSSaP/LLdN0yLuGDJiDPeOr8gqEiQh8SDOnEhGo8a4URmwqQLr2nyqXQR+HcYAmyonXhCh/JJ/NQamYpuzrTUrmXw6PpHiQBpsAMEPqwRDaENJ0c0LJeTiNW2SSLwNn9+zE3kPt0w9SAh7a2lxJg/T+cLywGEVnoNExwJLmDcxrDhw==' \
--header 'X-Partner-Id: IFP2024078302' \
--header 'CHANNEL-ID: DD003' \
--header 'X-EXTERNAL-ID: 38258699010458' \
--header 'Content-Type: application/json' \
--data '{
    "partnerReferenceNo": "QA-20240731-005",
    "bankCardToken": "card_.eyJpYXQiOjE3MjE4OTM3NDQsImlzcyI6IkJhbmsgQlJJIC0gRENFIiwianRpIjoiZTcxZTUxNTUtMWRkZS00OWM1LWJiYmQtNjJlMjJmOGJmNzE0IiwicGFydG5lcklkIjoi77-9Iiwic2VydmljZU5hbWUiOiJERF9FWFRFUk5BTF9TRVJWSUNFIn0.TS9Mw1ZvxplurJAsONIbvSqgb3-QnupvvLeNWr_iklRgD_qazjqqIF2qFYZHD9eb1B2II_bKgmtcorrcOSthj4xj1PokCC5RhdKdOMmPW2hNkcyagMLCrmqNPf7QRz12WCCxJk8Z1gA1ey_YS4UQBL4qKhZr9qaXJwlhO_gyiVuQVTYMeqrI4v9Z_ZWXzQI05ySfQD46IzvD1wblewsKJbv5GUwxgGvB5SjVq2-iYkuMeBU1YF51fM6s5PtWrohtcTh3EjLiK_SPKo_To6iHnjg1gSxufnqNrr8_Cgr8d2vXwr_Yk2TaoVKSrnIV9muphaescrMYYJ6V6EPMCQu5jw",
    "chargeToken": "null",
    "additionalInfo": {
        "isWithOtp": "Y",
        "remarks": "Testing Remarks",
        "billDetails": {
              "billName": "Irham Raziqony",
              "billEmail": "[email protected]",
              "billPhoneNumber": "62xxxxxxxxxxxxx"
        }
    },
    "amount": {
        "currency": "IDR",
        "value": "15000.00"
    },
    "pointOfInitiation": "Web app",
    "payOptionDetails": [
        {
            "payOption": "BRI",
            "payMethod": "DEBIT_CARD"
        }
    ],
    "urlParams": [
        {
            "type": "PAY_NOTIFY",
            "isDeepLink": "N",
            "url": "https://google1.com"
        }
    ]
}'

Example Request without OTP (Direct Debit BRI)

Details
sh
curl --location 'https://api-stage.ifortepay.id/v1.0/debit/payment-host-to-host' \
--header 'X-TIMESTAMP: 2020-12-18T10:55:00+07:00' \
--header 'X-SIGNATURE: lIXMYYeKUokauLbrmoBpS4V+HSk9QIKUN0V2jUsuBt/kjPidC+vQ/Ah1kEoCz0+XEuJ3wVucH+cMqRbpvTkkiK5VQfifPXm8Gyaem0WOtEc+j1Yuv600KWThPvnspxykWHxPYJzV/TeH8BywXyqefmo+8R5ehCFZZvKMtF8g2MqqxgiaKHmBjhPp5CgU0sTLSpx7V22E5ZmU+mzW/Pqp8DJO6IN0hSbXLHUwsEWjyhUrTD+1eyQXo8qcxis/VP2YTZUDXQrCMUKa2w6vGY/k78HmHZoPxzPfcBgmxEYCJfOlFoNATOAiDroF4mdYcE5hE8+sz7+qbiZ27ePtvHXDqQ==' \
--header 'X-Partner-Id: IFP2024078302' \
--header 'CHANNEL-ID: DD003' \
--header 'X-EXTERNAL-ID: 16144400187635' \
--header 'Content-Type: application/json' \
--data '{
    "partnerReferenceNo": "QA-20240731-006",
    "bankCardToken": "card_.eyJpYXQiOjE3MjE4OTM3NDQsImlzcyI6IkJhbmsgQlJJIC0gRENFIiwianRpIjoiZTcxZTUxNTUtMWRkZS00OWM1LWJiYmQtNjJlMjJmOGJmNzE0IiwicGFydG5lcklkIjoi77-9Iiwic2VydmljZU5hbWUiOiJERF9FWFRFUk5BTF9TRVJWSUNFIn0.TS9Mw1ZvxplurJAsONIbvSqgb3-QnupvvLeNWr_iklRgD_qazjqqIF2qFYZHD9eb1B2II_bKgmtcorrcOSthj4xj1PokCC5RhdKdOMmPW2hNkcyagMLCrmqNPf7QRz12WCCxJk8Z1gA1ey_YS4UQBL4qKhZr9qaXJwlhO_gyiVuQVTYMeqrI4v9Z_ZWXzQI05ySfQD46IzvD1wblewsKJbv5GUwxgGvB5SjVq2-iYkuMeBU1YF51fM6s5PtWrohtcTh3EjLiK_SPKo_To6iHnjg1gSxufnqNrr8_Cgr8d2vXwr_Yk2TaoVKSrnIV9muphaescrMYYJ6V6EPMCQu5jw",
    "chargeToken": "null",
    "additionalInfo": {
        "isWithOtp": "N",
        "remarks": "Testing Remarks",
        "billDetails": {
              "billName": "Irham Raziqony",
              "billEmail": "[email protected]",
              "billPhoneNumber": "62812912301239"
        }
    },
    "amount": {
        "currency": "IDR",
        "value": "15000.00"
    },
    "pointOfInitiation": "Web app",
    "payOptionDetails": [
        {
            "payOption": "BRI",
            "payMethod": "DEBIT_CARD"
        }
    ],
    "urlParams": [
        {
            "type": "PAY_NOTIFY",
            "isDeepLink": "N",
            "url": "https://google1.com"
        }
    ]
}'

Response Body EWallet (DANA)

Details
ParameterData TypeMandatoryLengthDescription
responseCodeStringM7Response code
responseMessageStringM150Response description
referenceNoStringM64Transaction identifier on service provider system. Must be filled upon successful transaction
partnerReferenceNoStringM64Transaction identifier on service consumer system
appRedirectUrlStringO2048Returns an URL scheme to PJP AIS payment page in native app.
webRedirectUrlStringO2048Returns a universal link to PJP AIS payment page. Recommended if Client is unable to implement check for PJP AIS app.
additionalInfoObjectOAdditional information
additionalInfo.payOptionDetailsArray of ObjectOPayment option that will be used for this payment
additionalInfo.payOptionDetails.payMethodStringM64Payment Method. Possible value: WALLET
additionalInfo.payOptionDetails.payOptionStringM64Provider of this payment. Possible value: OVO, DANA, SHOPEEPAY, LINKAJA, VIRGO
additionalInfo.validUpToStringMThe time when the payment will be automatically expired. ISO 8601
additionalInfo.remarksStringO64Transaction description

Example Response E-Wallet (DANA)

Details
sh
Content-type: application/json
X-TIMESTAMP: 2020-12-23T07:44:16+07:00

{
    "responseCode": "20054000",
    "responseMessage": "Request has been processed successfully",
    "referenceNo": "2020102977770000000009",
    "partnerReferenceNo": "2020102900000000000001",
    "appRedirectUrl": "https://pjsp.com/app?bizNo=REF993883&...",
    "webRedirectUrl": "https://pjsp.com/universal?bizNo=REF993883&...",
    "additionalInfo": {
        "validUpTo": "2020-12-23T07:44:11+07:00",
        "remarks": "Dress Wanita Pink"
    }
}

Response Body with OTP (Direct Debit BRI)

Details
FieldTypeMandatoryLengthDescription
responseCodeStringM7Response code
responseMessageStringM150Response description
referenceNoStringM64Transaction identifier on service provider system. Must be filled upon successful transaction
partnerReferenceNoStringO64Transaction identifier on service consumer system
additionalInfoObjectOAdditional information
additionalInfo.chargeTokenString (ISO4217)M16,2string code for verification OTP
additionalInfo.remarksStringO64Transaction description

Example Response with OTP (Direct Debit BRI)

Details
sh
    "additionalInfo": {
        "chargeToken": "CHARGE_TIW6JE3N2MQAU7IG24G5XO5JBBC7ZKCH::0146",
        "remarks": "Testing Remarks"
    },
    "partnerReferenceNo": "QA-20240731-005",
    "referenceNo": "019106cd49f37da3908224ae6db2e800",
    "responseCode": "2005400",
    "responseMessage": "Successful"
}

Response Body without OTP (Direct Debit BRI)

Details
FieldTypeMandatoryLengthDescription
responseCodeStringM7Response code
responseMessageStringM150Response description
referenceNoStringM64Transaction identifier on service provider system. Must be filled upon successful transaction
partnerReferenceNoStringO64Transaction identifier on service 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 without OTP (Direct Debit BRI)

Details
sh
    "additionalInfo": {
        "amount": "15200.00",
        "currency": "IDR",
        "remarks": "Testing Remarks"
    },
    "partnerReferenceNo": "QA-20240731-006",
    "referenceNo": "019106ed8dc274f389e4fe704a1e3df8",
    "responseCode": "2005400",
    "responseMessage": "Successful"
}

iFortepay API Documentation