# State The Trustap API uses `state` in [creating full Trustap users](/docs/guides/transactions/online/online-create-full-user) and in the [payment screen](/docs/guides/transactions/online/online-int-path#step-5-buyer-transfers-funds). The state parameter in the Trustap API serves two main purposes. 1. It protects against [CSRF](https://auth0.com/blog/prevent-csrf-attacks-in-oauth-2-implementations/). 2. It allows you to pass contextual information like a shopping cart ID or buyer details. ## Payment continuation using `state` The Trustap [payment screen](/docs/guides/transactions/online/online-int-path#step-5-buyer-transfers-funds) supports payment continuation. To reduce additional friction, you can choose to pre-populate your buyer`s details in the payment screen. The Base64 encoded string is passed in the URL that you send your buyer using the `state` parameter. The string is delimited using the colon character `:`. The format of the string is `parameter 1=value 1:parameter 2=value 2:parameter 3=value 3`. ```URL https://actions.stage.trustap.com/online/transactions/25273/guest_pay?redirect_uri=https://www.example.com&state=bmFtZT1EYXZleSBKb25lczpsaW5lMT1NYXJrZXQgU3RyZWV0OmxpbmUyPURvd250b3duOmNpdHk9Qm9zdG9uOnN0YXRlPU1BOnBvc3Rjb2RlPURZMTAgNUZTOmNvdW50cnk9VVM= ``` You can use additional unspecified parameters for your own purposes that will be ignored by payment continuation. For example, `token=678fe24e01dbe4a798eeb85de6a31940:`. ## Supported parameters | Parameter | Description | | --- | --- | | `name` | Buyer's name. Should contain first and surname | | `line1` | Address line 1 (e.g., street, PO Box, or company name) | | `line2` | Address line 2 (e.g., apartment, suite, unit, or building) | | `city` | City, district, suburb, town, or village | | `state` | State, county, province, or region | | `postcode` | ZIP or postal code. | | `country` | Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) | ## Preview payment continuation using `state` Use the following example to test how the payment form looks with pre-filled buyer information. Edit the **State string** to see the sample payment form pre-populated.