> ## Documentation Index
> Fetch the complete documentation index at: https://docs.helloclever.co/llms.txt
> Use this file to discover all available pages before exploring further.

# August 2026

> Thai Baht parameter changes, MWK and TZS methods, Get Balance History V2, failure redirects, PayID metadata, and the new documentation site.

August changes the request and response shape of both Thai Baht methods, adds MWK and TZS to the v2 API and Payment Gateway 3, introduces failure redirects, and ships two new v2 endpoints.

| Category | Changes |
| - | - |
| [Breaking changes](#breaking-changes) | `th_qrpay_thb` and `th_bank_thb` parameters and `pay_code` response |
| [Merchant Portal](#merchant-portal) | New and refreshed portal guides |
| [API](#api) | Get Balance History V2, Resend Contact Verification, MWK and TZS methods, `failure_callback_url`, PayID `metadata`, Simulate Deposit |
| [Reporting](#reporting) | No changes |
| [Payment Gateway](#payment-gateway) | `redirect_url.failure`, MWK and TZS, hosted checkout guide |

<Info>
  This site replaced the previous Hello Clever documentation this month and is now available in Japanese through the language switcher. Legacy pages remain at [legacy-docs.helloclever.co](https://legacy-docs.helloclever.co), and common legacy URLs redirect to their new location.
</Info>

## Breaking changes

### Thai Baht QR Pay Payins (`th_qrpay_thb`)

The `payin_method_params` for `th_qrpay_thb` have been replaced with a new set of mandatory fields.

| Removed | Added (all mandatory) |
| - | - |
| `payer_account_no` | `description`: description for the payment |
| `payer_account_name` | `ip_address`: the customer's IP address |
| `payer_bank_code` | `phone`: the customer's phone number |
| `callback_url` | |

The `pay_code` object in the Payin response has also changed. `payment_url` is no longer returned. Render the QR from `qr_string`, or show the bank details for a manual transfer:

```json pay_code (new) theme={null}
{
  "qr_string": "00020101021238570010A000000727...",
  "bank_information": {
    "bank_name": "Land and Houses Bank",
    "account_number": "902000702986",
    "account_name": "Test Account",
    "description": "TT MMSq",
    "swift_code": "LAHRTHB2"
  }
}
```

**Action required:** update your request builder, and replace any redirect to `pay_code.payment_url` with a QR render of `pay_code.qr_string`.

### Thai Baht bank transfer payouts (`th_bank_thb`)

The `payout_method_params` for `th_bank_thb` now identify the recipient bank by SWIFT code instead of bank code.

| Removed | Added (all mandatory) |
| - | - |
| `bank_code` (for example `KBANK`) | `swift_code` (for example `LAHRTHB2`) |
| | `account_name`: the account holder name |
| | `type`: `WITHDRAW`, `PAYMENT`, or `SALARY` |

`account_number` and `description` are still mandatory. Amount limits are unchanged at 300 to 2,000,000 THB.

**Action required:** map your stored bank codes to SWIFT codes and add `account_name` and `type` to every `th_bank_thb` payout.

Docs: [v2 Payin guide](/api/v2/payin) · [Get Payout Required Fields](/api/payout-methods/get-payout-required-fields)

## Merchant Portal

* New [Analytics](/portal/analytics) and [Customers](/portal/customers) guides.
* [Balances](/portal/balances), [Payins](/portal/payins), and [Payouts](/portal/payouts) rewritten to match the current Merchant Portal UI.

## API

### Get Balance History V2

`GET /v2/balances/history` returns every movement on your balance over a date range: payments, payouts, settlements, refunds, top-ups, withdrawals, disputes, dispute fees, cashback payouts, and transfers in and out.

| Query parameter | Required | Notes |
| - | - | - |
| `from_date`, `to_date` | Yes | `YYYY-MM-DDThh:mm:ssZ`, UTC by default |
| `cursor` | No | `next_cursor` from the previous page. Omit for the first page. |
| `size` | No | Records per page |

Each record carries `id` (Balance ID), `amount` (net), `request_type` (`money_in` or `money_out`), `transaction_type`, `status` (`waiting`, `done`, or `failed`), `reference_id`, and a `balance_detail` breakdown of `outgoing`, `fees`, and `total`. The envelope returns `account_type` (`aggregated` or `dedicated`), `next_cursor`, and `has_more`.

Docs: [Get Balance History V2](/api/balance/get-balance-history-v2)

### Resend Contact Verification

`POST /v2/contacts/resend_verification` re-sends the identity verification link to an existing contact. Use it when the original link expired or was not received.

```json theme={null}
{ "email": "test@example.com", "resend_to": "email" }
```

`resend_to` is `email` or `phone` (SMS to the contact's registered number). The contact must already exist on your account.

Docs: [Resend Contact Verification](/api/contact/resend-contact-verification)

### MWK and TZS payment methods

| Currency | Payins | Payouts |
| - | - | - |
| MWK (Malawian kwacha) | `mw_mobile_money_mwk`, `mw_bank_mwk` | `mw_bank_mwk` |
| TZS (Tanzanian shilling) | `tz_bank_tzs` | `tz_bank_tzs` |

The supported MWK mobile money networks are listed in [Create a Payin](/api/payin/create-a-payin).

Docs: [v2 introduction](/api/v2/introduction) · [Get Payin Methods](/api/payin-methods/get-payin-methods)

### Failure redirects (`failure_callback_url`)

Redirect-based v2 Payin methods, such as `kh_pay_khr` and `us_pay_usd`, accept `failure_callback_url` in `payin_method_params` alongside `callback_url`. The customer is sent there after a failed payment.

```json theme={null}
"payin_method_params": {
  "callback_url": "https://yourwebsite.com/callback",
  "failure_callback_url": "https://yourwebsite.com/failure_callback"
}
```

<Warning>
  For `kh_pay_khr` and `us_pay_usd`, never use query parameters on either redirect to set payment status. Final status comes only from [webhooks](/api/webhooks).
</Warning>

Docs: [Create a Payin](/api/payin/create-a-payin)

### PayID `metadata`

[Create One-Time PayID](/api/aud-payid/create-one-time-payid) (`POST /v1/merchants/create_payment`) accepts an optional `metadata` object of arbitrary key-value pairs, for your own reference data. It is returned on the PayID object in the response and in the status-change callback.

```json theme={null}
"metadata": { "custom_note": "Priority customer" }
```

### Simulate Deposit (sandbox)

`POST /v1/simulate_deposit` credits a simulated inbound bank transfer to a Treasury Account in sandbox, updating its Incoming and Available balances. Required: `account_number`, `amount` (whole yen for JPY). Optional: `remitter_name`, `remitter_bank_name`, `remitter_branch_name`, `remarks`. For JPY, send remitter fields in half-width katakana to match Zengin formatting.

Docs: [Simulate Deposit](/api/v1/simulate-deposit)

### API reference updates

* Sidebar regrouped into v1 (AUD), v2 (Multi-Currency), Card, Cashback, and Reporting.
* [Webhooks](/api/webhooks) aligned with the legacy documentation.

## Reporting

No changes this month.

## Payment Gateway

### Failure redirect on Payment Gateway 3

Payment Gateway 3 now accepts an optional `failure` URL next to `success` in `redirect_url`, used when a payment fails, is declined, or expires. Without it, the customer stays on the Hello Clever checkout page with no route back to your checkout.

The `hc_payment_event` message posted to your page carries `redirect_url.failure` when `page_state` is `failed`:

```js theme={null}
window.location.href = event.data.hc_payment_event.redirect_url.failure;
```

### MWK and TZS on Payment Gateway 3

MWK bank transfer (`mw_bank_mwk`, minimum 2,000 MWK) and TZS bank transfer are available on Payment Gateway 3.

### Hosted checkout guide

The new [Multi-Currency hosted checkout](/platform-overview/customer-guides/multi-currency-checkout) guide shows what customers see on the hosted page for card, bank transfer, QR, and mobile money flows, so you can support them when they get stuck.

Docs: [Payment Gateway 3](/api/v3/introduction)


## Related topics

- [Release Notes](/release-notes/index.md)
- [September 2026](/release-notes/2026-09.md)
- [Settlement Reporting](/api/reporting/settlement.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.