# Upgrade Account Widget

This service will redirect customer to a widget to make an upgrade from Basic account to Premium account, enabling access to all Linkage features.

### Technical Specification <a href="#technical-specification" id="technical-specification"></a>

<table><thead><tr><th width="204.33334350585938">Environment</th><th width="127">Method</th><th width="303.6666259765625">URL</th><th width="106.66668701171875">Version</th></tr></thead><tbody><tr><td>Development</td><td>POST</td><td><a href="https://snapstag.finnet.co.id/api/v1.1/upgrade-account-widget">https://snapstag.finnet.co.id/api/v1.0/upgrade-account-widget</a> </td><td>V 1.0</td></tr><tr><td>Production</td><td>POST</td><td><a href="https://snapstag.finnet.co.id/api/v1.1/upgrade-account-widget">https://snap.finnet.co.id/api/v1.0/upgrade-account-widget</a></td><td>V 1.0</td></tr></tbody></table>

### Body Request <a href="#body-request" id="body-request"></a>

<table><thead><tr><th width="70.33332824707031" data-type="number">No</th><th width="149.66665649414062">Name</th><th width="109.66668701171875">Type</th><th width="110.16668701171875" valign="middle">Mandatory</th><th width="110" valign="middle">Min Length</th><th width="110.33331298828125" valign="middle">Min Length</th><th width="170.49993896484375">Description</th><th data-hidden>No</th></tr></thead><tbody><tr><td>1</td><td>partnerReferenceNo</td><td>String</td><td valign="middle">M</td><td valign="middle">10</td><td valign="middle">64</td><td>Partner-side unique transaction reference number.</td><td>1</td></tr><tr><td>2</td><td>phoneNo</td><td>String</td><td valign="middle">M</td><td valign="middle">10</td><td valign="middle">15</td><td>Valid phone format <code>62xx</code>, <code>08xx</code></td><td>2</td></tr><tr><td>3</td><td>merchantId</td><td>String</td><td valign="middle">M</td><td valign="middle"></td><td valign="middle">128</td><td>Partner merchant ID (provided by Finnet).</td><td>3</td></tr><tr><td>4</td><td>merchantPass</td><td>String</td><td valign="middle">M</td><td valign="middle">-</td><td valign="middle"></td><td><p>Merchant password (provided by Finnet).</p><p></p><p>The data must be AES-128 encrypted.</p><ul><li>Sample: 123456</li><li>Secret key: 1234567890123456</li><li>IV value: 1234567890123456</li><li>Encrypt result: 1jdzWuniG6UMtoa3T6uNLA==</li></ul></td><td>4</td></tr><tr><td>5</td><td>redirectFinalUrl</td><td>String</td><td valign="middle">O</td><td valign="middle">-</td><td valign="middle"></td><td>URL to redirect the Back button to the merchant page.</td><td>5</td></tr><tr><td>6</td><td>images</td><td>Object</td><td valign="middle">O</td><td valign="middle">-</td><td valign="middle"></td><td>Container object for placeholder images.</td><td>6</td></tr><tr><td>7</td><td>images.ktp</td><td>Object</td><td valign="middle">C</td><td valign="middle">-</td><td valign="middle"></td><td>Container object for the KTP placeholder image.</td><td>7</td></tr><tr><td>8</td><td>images.ktp.base64</td><td>String</td><td valign="middle">C</td><td valign="middle"></td><td valign="middle"></td><td>Base64 string of the user's e-KTP photo. Used as a prefilled image in the widget. Prefix data:image/...</td><td>8</td></tr><tr><td>9</td><td>images.ktp.isEditable</td><td>Boolean</td><td valign="middle">C</td><td valign="middle"></td><td valign="middle"></td><td><p>Valid values: [<code>true</code> , <code>false]</code><br><br>Widget config:</p><p>• true: user can change/re-take the KTP photo.</p><p>• false: user must use the provided photo (read-only).</p></td><td>9</td></tr><tr><td>10</td><td>images.selfie</td><td>Object</td><td valign="middle">C</td><td valign="middle">-</td><td valign="middle"></td><td>Container object for the selfie placeholder image.</td><td>10</td></tr><tr><td>11</td><td>images.selfie.base64</td><td>String</td><td valign="middle">C</td><td valign="middle"></td><td valign="middle"></td><td>Base64 string of the selfie photo with KTP.</td><td>11</td></tr><tr><td>12</td><td>images.selfie.isEditable</td><td>Boolean</td><td valign="middle">C</td><td valign="middle"></td><td valign="middle"></td><td><p>Valid values: [<code>true</code> , <code>false]</code></p><p><br>Widget config:</p><p>• true: user can change/re-take the selfie photo.</p><p>• false: user must use the provided selfie photo.</p></td><td>12</td></tr><tr><td>13</td><td>personalData</td><td>Object</td><td valign="middle">O</td><td valign="middle">-</td><td valign="middle"></td><td>Container object for additional identity data (Dukcapil).</td><td>13</td></tr><tr><td>14</td><td>personalData.kkNumber</td><td>String</td><td valign="middle">C</td><td valign="middle"></td><td valign="middle">16</td><td><p>User's Family Card (KK) number as per Dukcapil data.<br></p><p>The data must be AES-128 encrypted.</p><ul><li>Sample: 123456</li><li>Secret key: 1234567890123456</li><li>IV value: 1234567890123456</li><li>Encrypt result: 1jdzWuniG6UMtoa3T6uNLA==</li></ul></td><td>14</td></tr><tr><td>15</td><td>personalData.biologicalMotherName</td><td>String</td><td valign="middle">C</td><td valign="middle"></td><td valign="middle"></td><td><p>Mother's maiden name for population data verification. <br></p><p>The data must be AES-128 encrypted.</p><ul><li>Sample: 123456</li><li>Secret key: 1234567890123456</li><li>IV value: 1234567890123456</li><li>Encrypt result: 1jdzWuniG6UMtoa3T6uNLA==</li></ul></td><td>15</td></tr><tr><td>16</td><td>personalData.nationality</td><td>String</td><td valign="middle">C</td><td valign="middle"></td><td valign="middle"></td><td><p>Valid values: [<code>WNI,</code> <code>WNA]</code></p><p>Nationality country code.</p></td><td>16</td></tr><tr><td>17</td><td>personalData.email</td><td>String</td><td valign="middle">C</td><td valign="middle"></td><td valign="middle"></td><td>User's active email address for account notifications.</td><td>17</td></tr></tbody></table>

#### Sample Request <a href="#sample-request" id="sample-request"></a>

```
{
  "partnerReferenceNo": "202411011441000012",
  "phoneNo": "6281295288912",
  "merchantId": "AGREE170724",
  "merchantPass": "Z0gKf5KKPvvrPpe2BjtBJw==",
  "images": {
    "ktp": {
      "base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...",
      "isEditable": false
    },
    "selfie": {
      "base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...",
      "isEditable": true
    }
  },
  "personalData": {
    "kkNumber": "1jdzWuniG6UMtoa3T6uNLA==",
    "biologicalMotherName": "1jdzWuniG6UMtoa3T6uNLA==",
    "nationality": "ID",
    "email": "budi.santoso@email.com"
  }
}
```

### Body Response <a href="#body-response" id="body-response"></a>

<table><thead><tr><th width="69.83332824707031">No</th><th width="149.66668701171875">Name</th><th width="109.66665649414062">Type</th><th width="110">Mandatory</th><th width="110">Min Length</th><th width="110.1666259765625">Max Length</th><th width="169.6666259765625">Description</th></tr></thead><tbody><tr><td>1</td><td>responseCode</td><td>Enum</td><td>M</td><td></td><td></td><td>Response Code</td></tr><tr><td>2</td><td>responseMessage</td><td>String</td><td>M</td><td></td><td></td><td>Response Message.</td></tr><tr><td>3</td><td>widgetUrl</td><td>String</td><td>M</td><td></td><td></td><td>URL Widget for Upgrade Account</td></tr><tr><td>4</td><td>expiryTime</td><td>String</td><td>M</td><td></td><td></td><td>Expiry time for the widget</td></tr></tbody></table>

#### Sample Response <a href="#sample-response" id="sample-response"></a>

```
{
  "responseCode": "2000000",
  "responseMessage": "Request has been processed successfully",
  "widgetUrl": "https://demos.finnet.co.id/mob-dev/widget/prem?phone=6281295288912&uuid=04667364-ef55-46c6-9006-8c99388e4cdd",
  "expiryTime": "2024-11-01 14:01:10"
}
```

### Response Code List

<table><thead><tr><th width="69.66667175292969">No</th><th width="149.83331298828125">HTTP Code</th><th width="150.16668701171875">SVC Code</th><th width="149.83331298828125">RC Code</th><th>RC Desc</th></tr></thead><tbody><tr><td>1</td><td>202</td><td>00</td><td>00</td><td>KYC Still on process</td></tr><tr><td>2</td><td>200</td><td>00</td><td>01</td><td>KYC Rejected</td></tr><tr><td>3</td><td>200</td><td>00</td><td>02</td><td>KYC Approved</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.finpay.id/api-reference/finpay-money/linkage/upgrade-account/upgrade-account-widget.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
