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

# Other channels

> Pay with bank and USSD on hosted checkout.

Bank debit and USSD are available when those channels are enabled. Custom pay screens use the access code.

## Pay with bank

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl "https://server.staging.vestrapay.app/v1/payment/checkout/banks?country=NG" \
  -H "x-access-code: ACCESS_CODE"
```

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST https://server.staging.vestrapay.app/v1/payment/checkout/charge/bank-payment \
  -H "x-access-code: ACCESS_CODE" \
  -H "Content-Type: application/json" \
  -d '{ "bankCode": "057" }'
```

`data.status` is `awaiting_bank_authorization` until they approve in their banking app. Confirm with webhook and verify.

## USSD

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST https://server.staging.vestrapay.app/v1/payment/checkout/charge/ussd \
  -H "x-access-code: ACCESS_CODE" \
  -H "Content-Type: application/json" \
  -d '{ "phoneNumber": "08012345678" }'
```

Show `data.ussdCode`. The customer dials it. Confirm with webhook and verify.
