> This page is for Cash App Pay Partner API.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.cash.app/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.cash.app/_mcp/server.

# Retrieve merchant

GET https://api.cash.app/network/v1/merchants/{merchant_id}

Returns a merchant matching the given `merchant_id`.

**This endpoint is not rate limited.**

Scopes: `MERCHANTS_READ`

Reference: https://developers.cash.app/cash-app-pay-partner-api/api-reference/network-api/retrieve-merchant

## Servers

- `https://api.cash.app/network/v1` (Production, default)
- `https://sandbox.api.cash.app/network/v1` (Sandbox)

## Request

### Path parameters

- `merchant_id` (string, required) — ID of the merchant.

## Response

### 200

OK

- `merchant` (Merchant, required) — A merchant represents a depository account when processing payments from Cash App customers. Merchants do not have direct access to Cash App, so processed payments are stored in this account until they are ready for settlement.

## Errors

### 404 Retrieve Merchant Request Not Found Error

Not Found

- `errors` (list of Error, required) — A list of errors that occurred while processing the request. Min number of items: `1`

## Types

### Merchant

A merchant represents a depository account when processing payments from Cash App customers. Merchants do not have direct access to Cash App, so processed payments are stored in this account until they are ready for settlement.

- `id` (string, required) — A unique identifier for the merchant issued by Cash App. Min length: `1` Max length: `128`
- `brand_id` (string, required) — ID of the brand associated with this merchant. Min length: `1` Max length: `128`
- `name` (string, required) — The name of the individual or business entity associated with the merchant. Min length: `1` Max length: `1024`
- `country` (enum, required) — Indicates the country associated with an entity. Values are from the [ISO-3166 Alpha-2](https://www.iso.org/iso-3166-country-codes.html) specification. Current values: - `US`: United States of America
  - Allowed values: `US`
- `currency` (enum, required) — Indicates the country associated with an entity. Values are from the [ISO-4217 Alpha-3](https://www.iso.org/iso-4217-currency-codes.html) specification. Current values: - `USD`: United States Dollar
  - Allowed values: `USD`
- `category` (string, required) — The merchant category code associated with the entity. Values are from the [ISO-18245 specification](https://www.iso.org/standard/33365.html).
- `reference_id` (string, required) — A user-defined identifier for this merchant, typically used to associate the merchant with a record in an external system. Independent from the [brand reference_id](https://developers.cash.app/docs/api/network-api/operations/create-a-brand#request-body). Min length: `1` Max length: `1024`
- `status` (enum, required) — Whether or not this merchant can be used to accept payments or issue refunds. * `ACTIVE`: The merchant can accept payments or issue refunds. * `RISK_DISABLED`: Cash App Pay blocked this merchant due to them being high risk. There is no way to re-enable them programmaticaly. * `COMPLIANCE_DISABLED`: Cash App Pay blocked this merchant due to them not following the terms of service, Program Rules, or local laws. There is no way to re-enable them programmaticaly. * `CLIENT_DISABLED`: The client called the [UpdateMerchant](Network-API.v1.yaml/paths/~1merchants~1\{merchant_id}/patch) endpoint and disabled this merchant, preventing it from being able to handle payments or refunds. To reverse this, call the endpoint again with the status field set to `ACTIVE`. * `PENDING`: The merchant is not ready to accept payments or refunds yet; the registration process is still running.
  - Allowed values: `ACTIVE`, `RISK_DISABLED`, `COMPLIANCE_DISABLED`, `CLIENT_DISABLED`, `PENDING`
- `created_at` (datetime, required) — When this merchant was created, in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC).
- `updated_at` (datetime, required) — When this merchant was last updated, in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC).
- `address` (Address, required) — Where this entity is located
- `site_url` (string, optional) — The URL of the website, if this merchant is for an eCommerce site. Min length: `8` Max length: `8000`
- `metadata` (map from string to string, optional) — Freeform key-value pairs of arbitrary data associated with this resource. Keys and values must be passed as strings and not contain any personally identifiable information (PII). Min keys: `0` Max keys: `50` > Note: Nested keys are not supported.
- `default_fee_plans` (MerchantFeePlans, optional) — Merchant fee plans contains the IDs of the different fee plans for a merchant. These IDs represent the processing fees that merchants will be charged for processing payments for each channel. You can use the Fee Plans API to get all the fee information for each fee plan.

### Error

Represents an error encountered during a request to the API.

- `category` (enum, required) — The high-level reason the error occurred.
  - Allowed values: `API_ERROR`, `AUTHENTICATION_ERROR`, `BRAND_ERROR`, `DISPUTE_ERROR`, `MERCHANT_ERROR`, `INVALID_REQUEST_ERROR`, `PAYMENT_PROCESSING_ERROR`, `RATE_LIMIT_ERROR`, `WEBHOOK_ERROR`, `API_KEY_ERROR`, `GRANT_ERROR`
- `code` (string, required) — A unique identifier for the specific type of error that occurred. For more information, see [Error Code Reference](/cash-app-pay-partner-api/guides/technical-guides/api-fundamentals/errors/error-code-reference). Min length: `1`
- `detail` (string, optional) — Human-readable description of why the error occurred and how to resolve it. Min length: `1`
- `field` (string, optional) — The field in the request that caused the error, using array and object dot notation. Min length: `1`

### Address

Where this entity is located

- `country` (enum, required) — Indicates the country associated with an entity. Values are from the [ISO-3166 Alpha-2](https://www.iso.org/iso-3166-country-codes.html) specification. Current values: - `US`: United States of America
  - Allowed values: `US`
- `address_line_1` (string, optional) — First line of the street address, typically including street number, street name, and / or building name. Min length: `1` Max length: `1024`
- `address_line_2` (string, optional) — Second line of the address, if any. Min length: `1` Max length: `1024`
- `locality` (string, optional) — City or township where the entity is located. Min length: `1` Max length: `1024`
- `postal_code` (string, optional) — ZIP or postal code. Min length: `1` Max length: `128`
- `administrative_district_level_1` (string, optional) — State or province. Min length: `1` Max length: `1024`

### MerchantFeePlans

Merchant fee plans contains the IDs of the different fee plans for a merchant. These IDs represent the processing fees that merchants will be charged for processing payments for each channel. You can use the Fee Plans API to get all the fee information for each fee plan.

- `in_app_fee_plan_id` (string, optional) — The fee plan ID identifying the fee plan that will be used for all in-app payments.
- `in_person_fee_plan_id` (string, optional) — The fee plan ID identifying the fee plan that will be used for all in-person payments.
- `online_fee_plan_id` (string, optional) — The fee plan ID identifying the fee plan that will be used for all online payments.

## Examples

**Response**

```json
{
  "merchant": {
    "id": "MMI_4vxs5egfk7hmta3qx2h6rp91x",
    "brand_id": "BRAND_8ereg0tug2yiik8vx24xpe5br",
    "name": "Example Business Name",
    "country": "US",
    "currency": "USD",
    "category": "5432",
    "reference_id": "external-id",
    "status": "ACTIVE",
    "created_at": "2022-01-01T12:00:00Z",
    "updated_at": "2022-01-05T12:00:00Z",
    "address": {
      "country": "US",
      "address_line_1": "1215 4th Ave",
      "address_line_2": "Suite 2300",
      "locality": "Seattle",
      "postal_code": "98161-1001",
      "administrative_district_level_1": "Washington"
    },
    "site_url": "http://example.com",
    "metadata": {
      "key": "value"
    },
    "default_fee_plans": {
      "in_app_fee_plan_id": "FEE_kewjsmjt35t8qhzyjeqcst5me",
      "in_person_fee_plan_id": "FEE_kewjsmjt35t8qhzyjeqcst5me",
      "online_fee_plan_id": "FEE_kewjsmjt35t8qhzyjeqcst5me"
    }
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.cash.app/network/v1/merchants/MMI_4vxs5egfk7hmta3qx2h6rp91x"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.cash.app/network/v1/merchants/MMI_4vxs5egfk7hmta3qx2h6rp91x';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.cash.app/network/v1/merchants/MMI_4vxs5egfk7hmta3qx2h6rp91x"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.cash.app/network/v1/merchants/MMI_4vxs5egfk7hmta3qx2h6rp91x")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.cash.app/network/v1/merchants/MMI_4vxs5egfk7hmta3qx2h6rp91x")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.cash.app/network/v1/merchants/MMI_4vxs5egfk7hmta3qx2h6rp91x');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.cash.app/network/v1/merchants/MMI_4vxs5egfk7hmta3qx2h6rp91x");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.cash.app/network/v1/merchants/MMI_4vxs5egfk7hmta3qx2h6rp91x")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```