---
title: "Create a customer"
method: POST
path: "/customers"
tags: ["Customers"]
---

# Create a customer

`POST /customers`

## Request

- Base URL: `https://app-sandbox.resolvepay.com/api`
- URL: `https://app-sandbox.resolvepay.com/api/customers`
- Auth: one of:
  - HTTP bearer
  - HTTP basic
- TypeScript: <https://skmtc.dev/resolvepay/apis/resolve-partners-api-reference/docs/customers/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a customer. Supporting documents are submitted after creation using
<a href="#operation/createCustomerDocumentUploadRequest">Upload a customer supporting document</a>.

## Request body

- CustomerPostRequest
  - `merchant_id` string: ID of the sub-merchant this customer belongs to. **Required for single-merchant partners.** Must be a valid sub-merchant under your partner account. **Not accepted for marketplace partners** — customers belong to the marketplace itself.
  - `external_id` string, nullable: Optional customer identifier from your system. This value is not required to be unique.
  - `business_address` string, required: Street address of the business' primary location.
  - `business_city` string, required: City of the business' primary location.
  - `business_state` string, required: State or province of the business' primary location.
  - `business_zip` string, required: US zip code of the business' primary location.
  - `business_country` string, ISO 3166-1 alpha 2, required: 2-letter country code of the business' primary location, according to the **ISO 3166-1 alpha 2** standard.
  - `business_ap_email` string, email, required: Email address of the business' accounts payable person or department.
  - `business_ap_phone` string: Phone number of the business' accounts payable person or department.
  - `business_ap_phone_extension` string: Phone number extension of the business' accounts payable person or department.
  - `business_name` string, required: Full legal name of the business being applied for.
  - `email` string, email, required: Email of the customer applying for terms.
  - `default_terms` 'net7' | 'net10' | 'net10th' | 'net15' | 'net20' | 'net30' | 'net45' | 'net60' | 'net75' | 'net90' | 'net120' | 'net180' | 'null', nullable: Default terms invoices will be advanced with.

## Response `200`

An object representing the customer.

- Customer: The customer object represents a company that does business with your sub-merchants. Retrieve a customer to get a summary of their total credit line and available credit balance. For single-merchant partners, the response includes a `merchant_id` field. For marketplace partners, the `merchant_id` field is not present — customers belong to the marketplace itself.
  - `id` string
  - `merchant_id` string: ID of the sub-merchant this customer belongs to. Only present for single-merchant partners.
  - `external_id` string, nullable: Optional customer identifier from your system. This value is not required to be unique and can be used with the `external_id` list filter.
  - `created_at` string, date-time: Date the customer was created.
  - `updated_at` string, date-time: Date the customer was last updated.
  - `source` 'QUICKBOOKS' | 'MERCHANT_USER' | 'ADMIN_USER' | 'APPLICATION' | 'CUSTOMER_USER' | 'API'
  - `business_address` string: Street address of the business' primary location.
  - `business_city` string: City of the business' primary location.
  - `business_state` string: State or province of the business' primary location.
  - `business_zip` string: US zip code of the business' primary location.
  - `business_country` string: Country of the business' primary location according to the **ISO 3166-1 alpha 2** standard.
  - `business_age_range` '0-2' | '2-5' | '5-10' | '10+': String indicating age of the business in years.
  - `business_ap_email` string: Email address of the business' accounts payable person or department.
  - `business_ap_phone` string: Phone number of the business' accounts payable person or department.
  - `business_ap_phone_extension` string: Phone number extension of the business' accounts payable person or department.
  - `business_name` string: Full legal name of the business being applied for.
  - `business_trade_name` string: Trade name of the business, if different than `business_name.`
  - `business_phone` string: Phone number of the business' primary location.
  - `business_type` 'sole_prop_or_partnership' | 'llc' | 'corporation' | 'nonprofit' | 'government': String indicating the business' type of legal entity.
  - `email` string, email: Email of the customer applying for terms.
  - `personal_name_first` string: First name of the person applying on behalf of the business.
  - `personal_name_last` string: Last name of the person applying on behalf of the business.
  - `personal_phone` string: Personal phone number of the customer representative applying for terms.
  - `amount_approved` integer: Total amount of the credit approved.
  - `amount_authorized` integer: Amount of the credit line reserved for authorized charges.
  - `amount_available` integer: Current amount of the credit line available for purchases.
  - `amount_balance` integer: Current balance on the customer's credit line.
  - `amount_unapplied_payments` integer: Current amount of a customer's unapplied payments.
  - `default_terms` 'net7' | 'net10' | 'net10th' | 'net15' | 'net20' | 'net30' | 'net45' | 'net60' | 'net75' | 'net90' | 'net120' | 'net180' | 'null', nullable: Set default terms that will apply to this customer's invoices. Can be overridden when requesting an advance.
  - `advance_rate` number, double, nullable: The advance rate that will be used to determine the amount advanced for this customer's invoices.
  - `credit_status` 'approved' | 'hold' | 'declined' | 'pending' | 'deactivated' | 'null', nullable: Current credit status of this customer. See <a href="#operation/requestCustomerCreditCheck">#request-a-credit-check</a> for more details.
  - `net_terms_status` 'enrolled' | 'pending_enrollment' | 'enrollment_expired' | 'null', nullable: Current net terms enrollment status of this customer. See <a href="#operation/fetchCustomer">#fetchCustomer</a> for more details.
  - `net_terms_enrollment_url` string, nullable: The URL for a customer to complete enrollment requirements when net_terms_status is pending_enrollment. See <a href="#operation/fetchCustomer">#fetchCustomer</a> for more details.
  - `net_terms_enrollment_expires_at` string, date-time, nullable: The date by which the customer must be enrolled in this net terms offer, not null when net_terms_status is pending_enrollment.
  - `credit_check_requested_at` string, date-time, nullable: The date a credit check was requested.
  - `archived` boolean: Boolean indicating if customer is archived.
  - `duns_number` string, nullable: Dun & Bradstreet unique nine-digit identifier for businesses that is associated with a business's Live Business Identity
  - `credit_decisions` object[]: Array of credit decisions made for this customer.
    - `id` string: Unique identifier for the credit decision.
    - `created_at` string, date-time: Date the credit decision was created.
    - `decision` 'approved' | 'declined' | 'hold' | 'line_adjustment' | 'deactivate': The credit decision outcome.
    - `amount` integer: The credit amount approved.
    - `advance_rate` number, double: The advance rate for this credit decision.
    - `decline_code` 'no_business_found' | 'thin_file' | 'failing_credit' | 'not_approved_need_more_info' | 'sole_prop' | 'applicant_business_association' | 'merchant_risk' | 'fraud' | 'no_us_address' | 'duplicate' | 'test_account' | 'email_verification_freemail' | 'email_verification_domain' | 'address_verification' | 'poor_cash_flow' | 'additional_info_not_provided' | 'other', nullable: Code indicating reason for decline, if applicable.
    - `hold_code` 'past_due' | 'failed_payment' | 'requested_by_customer' | 'requested_by_merchant' | 'dispute' | 'fraud' | 'churned' | 'payment_plan' | 'inactive' | 'other', nullable: Code indicating reason for hold, if applicable.

## Other responses

- `400`: Bad request error
- `401`: Unauthorized error
- `404`: Not found error
- `429`: Rate limit error

---

[API](https://skmtc.dev/resolvepay/apis/resolve-partners-api-reference.md) - [All operations](https://skmtc.dev/resolvepay/apis/resolve-partners-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/resolvepay/apis/resolve-partners-api-reference/revisions/5a1c75b8b404?raw)
