> For the complete documentation index, see [llms.txt](https://docs.vpay.africa/woocommerce-plugin-specification/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vpay.africa/woocommerce-plugin-specification/1.-get-started-account-setup.md).

# 1. Get Started - Account Setup

This section specifies how to setup the VPay live and sandbox accounts.

**A.** Register your live merchant account at <https://www.vpay.africa> and then sign in. Your live account will be used to receive real payments once you are done with the integration.

**B.** To create a sandbox environment, visit your Settings menu, select the API tab and first "Enable Web Payments" on your account then click on the “Create A Developer Sandbox“ button. Thereafter, you may access your sandbox dashboard, copy your public/private keys and setup your web hook by signing into <https://sandbox.vpay.africa> (sign in with the same login credentials from the registration in #1A above).

**C.** After sign in to live or sandbox account, copy out your public key from the Settings -> API page. Use your public key for front-end communications. The private key is to be used when you are validating back-end API (web hook) payloads.

{% hint style="info" %}
Remember, your sandbox public/private keys are different from your live account keys.
{% endhint %}

**D.** Provide a web hook endpoint URL in your Settings page if you would like to be notified of customer transaction status when a success or failure occurs. Your web hook is expected to return a response with http status code 200 once the transaction data payload is received. The success JSON payload is sent to the web hook in the format below:

```json
{
    reference: "efc2-g2dd-fvvb"
    amount: 100,
    account_number: "4600577949",
    originator_account_name: "Emeka Ajibade",
    timestamp: "2021-06-30T23:48:49.197+00:00"
}
```

{% hint style="info" %}
Failure notifications are ONLY sent for card transactions using the same payload format above.
{% endhint %}
