---
title: "Open the payment provider's page for adding a card. The card number is typed there and never reaches the API. The customer comes back to `returnPath` on the website with `setup_session` in the query (and `default=true` when `default` was asked for); send those to `confirm`. With a test key there is no card page and no real card: the returned URL only carries the setup's id in its `session` parameter; finish the setup with `POST /v1/payment-method/test-setup`, then `confirm` it. Needs the permission to manage payment methods. In live mode, 409 `live_unavailable` until live full-service cases are switched on; 503 `payments_unavailable` when online payment is off"
method: POST
path: "/v1/payment-methods/setup"
---

# Open the payment provider's page for adding a card. The card number is typed there and never reaches the API. The customer comes back to \`returnPath\` on the website with \`setup_session\` in the query (and \`default=true\` when \`default\` was asked for); send those to \`confirm\`. With a test key there is no card page and no real card: the returned URL only carries the setup's id in its \`session\` parameter; finish the setup with \`POST /v1/payment-method/test-setup\`, then \`confirm\` it. Needs the permission to manage payment methods. In live mode, 409 \`live_unavailable\` until live full-service cases are switched on; 503 \`payments_unavailable\` when online payment is off

`POST /v1/payment-methods/setup`

## Request

- Base URL: `https://api.evictionsapi.com`
- URL: `https://api.evictionsapi.com/v1/payment-methods/setup`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

## Request body

- object
  - `returnPath` string, required
  - `default` boolean

## Response `200`

The URL to send the customer to.

- object
  - `url` string, uri, required

## Other responses

- `400`: The request is invalid.
- `401`: The credential is missing or invalid.
- `403`: The credential is not allowed to do this (`forbidden`). For a signed-in session: `permission_denied`, the person's role in the organization lacks the permission this needs (ask an owner); `no_organization`, the person belongs to no organization yet (start one with `POST /v1/me/organizations` or accept an invitation).
- `404`: Not found.
- `409`: The request conflicts with the current state: for a case, it is not in a state that allows this, or its details were erased (`erased`); for an API key, a limit or the key in use.
- `422`: The case did not pass a check.

---

[API](https://skmtc.dev/evictionsapi/apis/evictions-api.md) · [All operations](https://skmtc.dev/evictionsapi/apis/evictions-api/llms.txt) · [OpenAPI document](https://skmtc.dev/evictionsapi/apis/evictions-api/revisions/28459213a1a3?raw)
