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
This API is used for the following solution:
Seamlessly integrate DANA payments into merchant's platform, allowing customers to link their DANA accounts for faster, smoother transactions across all merchant's services.
partnerId
string
1 - 64 charactersRequiredUnique identifier for partner was generated by DANA, or known as clientId
timestamp
string
25 charactersRequiredTransaction date time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
externalId
string
1 - 64 charactersRequiredInformation of partner identifier, uniquer per binding request
channelId
string
1 - 64 charactersRequiredInformation of channel identifier
merchantId
string
1 - 64 charactersMerchant identifier that is unique per each merchant
subMerchantId
string
1 - 32 charactersSub 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 charactersAllows 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 charactersUser's bizScenario
seamlessData.mobileNumber
string
1 - 18 charactersUser'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 charactersValue 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 charactersUser identifier on partner application
seamlessData.deviceId
string
1 - 32 charactersUser's device identifier
seamlessSign
string
1 - 512 charactersConditionalPlease refer sample below to know how to include seamlessSign. The steps to generate seamlessSign are:
- The partner uses the private key to sign seamlessData, while the provider will use the partner's public key for the verification process
- Sign the seamlessData with generated privateKey and algorithm SHA256withRSA
- EncodeBase64 the result of seamlessData which already signed by private key (Second Step)
- 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 charactersRequiredThe 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
APICASHIER
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 merchantredirectUrl
string
1 - 256 charactersRequiredAfter successful authorization, users will be redirected to this URL
state
string
1 - 32 charactersRequiredRandom string for CSRF protection purposes
lang
string
2 charactersService language code. ISO 639-1
allowRegistration
string
1 - 5 charactersIf 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 charactersRequiredRandom string for CSRF protection purposes
authCode
string
1 - 256 charactersRequiredAn authorization code which the caller can use to obtain an access token
https://www.merchant.com/oauth/callback?authCode=xxx&state=2345555