Skip to main content

Deeplink Binding

This Deeplink is used to redirect user’s to DANA App in order to initiate account binding process, allowing them to register or login directly within the DANA App

Deeplink Path
bindSnap
Action
Open DANA App and show agreement page
URL Schema - Prod
https://link.dana.id/bindSnap
URL Schema - Test
https://bw93.test-app.link/bindSnap

partnerId
string
1 - 64 charactersRequired
Unique identifier for partner was generated by DANA, or known as clientId
timestamp
string
25 charactersRequired
Transaction date time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
externalId
string
1 - 64 charactersRequired
Information of partner identifier, uniquer per binding request
channelId
string
1 - 64 charactersRequired
Information of channel identifier
merchantId
string
1 - 64 characters
Merchant identifier that is unique per each merchant
subMerchantId
string
1 - 32 characters
Sub merchant identifier, known as externalDivisionId must be registered in the DANA system before use. To register a new externalDivisionId, use the Create Division API
seamlessData
string
1 - 512 characters
Allows merchants to provide user's phone number during binding, eliminating manual entry. See sample below for seamlessData format
How to include seamlessData
seamlessData = URLEncode({"mobileNumber":"62822999999","bizScenario":"PAYMENT","verifiedTime":"2020-12-23T07:44:11+07:00","externalUid":"7381273821udasudy712368213","deviceId":"637216gygd76712313"})
seamlessData.bizScenario
string
1 - 64 characters
User's bizScenario
seamlessData.mobileNumber
string
1 - 18 characters
User's phone number. If this field is filled in, the user must log in with the number that has been included
seamlessData.verifiedTime
string
25 characters
Value which states that the mobile number that has been included in seamlessData has verified ownership and does not require OTP verification by the provider, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
seamlessData.externalUid
string
1 - 32 characters
User identifier on partner application
seamlessData.deviceId
string
1 - 32 characters
User's device identifier
seamlessSign
string
1 - 512 charactersConditional
Please refer sample below to know how to include seamlessSign. The steps to generate seamlessSign are:
  1. The partner uses the private key to sign seamlessData, while the provider will use the partner's public key for the verification process
  2. Sign the seamlessData with generated privateKey and algorithm SHA256withRSA
  3. EncodeBase64 the result of seamlessData which already signed by private key (Second Step)
  4. URLEncode the result of base64 encoded string (Third Step)
Conditional Info
Y:= seamlessData is filled
How to include seamlessSign
seamlessSign = URLEncode(Base64.encode(sign(seamlessData,privateKey)))
scopes
array of string
1 - 256 charactersRequired
The scopes of the authorization, refer to OAuthScopeEnum
DEFAULT_BASIC_PROFILE
string
Query user's maksed identifier
AGREEMENT_PAY
string
Agreement pay authentication can be shared, complete agreement pay with accessToken
QUERY_BALANCE
string
Allow user to see the user’s balance by using Balance Inquiry API
CASHIER
string
Allow user to complete payment in cashier pages
MINI_DANA
string
Allows users to access the Mini DANA home page, which displays user name, masked identifier (mobile number), current balance, and options for top-up and transaction viewing, along with various banners. This requires APIs such as Apply OTT, Account Unbinding, and Transaction History
PUBLIC_ID
string
Get user’s publicUserId in the Apply Token API response. The publicUserId is an unique id for one user and one merchant
redirectUrl
string
1 - 256 charactersRequired
After successful authorization, users will be redirected to this URL
state
string
1 - 32 charactersRequired
Random string for CSRF protection purposes
lang
string
2 characters
Service language code. ISO 639-1
allowRegistration
string
1 - 5 characters
If value equals true, provider may enable registration process during binding. Default true
https://link.dana.id/bindSnap?state=9caefc07-78ad-41b3-9183-f32fdc444d67&partnerId=2020071430921399352818&terminalType=WEB&scopes=DEFAULT_BASIC_PROFILE%2CAGREEMENT_PAY%2CQUERY_BALANCE%2CMINI_DANA%2CCASHIER&requestId=ca446f70&redirectUrl=https%3A%2F%2Fpay-blipay.test.com%2Fcallback%2Fdana&seamlessData={"externalUid"%3A"msyahroyni%40gmail.com"%2C"mobile"%3A"082175187417"%2C"reqTime"%3A"2024-06-11T16%3A47%3A23%2B07%3A00"%2C"verifiedTime"%3A"0"%2C"reqMsgId"%3A"5717fea2"}&seamlessSign=yUwMwuLWNyO0IA%2FQVCrFFP%2BYjAnlW%2FJJmMBIz75a3Qy7TMziVIcePQzPLdIlpAktJNr7a54urrCLcb%2BEwRxMQtFqc60%2BDUWlDOtbnQ85G4RofGsUSYCIfrMioaV%2FK05rHZUWg469X4AShvZ9zVsY0uax294OiaBBFCx8jRQu0%2BJ4qkoXo4blo7JDcrdc%2BNE08r2IiB%2B90WTQ7qX5BaIlTbtth3qLrJQEBYonfgXEU9Fllf1XRM3B5J2mSFrG%2FiBnAXsBU6ya4m77W5JGAbzeQDRwkc6wNksnP18iHDnnUynKTUDa8DDIdbSf2iAwjswghJtQdq1YiooJ1uPD9ZNxrA%3D%3D

state
string
1 - 32 charactersRequired
Random string for CSRF protection purposes
authCode
string
1 - 256 charactersRequired
An authorization code which the caller can use to obtain an access token
https://www.merchant.com/oauth/callback?authCode=xxx&state=2345555