> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.runpayments.io/reference/reporting-boarding/boarding-api/get-merchant/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.runpayments.io/_mcp/server. # Get a single merchant GET https://apps.runpayments.io/ords/relay/api/boarding/v1/merchants/{merchant_id} Retrieve a detailed merchant record from Run Partner. Reference: https://docs.runpayments.io/reference/reporting-boarding/boarding-api/get-merchant ## Authentication - `Authorization` header (bearer token, required) — This API uses OAuth 2.0 for authentication. ## Request ### Path parameters - `merchant_id` (integer, required) — The unique identifier for the merchant ## Response ### 200 Merchant retrieved successfully. - `merchant_id` (integer, required) — Unique identifier for the merchant. - `platform` (string, required) — Processing platform (payroc or fiserv). - `rep_code` (string, required) — Representative code associated with the merchant. - `dba_name` (string, required) — Doing Business As (DBA) name of the merchant. - `merchant_status` (string, required) — Current status of the merchant (e.g., new, sent_for_signature, signed, in_underwriting, boarded, live, cancelled, declined, unknown). - `addresses` (list of Address, required) — List of addresses associated with the merchant. - `fees` (Fees, required) — Fee details for the merchant. - `products` (list of Product, required) — List of products associated with the merchant. - `sales_office_name` (string, optional, nullable) — Name of the sales office associated with the rep code. - `sales_office_id` (integer, optional, nullable) — ID of the sales office associated with the rep code. - `customer_id` (integer, optional, nullable) — Customer ID associated with the merchant. - `legal_name` (string, optional, nullable) — Legal name of the merchant. - `tax_id` (string, optional, nullable) — Tax identification number of the merchant. - `years_in_business` (integer, optional, nullable) — Number of years the business has been operating. - `website` (string, optional, nullable) — Business website URL. - `phone` (string, optional, nullable) — Phone number of the merchant. - `mcc_code` (string, optional, nullable) — Merchant Category Code (MCC). - `business_desc` (string, optional, nullable) — Description of the business. - `annual_volume` (integer, optional, nullable) — Annual transaction volume in dollars. - `average_ticket` (integer, optional, nullable) — Average transaction amount in dollars. - `in_person_pct` (integer, optional, nullable) — Percentage of in-person transactions. - `online_pct` (integer, optional, nullable) — Percentage of online transactions. - `telephone_pct` (integer, optional, nullable) — Percentage of telephone transactions. - `ownership_type` (string, optional, nullable) — Ownership type of the business. - `fee_template_id` (integer, optional, nullable) — ID of the fee template applied to the merchant, if any. - `external_crm_id` (string, optional, nullable) — External CRM system identifier. - `custom_01` (string, optional, nullable) — Custom field for additional merchant data. - `signer_first_name` (string, optional) — First name of the signer. - `signer_last_name` (string, optional) — Last name of the signer. - `signer_dob` (string, optional, nullable) — Date of birth of the signer in the format mm/dd/yyyy. - `signer_res_address1` (string, optional, nullable) — Residential address line 1 of the signer. - `signer_res_address2` (string, optional, nullable) — Residential address line 2 of the signer. - `signer_res_city` (string, optional, nullable) — Residential city of the signer. - `signer_res_state` (string, optional, nullable) — Residential state of the signer (2-character abbreviation). - `signer_res_zip` (string, optional, nullable) — Residential ZIP code of the signer. - `signer_email` (string, optional) — Email address of the signer. - `signer_phone` (string, optional, nullable) — Phone number of the signer. - `signer_ownership_pct` (integer, optional) — Ownership percentage of the signer. - `pricing` (Pricing, optional) — Pricing details for the merchant. ## Errors ### 401 Unauthorized Error Unauthorized. - `error` (string, optional) — Error code. - `error_description` (string, optional) — Detailed error description. ### 404 Not Found Error Merchant not found. - `error_message` (string, optional) — Description of the error (e.g., `merchant_id 123 not found.`). ## Types ### Address - `address1` (string, optional) — Address line 1. - `address2` (string, optional) — Address line 2. - `city` (string, optional) — City. - `state` (string, optional) — State (2-character abbreviation). - `zip` (string, optional) — ZIP code. - `address_type` (enum, optional) — Type of address. - Allowed values: `business`, `legal`, `mail_to` ### Fees - `merchant_service_fees` (list of MerchantServicesFee, optional) — Platform-level fees. See the /platform_fees endpoint for the fees available for each platform. - `pci_program` (PciProgram, optional) — PCI program selection. Valid types are `pci_concierge_fee_monthly` and `pci_annual_fee` for Fiserv, `platinum_monthly` and `platinum_annual` for Payroc. ### Product - `platform_equipment_id` (integer, optional) — Platform-specific equipment identifier. - `quantity` (integer, optional) — Quantity of the product. - `product_id` (string, optional) — Product identifier. See the /products endpoint. - `fees` (list of ProductFee, optional) — Array of fees associated with the product. ### Pricing - `pricing_type` (enum, optional) — Pricing type. Please note that certain pricing types are only available for specific platforms. See the /pricing_types endpoint for the pricing types and fields available for each platform. - Allowed values: `ic_plus`, `flat_rate`, `merchant_surcharge_program`, `swipe_non_swipe` - `discount_frequency` (enum, optional) — Fiserv ONLY. Frequency of discount. - Allowed values: `daily`, `monthly` - `funding_rollup` (enum, optional) — Fiserv ONLY. Funding rollup preference. - Allowed values: `net_fees_and_deposits`, `individual_batches`, `separate_fees_and_deposits` - `dues_and_assessments` (boolean, optional) — Fiserv ONLY. Automatically set to `true` for `ic_plus` pricing and `false` for `merchant_surcharge_program` pricing. - `amex_program` (enum, optional) — AMEX program. - Allowed values: `no_american_express`, `amex_opt_blue`, `amex_esa` - `amex_esa_number` (string, optional) — Required if `amex_program` is `amex_esa`. 10-digit AMEX ESA number. Not valid with `merchant_surcharge_program` pricing. - `amex_esa_per_item` (double, optional) — Required if `amex_program` is `amex_esa`. Cost per item for AMEX ESA. - `ic_plus` (ICPlus, optional) — IC Plus pricing details. Required if `pricing_type` is `ic_plus`. - `swipe_non_swipe` (SwipeNonSwipe, optional) — Swipe/Non-swipe pricing details. Required if `pricing_type` is `swipe_non_swipe`. - `merchant_surcharge_program` (MerchantSurchargeProgram, optional) — Merchant Surcharge pricing details. Required if `pricing_type` is `merchant_surcharge_program`. - `flat_rate` (FlatRate, optional) — Flat Rate pricing details. Required if `pricing_type` is `flat_rate`. ### MerchantServicesFee - `fee_id` (string, optional) — Type of fee. Some fees are only available for specific platforms. See the /platform_fees endpoint. - `cost` (double, optional, nullable) — Amount in dollars. Can be null for some fees. ### PciProgram - `type` (string, optional) — Type of PCI program. Valid values are `pci_concierge_fee_monthly` and `pci_annual_fee` for Fiserv, `platinum_monthly` and `platinum_annual` for Payroc. - `cost` (string, optional) — Amount in dollars as a string. ### ProductFee - `fee_id` (string, optional) — Product fee identifier. - `cost` (double, optional, nullable) — Amount in dollars. Can be null for some fees. ### ICPlus - `rate_bps` (integer, optional) — Rate in basis points (e.g. 200 for 2.00%). - `amex_rate_bps` (integer, optional) — Amount in basis points for American Express. - `per_item` (double, optional, nullable) — Amount in dollars per transaction. - `passthrough_interchange` (string, optional) — Interchange passthrough method (e.g., gross). ### SwipeNonSwipe - `swipe_per_item` (double, optional) — Amount in dollars (e.g. 0.05 for $0.05). - `swipe_rate_bps` (double, optional) — Amount in basis points (e.g. 200 for 2.00%). - `non_swipe_per_item` (double, optional) — Amount in dollars. - `non_swipe_rate_bps` (double, optional) — Amount in basis points. ### MerchantSurchargeProgram - `per_item` (double, optional) — Amount in dollars (e.g. 0.05 for $0.05). ### FlatRate - `per_item` (double, optional) — Amount in dollars (e.g. 0.05 for $0.05). - `rate_bps` (double, optional) — Amount in basis points (e.g. 200 for 2.00%). ## Examples **Response** ```json { "merchant_id": 1, "platform": "string", "rep_code": "string", "dba_name": "string", "merchant_status": "string", "addresses": [ { "address1": "string", "address2": "string", "city": "string", "state": "string", "zip": "string", "address_type": "business" } ], "fees": { "merchant_service_fees": [ { "fee_id": "string", "cost": 1.1 } ], "pci_program": { "type": "string", "cost": "string" } }, "products": [ { "platform_equipment_id": 1, "quantity": 1, "product_id": "string", "fees": [ { "fee_id": "string", "cost": 1.1 } ] } ], "sales_office_name": "string", "sales_office_id": 1, "customer_id": 1, "legal_name": "string", "tax_id": "string", "years_in_business": 1, "website": "string", "phone": "string", "mcc_code": "string", "business_desc": "string", "annual_volume": 1, "average_ticket": 1, "in_person_pct": 1, "online_pct": 1, "telephone_pct": 1, "ownership_type": "string", "fee_template_id": 1, "external_crm_id": "string", "custom_01": "string", "signer_first_name": "string", "signer_last_name": "string", "signer_dob": "string", "signer_res_address1": "string", "signer_res_address2": "string", "signer_res_city": "string", "signer_res_state": "string", "signer_res_zip": "string", "signer_email": "string", "signer_phone": "string", "signer_ownership_pct": 1, "pricing": { "pricing_type": "ic_plus", "discount_frequency": "daily", "funding_rollup": "net_fees_and_deposits", "dues_and_assessments": true, "amex_program": "no_american_express", "amex_esa_number": "string", "amex_esa_per_item": 1.1, "ic_plus": { "rate_bps": 1, "amex_rate_bps": 1, "per_item": 1.1, "passthrough_interchange": "string" }, "swipe_non_swipe": { "swipe_per_item": 1.1, "swipe_rate_bps": 1.1, "non_swipe_per_item": 1.1, "non_swipe_rate_bps": 1.1 }, "merchant_surcharge_program": { "per_item": 1.1 }, "flat_rate": { "per_item": 1.1, "rate_bps": 1.1 } } } ``` **SDK Code** ```python import requests url = "https://apps.runpayments.io/ords/relay/api/boarding/v1/merchants/1" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'https://apps.runpayments.io/ords/relay/api/boarding/v1/merchants/1'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; 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://apps.runpayments.io/ords/relay/api/boarding/v1/merchants/1" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") 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://apps.runpayments.io/ords/relay/api/boarding/v1/merchants/1") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://apps.runpayments.io/ords/relay/api/boarding/v1/merchants/1") .header("Authorization", "Bearer ") .asString(); ``` ```php request('GET', 'https://apps.runpayments.io/ords/relay/api/boarding/v1/merchants/1', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://apps.runpayments.io/ords/relay/api/boarding/v1/merchants/1"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://apps.runpayments.io/ords/relay/api/boarding/v1/merchants/1")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers 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() ```