---
title: "Provision smart account"
method: POST
path: "/v1/customers/{id}/provision"
tags: ["Customers"]
---

# Provision smart account

`POST /v1/customers/{id}/provision`

Deploy an ERC-4337 smart account for a customer and deposit USDC into the BillingModule.

On testnet (Base Sepolia), this automatically mints and deposits test USDC.
On mainnet, the customer must deposit USDC separately after deployment.

The smart account is owned by the billing authority for server-side management.
Requires a secret key (`sk_*`).

## Path parameters

- `id` string, required

## Request body

- object
  - `deposit_amount_usdc` string — USDC amount to deposit into BillingModule (testnet only, default: "100")

## Response `200`

Smart account provisioned

- object — Smart account provisioned
  - `smart_account_address` string
  - `already_deployed` boolean
  - `deploy_tx_hash` string, nullable
  - `fund_tx_hash` string, nullable
  - `billing_deposit_tx_hash` string, nullable
  - `billing_balance_usdc` string
  - `funding_required` boolean — True when the customer must fund their account via checkout (mainnet)

## Other responses

- `400` — Invalid request
- `404` — Customer not found

---

[API](https://skmtc.net/usedrip/apis/drip-api.md) · [All operations](https://skmtc.net/usedrip/apis/drip-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/usedrip/drip-api/versions/2cb1567969ca/schema)
