# POST /api/resellers

Create reseller

Creates a new reseller account with the specified permissions and configuration.

**Operation ID:** `resellersCreate`

## Authorization

Requires: Resellers.Resellers.Create, reseller scope.

Required permissions:
- `Resellers.Resellers.Create`

## Parameters

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| suppressNulls | query | no | boolean | If true, omit properties with null values. |

## Request Body

**Content type:** `application/json`

Schema: `ResellerCreateDto`

Properties:
- `createdFromTemplateId` (string(uuid))
- `name` (string) required
- `parentReseller` (string(uuid))
- `customIdentifier` (string): Conditional: When CustomIdentifier is not empty. Length: 5 to 100.
- `dba` (string): Conditional: When Dba is not empty. Length: 5 to 100.
- `isTest` (boolean)
- `code` (string)
- `contactDetail` (ResellerContactDetail): Represents contact details for a reseller.
- `businessInfo` (ResellerBusinessInfo): Represents business-related information for a reseller.
- `features` (ResellerFeatures)
- `branding` (ResellerBranding): Represents branding information for a reseller, including domain, product, contact, and icon details.
- `billingPreferences` (object): Conditional: When BillingPreferences is not null.
- `processingDefaults` (object): Portfolio-wide processing defaults applied to merchants under this reseller that have left the  matching merchant-level setting unset. Nullable end to end: a reseller that never sets one  changes nothing for its merchants. Conditional: When ProcessingDefaults is not null.
- `notes` (array<EntityNote>): Operational notes attached to the reseller.

_Example: Basic Reseller_

Creates a top-level reseller with contact info, business details, and default feature flags. Sub-resellers reference this id via ParentReseller.

```json
{
  "name": "Phoenix Payments Group",
  "customIdentifier": "PPG-001",
  "dba": "Phoenix Payments",
  "contactDetail": {
    "primaryContactName": "Pat Reseller",
    "emailAddress": "support@phoenix-payments.example.com",
    "phone": "555-555-1000",
    "companyUrl": "https://phoenix-payments.example.com",
    "addresses": [
      {
        "address1": "1 Payments Way",
        "city": "Phoenix",
        "state": "AZ",
        "zip": "85027",
        "country": "USA",
        "isMailing": true,
        "isDefault": true
      }
    ]
  },
  "businessInfo": {
    "federalTaxId": "00-0000000",
    "currency": "USD"
  },
  "features": {
    "privateLabeling": true,
    "hostedPage": true,
    "emulator": false,
    "merchantCustomFieldConfig": true,
    "merchantBilling": true,
    "subResellers": true
  },
  "branding": {
    "brandedDomainName": "pay.phoenix-payments.example.com",
    "productName": "Phoenix Payments",
    "emailFromName": "Phoenix Payments",
    "emailFromAddress": "no-reply@phoenix-payments.example.com",
    "displayAddress": {
      "address1": "1 Payments Way",
      "city": "Phoenix",
      "state": "AZ",
      "zip": "85027",
      "country": "USA"
    },
    "supportPhone": "555-555-1000",
    "salesPhone": "555-555-1001",
    "supportEmail": "support@phoenix-payments.example.com"
  }
}
```

_Example: Reseller With Card Acceptance Default_

Creates a reseller whose portfolio takes credit cards only. Every merchant under it that has no card acceptance policy of its own refuses debit and prepaid cards from the BIN; a merchant with its own policy overrides this default entirely. Omit ProcessingDefaults, or its CardAcceptancePolicy, to set no default.

```json
{
  "name": "Credit Only Payments Group",
  "customIdentifier": "COPG-001",
  "dba": "Credit Only Payments",
  "contactDetail": {
    "primaryContactName": "Jordan Lee",
    "emailAddress": "support@credit-only.example.com",
    "phone": "555-555-2000",
    "companyUrl": "https://credit-only.example.com",
    "addresses": [
      {
        "address1": "2 Credit Lane",
        "city": "Phoenix",
        "state": "AZ",
        "zip": "85027",
        "country": "USA",
        "isMailing": true,
        "isDefault": true
      }
    ]
  },
  "businessInfo": {
    "federalTaxId": "00-0000001",
    "currency": "USD"
  },
  "processingDefaults": {
    "cardAcceptancePolicy": {
      "acceptDebit": false,
      "acceptPrepaid": false,
      "unknownBinPosture": "Accept"
    }
  }
}
```

**Content type:** `text/json`

Schema: `ResellerCreateDto`

Properties:
- `createdFromTemplateId` (string(uuid))
- `name` (string) required
- `parentReseller` (string(uuid))
- `customIdentifier` (string): Conditional: When CustomIdentifier is not empty. Length: 5 to 100.
- `dba` (string): Conditional: When Dba is not empty. Length: 5 to 100.
- `isTest` (boolean)
- `code` (string)
- `contactDetail` (ResellerContactDetail): Represents contact details for a reseller.
- `businessInfo` (ResellerBusinessInfo): Represents business-related information for a reseller.
- `features` (ResellerFeatures)
- `branding` (ResellerBranding): Represents branding information for a reseller, including domain, product, contact, and icon details.
- `billingPreferences` (object): Conditional: When BillingPreferences is not null.
- `processingDefaults` (object): Portfolio-wide processing defaults applied to merchants under this reseller that have left the  matching merchant-level setting unset. Nullable end to end: a reseller that never sets one  changes nothing for its merchants. Conditional: When ProcessingDefaults is not null.
- `notes` (array<EntityNote>): Operational notes attached to the reseller.

_Example: Basic Reseller_

Creates a top-level reseller with contact info, business details, and default feature flags. Sub-resellers reference this id via ParentReseller.

```json
{
  "name": "Phoenix Payments Group",
  "customIdentifier": "PPG-001",
  "dba": "Phoenix Payments",
  "contactDetail": {
    "primaryContactName": "Pat Reseller",
    "emailAddress": "support@phoenix-payments.example.com",
    "phone": "555-555-1000",
    "companyUrl": "https://phoenix-payments.example.com",
    "addresses": [
      {
        "address1": "1 Payments Way",
        "city": "Phoenix",
        "state": "AZ",
        "zip": "85027",
        "country": "USA",
        "isMailing": true,
        "isDefault": true
      }
    ]
  },
  "businessInfo": {
    "federalTaxId": "00-0000000",
    "currency": "USD"
  },
  "features": {
    "privateLabeling": true,
    "hostedPage": true,
    "emulator": false,
    "merchantCustomFieldConfig": true,
    "merchantBilling": true,
    "subResellers": true
  },
  "branding": {
    "brandedDomainName": "pay.phoenix-payments.example.com",
    "productName": "Phoenix Payments",
    "emailFromName": "Phoenix Payments",
    "emailFromAddress": "no-reply@phoenix-payments.example.com",
    "displayAddress": {
      "address1": "1 Payments Way",
      "city": "Phoenix",
      "state": "AZ",
      "zip": "85027",
      "country": "USA"
    },
    "supportPhone": "555-555-1000",
    "salesPhone": "555-555-1001",
    "supportEmail": "support@phoenix-payments.example.com"
  }
}
```

_Example: Reseller With Card Acceptance Default_

Creates a reseller whose portfolio takes credit cards only. Every merchant under it that has no card acceptance policy of its own refuses debit and prepaid cards from the BIN; a merchant with its own policy overrides this default entirely. Omit ProcessingDefaults, or its CardAcceptancePolicy, to set no default.

```json
{
  "name": "Credit Only Payments Group",
  "customIdentifier": "COPG-001",
  "dba": "Credit Only Payments",
  "contactDetail": {
    "primaryContactName": "Jordan Lee",
    "emailAddress": "support@credit-only.example.com",
    "phone": "555-555-2000",
    "companyUrl": "https://credit-only.example.com",
    "addresses": [
      {
        "address1": "2 Credit Lane",
        "city": "Phoenix",
        "state": "AZ",
        "zip": "85027",
        "country": "USA",
        "isMailing": true,
        "isDefault": true
      }
    ]
  },
  "businessInfo": {
    "federalTaxId": "00-0000001",
    "currency": "USD"
  },
  "processingDefaults": {
    "cardAcceptancePolicy": {
      "acceptDebit": false,
      "acceptPrepaid": false,
      "unknownBinPosture": "Accept"
    }
  }
}
```

**Content type:** `application/*+json`

Schema: `ResellerCreateDto`

Properties:
- `createdFromTemplateId` (string(uuid))
- `name` (string) required
- `parentReseller` (string(uuid))
- `customIdentifier` (string): Conditional: When CustomIdentifier is not empty. Length: 5 to 100.
- `dba` (string): Conditional: When Dba is not empty. Length: 5 to 100.
- `isTest` (boolean)
- `code` (string)
- `contactDetail` (ResellerContactDetail): Represents contact details for a reseller.
- `businessInfo` (ResellerBusinessInfo): Represents business-related information for a reseller.
- `features` (ResellerFeatures)
- `branding` (ResellerBranding): Represents branding information for a reseller, including domain, product, contact, and icon details.
- `billingPreferences` (object): Conditional: When BillingPreferences is not null.
- `processingDefaults` (object): Portfolio-wide processing defaults applied to merchants under this reseller that have left the  matching merchant-level setting unset. Nullable end to end: a reseller that never sets one  changes nothing for its merchants. Conditional: When ProcessingDefaults is not null.
- `notes` (array<EntityNote>): Operational notes attached to the reseller.

_Example: Basic Reseller_

Creates a top-level reseller with contact info, business details, and default feature flags. Sub-resellers reference this id via ParentReseller.

```json
{
  "name": "Phoenix Payments Group",
  "customIdentifier": "PPG-001",
  "dba": "Phoenix Payments",
  "contactDetail": {
    "primaryContactName": "Pat Reseller",
    "emailAddress": "support@phoenix-payments.example.com",
    "phone": "555-555-1000",
    "companyUrl": "https://phoenix-payments.example.com",
    "addresses": [
      {
        "address1": "1 Payments Way",
        "city": "Phoenix",
        "state": "AZ",
        "zip": "85027",
        "country": "USA",
        "isMailing": true,
        "isDefault": true
      }
    ]
  },
  "businessInfo": {
    "federalTaxId": "00-0000000",
    "currency": "USD"
  },
  "features": {
    "privateLabeling": true,
    "hostedPage": true,
    "emulator": false,
    "merchantCustomFieldConfig": true,
    "merchantBilling": true,
    "subResellers": true
  },
  "branding": {
    "brandedDomainName": "pay.phoenix-payments.example.com",
    "productName": "Phoenix Payments",
    "emailFromName": "Phoenix Payments",
    "emailFromAddress": "no-reply@phoenix-payments.example.com",
    "displayAddress": {
      "address1": "1 Payments Way",
      "city": "Phoenix",
      "state": "AZ",
      "zip": "85027",
      "country": "USA"
    },
    "supportPhone": "555-555-1000",
    "salesPhone": "555-555-1001",
    "supportEmail": "support@phoenix-payments.example.com"
  }
}
```

_Example: Reseller With Card Acceptance Default_

Creates a reseller whose portfolio takes credit cards only. Every merchant under it that has no card acceptance policy of its own refuses debit and prepaid cards from the BIN; a merchant with its own policy overrides this default entirely. Omit ProcessingDefaults, or its CardAcceptancePolicy, to set no default.

```json
{
  "name": "Credit Only Payments Group",
  "customIdentifier": "COPG-001",
  "dba": "Credit Only Payments",
  "contactDetail": {
    "primaryContactName": "Jordan Lee",
    "emailAddress": "support@credit-only.example.com",
    "phone": "555-555-2000",
    "companyUrl": "https://credit-only.example.com",
    "addresses": [
      {
        "address1": "2 Credit Lane",
        "city": "Phoenix",
        "state": "AZ",
        "zip": "85027",
        "country": "USA",
        "isMailing": true,
        "isDefault": true
      }
    ]
  },
  "businessInfo": {
    "federalTaxId": "00-0000001",
    "currency": "USD"
  },
  "processingDefaults": {
    "cardAcceptancePolicy": {
      "acceptDebit": false,
      "acceptPrepaid": false,
      "unknownBinPosture": "Accept"
    }
  }
}
```

## Responses

### 200

OK

**Content type:** `application/json`

Schema: `ResellerDto`

Properties:
- `extraProperties` (object)
- `id` (string(uuid))
- `creationTime` (string(date-time)): The date and time when this entity was created.
- `creatorId` (string(uuid)): The ID of the user who created this entity.
- `lastModificationTime` (string(date-time)): The date and time when this entity was last modified.
- `lastModifierId` (string(uuid)): The ID of the user who last modified this entity.
- `isDeleted` (boolean): Indicates whether this entity has been deleted.
- `deleterId` (string(uuid)): The ID of the user who deleted this entity, if it is deleted.
- `deletionTime` (string(date-time)): The date and time when this entity was deleted, if it is deleted.
- `createdFromTemplateId` (string(uuid)): The template this record was created from, or `null` for one started blank. Set by the  create-from-template path and by the add/edit page's Load Template action when the record is  saved.
- `name` (string)
- `concurrencyStamp` (string)
- `tenantId` (string(uuid))
- `entityVersion` (integer(int32))
- `parentReseller` (string(uuid))
- `customIdentifier` (string)
- `dba` (string)
- `code` (string)
- `features` (ResellerFeatures)
- `contactDetail` (ResellerContactDetail): Represents contact details for a reseller.
- `businessInfo` (ResellerBusinessInfo): Represents business-related information for a reseller.
- `branding` (ResellerBranding): Represents branding information for a reseller, including domain, product, contact, and icon details.
- `billingPreferences` (ResellerBillingPreferences): Per-reseller billing configuration embedded on the Reseller aggregate root.  Controls billing run scheduling, payment terms, and invoice generation preferences.
- `processingDefaults` (object): Gets or sets the portfolio-wide processing defaults applied to merchants under this reseller  that have left the matching merchant-level setting unset. `null` when the reseller sets  no defaults.
- `isTest` (boolean)
- `legacyNumber` (integer(int64)): Gets the reseller's legacy numeric key, the integer identifier the v1 API addresses resellers  by (its `ResellerKey`). Server-owned and stamped once at create; null on resellers written  before the field existed until the v1 data migration back-fills them.
- `notes` (array<EntityNote>): Gets or sets operational notes attached to the reseller.

### 403

Forbidden

**Content type:** `application/json`

Schema: `RemoteServiceErrorResponse`

Properties:
- `error` (RemoteServiceErrorInfo)

### 401

Unauthorized

**Content type:** `application/json`

Schema: `RemoteServiceErrorResponse`

Properties:
- `error` (RemoteServiceErrorInfo)

### 400

Bad Request

**Content type:** `application/json`

Schema: `RemoteServiceErrorResponse`

Properties:
- `error` (RemoteServiceErrorInfo)

### 404

Not Found

**Content type:** `application/json`

Schema: `RemoteServiceErrorResponse`

Properties:
- `error` (RemoteServiceErrorInfo)

### 501

Not Implemented

**Content type:** `application/json`

Schema: `RemoteServiceErrorResponse`

Properties:
- `error` (RemoteServiceErrorInfo)

### 500

Internal Server Error

**Content type:** `application/json`

Schema: `RemoteServiceErrorResponse`

Properties:
- `error` (RemoteServiceErrorInfo)

### default

The request failed. The body carries the standard error envelope: a machine-readable `error.code`, a human-readable `error.message`, and `error.validationErrors` when the failure was a validation rejection. See the error-code reference in this document's description for the values `error.code` can take.

**Content type:** `application/json`

Schema: `RemoteServiceErrorResponse`

Properties:
- `error` (RemoteServiceErrorInfo)

### 429

The request was refused because a rate limit was exceeded, or because something a later retry can clear stopped it. A rate limit refusal carries an `application/problem+json` body: wait at least the interval `Retry-After` names before retrying, then back off. Limits are tuned per deployment, so read the allowance from the response headers rather than assuming a fixed ceiling. Any other refusal carries the standard error envelope as `application/json`, and its `error.code` names the cause.

**Content type:** `application/problem+json`

Schema: `RateLimitProblemDetails`

Properties:
- `type` (string) required: The problem type identifier. Always the same value: the failure is the status code itself,  so there is no sub-type for a caller to branch on.
- `title` (string) required: A short, human-readable summary of the problem type.
- `status` (integer(int32)) required: The HTTP status code, repeated in the body as the problem-details format defines.
- `detail` (string) required: A human-readable explanation of this occurrence of the problem.
- `retryAfterSeconds` (integer(int32)) required: How long to wait before retrying, in whole seconds, carrying the same figure as the  `Retry-After` header. Always at least one: a value of zero would invite an immediate  retry that is certain to be rejected again.

**Content type:** `application/json`

Schema: `RemoteServiceErrorResponse`

Properties:
- `error` (RemoteServiceErrorInfo)

## Example request

Every block below sends the same request. Replace {{BASE_URL}} with the address of the API you are calling and {{API_KEY}} with your own key.

The request body is a ResellerCreateDto. See the Request body section below for its fields.

### cURL

```bash
curl -X POST "{{BASE_URL}}/api/resellers" \
  -H "api-key: {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Phoenix Payments Group",
  "customIdentifier": "PPG-001",
  "dba": "Phoenix Payments",
  "contactDetail": {
    "primaryContactName": "Pat Reseller",
    "emailAddress": "support@phoenix-payments.example.com",
    "phone": "555-555-1000",
    "companyUrl": "https://phoenix-payments.example.com",
    "addresses": [
      {
        "address1": "1 Payments Way",
        "city": "Phoenix",
        "state": "AZ",
        "zip": "85027",
        "country": "USA",
        "isMailing": true,
        "isDefault": true
      }
    ]
  },
  "businessInfo": {
    "federalTaxId": "00-0000000",
    "currency": "USD"
  },
  "features": {
    "privateLabeling": true,
    "hostedPage": true,
    "emulator": false,
    "merchantCustomFieldConfig": true,
    "merchantBilling": true,
    "subResellers": true
  },
  "branding": {
    "brandedDomainName": "pay.phoenix-payments.example.com",
    "productName": "Phoenix Payments",
    "emailFromName": "Phoenix Payments",
    "emailFromAddress": "no-reply@phoenix-payments.example.com",
    "displayAddress": {
      "address1": "1 Payments Way",
      "city": "Phoenix",
      "state": "AZ",
      "zip": "85027",
      "country": "USA"
    },
    "supportPhone": "555-555-1000",
    "salesPhone": "555-555-1001",
    "supportEmail": "support@phoenix-payments.example.com"
  }
}'
```

### PowerShell

```powershell
$headers = @{
    'api-key' = '{{API_KEY}}'
}

$body = @'
{
  "name": "Phoenix Payments Group",
  "customIdentifier": "PPG-001",
  "dba": "Phoenix Payments",
  "contactDetail": {
    "primaryContactName": "Pat Reseller",
    "emailAddress": "support@phoenix-payments.example.com",
    "phone": "555-555-1000",
    "companyUrl": "https://phoenix-payments.example.com",
    "addresses": [
      {
        "address1": "1 Payments Way",
        "city": "Phoenix",
        "state": "AZ",
        "zip": "85027",
        "country": "USA",
        "isMailing": true,
        "isDefault": true
      }
    ]
  },
  "businessInfo": {
    "federalTaxId": "00-0000000",
    "currency": "USD"
  },
  "features": {
    "privateLabeling": true,
    "hostedPage": true,
    "emulator": false,
    "merchantCustomFieldConfig": true,
    "merchantBilling": true,
    "subResellers": true
  },
  "branding": {
    "brandedDomainName": "pay.phoenix-payments.example.com",
    "productName": "Phoenix Payments",
    "emailFromName": "Phoenix Payments",
    "emailFromAddress": "no-reply@phoenix-payments.example.com",
    "displayAddress": {
      "address1": "1 Payments Way",
      "city": "Phoenix",
      "state": "AZ",
      "zip": "85027",
      "country": "USA"
    },
    "supportPhone": "555-555-1000",
    "salesPhone": "555-555-1001",
    "supportEmail": "support@phoenix-payments.example.com"
  }
}
'@

$response = Invoke-RestMethod -Method POST -Uri '{{BASE_URL}}/api/resellers' `
    -Headers $headers -ContentType 'application/json' -Body $body
```

### TypeScript (SDK)

```bash
npm install @winkpg/winkpg-api
```

```typescript
import { Configuration, ResellersApi } from '@winkpg/winkpg-api';

const api = new ResellersApi(new Configuration({
  basePath: '{{BASE_URL}}',
  apiKey: '{{API_KEY}}',
}));

const { data } = await api.resellersCreate({
  "name": "Phoenix Payments Group",
  "customIdentifier": "PPG-001",
  "dba": "Phoenix Payments",
  "contactDetail": {
    "primaryContactName": "Pat Reseller",
    "emailAddress": "support@phoenix-payments.example.com",
    "phone": "555-555-1000",
    "companyUrl": "https://phoenix-payments.example.com",
    "addresses": [
      {
        "address1": "1 Payments Way",
        "city": "Phoenix",
        "state": "AZ",
        "zip": "85027",
        "country": "USA",
        "isMailing": true,
        "isDefault": true
      }
    ]
  },
  "businessInfo": {
    "federalTaxId": "00-0000000",
    "currency": "USD"
  },
  "features": {
    "privateLabeling": true,
    "hostedPage": true,
    "emulator": false,
    "merchantCustomFieldConfig": true,
    "merchantBilling": true,
    "subResellers": true
  },
  "branding": {
    "brandedDomainName": "pay.phoenix-payments.example.com",
    "productName": "Phoenix Payments",
    "emailFromName": "Phoenix Payments",
    "emailFromAddress": "no-reply@phoenix-payments.example.com",
    "displayAddress": {
      "address1": "1 Payments Way",
      "city": "Phoenix",
      "state": "AZ",
      "zip": "85027",
      "country": "USA"
    },
    "supportPhone": "555-555-1000",
    "salesPhone": "555-555-1001",
    "supportEmail": "support@phoenix-payments.example.com"
  }
});
```

### TypeScript (raw HTTP)

```typescript
const response = await fetch('{{BASE_URL}}/api/resellers', {
  method: 'POST',
  headers: {
    "api-key": "{{API_KEY}}",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Phoenix Payments Group",
    "customIdentifier": "PPG-001",
    "dba": "Phoenix Payments",
    "contactDetail": {
      "primaryContactName": "Pat Reseller",
      "emailAddress": "support@phoenix-payments.example.com",
      "phone": "555-555-1000",
      "companyUrl": "https://phoenix-payments.example.com",
      "addresses": [
        {
          "address1": "1 Payments Way",
          "city": "Phoenix",
          "state": "AZ",
          "zip": "85027",
          "country": "USA",
          "isMailing": true,
          "isDefault": true
        }
      ]
    },
    "businessInfo": {
      "federalTaxId": "00-0000000",
      "currency": "USD"
    },
    "features": {
      "privateLabeling": true,
      "hostedPage": true,
      "emulator": false,
      "merchantCustomFieldConfig": true,
      "merchantBilling": true,
      "subResellers": true
    },
    "branding": {
      "brandedDomainName": "pay.phoenix-payments.example.com",
      "productName": "Phoenix Payments",
      "emailFromName": "Phoenix Payments",
      "emailFromAddress": "no-reply@phoenix-payments.example.com",
      "displayAddress": {
        "address1": "1 Payments Way",
        "city": "Phoenix",
        "state": "AZ",
        "zip": "85027",
        "country": "USA"
      },
      "supportPhone": "555-555-1000",
      "salesPhone": "555-555-1001",
      "supportEmail": "support@phoenix-payments.example.com"
    }
  }),
});

const data = await response.json();
```

### C# (SDK)

```bash
dotnet add package WinkPg.Api.Client
```

```csharp
using WinkPg.Api.Client.Api;
using WinkPg.Api.Client.Client;
using System.Text.Json;

var config = new Configuration { BasePath = "{{BASE_URL}}" };
config.AddApiKey("api-key", "{{API_KEY}}");

var api = new ResellersApi(config);
var body = JsonSerializer.Deserialize<ResellerCreateDto>("""
    {
      "name": "Phoenix Payments Group",
      "customIdentifier": "PPG-001",
      "dba": "Phoenix Payments",
      "contactDetail": {
        "primaryContactName": "Pat Reseller",
        "emailAddress": "support@phoenix-payments.example.com",
        "phone": "555-555-1000",
        "companyUrl": "https://phoenix-payments.example.com",
        "addresses": [
          {
            "address1": "1 Payments Way",
            "city": "Phoenix",
            "state": "AZ",
            "zip": "85027",
            "country": "USA",
            "isMailing": true,
            "isDefault": true
          }
        ]
      },
      "businessInfo": {
        "federalTaxId": "00-0000000",
        "currency": "USD"
      },
      "features": {
        "privateLabeling": true,
        "hostedPage": true,
        "emulator": false,
        "merchantCustomFieldConfig": true,
        "merchantBilling": true,
        "subResellers": true
      },
      "branding": {
        "brandedDomainName": "pay.phoenix-payments.example.com",
        "productName": "Phoenix Payments",
        "emailFromName": "Phoenix Payments",
        "emailFromAddress": "no-reply@phoenix-payments.example.com",
        "displayAddress": {
          "address1": "1 Payments Way",
          "city": "Phoenix",
          "state": "AZ",
          "zip": "85027",
          "country": "USA"
        },
        "supportPhone": "555-555-1000",
        "salesPhone": "555-555-1001",
        "supportEmail": "support@phoenix-payments.example.com"
      }
    }
    """);

var result = await api.ResellersCreateAsync(body);
```

### C# (raw HTTP)

```csharp
using System.Text;

using var http = new HttpClient { BaseAddress = new Uri("{{BASE_URL}}") };

var request = new HttpRequestMessage(new HttpMethod("POST"), "/api/resellers");
request.Headers.Add("api-key", "{{API_KEY}}");

request.Content = new StringContent("""
    {
      "name": "Phoenix Payments Group",
      "customIdentifier": "PPG-001",
      "dba": "Phoenix Payments",
      "contactDetail": {
        "primaryContactName": "Pat Reseller",
        "emailAddress": "support@phoenix-payments.example.com",
        "phone": "555-555-1000",
        "companyUrl": "https://phoenix-payments.example.com",
        "addresses": [
          {
            "address1": "1 Payments Way",
            "city": "Phoenix",
            "state": "AZ",
            "zip": "85027",
            "country": "USA",
            "isMailing": true,
            "isDefault": true
          }
        ]
      },
      "businessInfo": {
        "federalTaxId": "00-0000000",
        "currency": "USD"
      },
      "features": {
        "privateLabeling": true,
        "hostedPage": true,
        "emulator": false,
        "merchantCustomFieldConfig": true,
        "merchantBilling": true,
        "subResellers": true
      },
      "branding": {
        "brandedDomainName": "pay.phoenix-payments.example.com",
        "productName": "Phoenix Payments",
        "emailFromName": "Phoenix Payments",
        "emailFromAddress": "no-reply@phoenix-payments.example.com",
        "displayAddress": {
          "address1": "1 Payments Way",
          "city": "Phoenix",
          "state": "AZ",
          "zip": "85027",
          "country": "USA"
        },
        "supportPhone": "555-555-1000",
        "salesPhone": "555-555-1001",
        "supportEmail": "support@phoenix-payments.example.com"
      }
    }
    """, Encoding.UTF8, "application/json");

var response = await http.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
```

### Python (SDK)

```bash
pip install winkpg-api
```

```python
import winkpg_api

configuration = winkpg_api.Configuration(host="{{BASE_URL}}")
configuration.api_key["ApiKey"] = "{{API_KEY}}"

with winkpg_api.ApiClient(configuration) as client:
    api = winkpg_api.ResellersApi(client)
    body = winkpg_api.ResellerCreateDto.from_dict({
      "name": "Phoenix Payments Group",
      "customIdentifier": "PPG-001",
      "dba": "Phoenix Payments",
      "contactDetail": {
        "primaryContactName": "Pat Reseller",
        "emailAddress": "support@phoenix-payments.example.com",
        "phone": "555-555-1000",
        "companyUrl": "https://phoenix-payments.example.com",
        "addresses": [
          {
            "address1": "1 Payments Way",
            "city": "Phoenix",
            "state": "AZ",
            "zip": "85027",
            "country": "USA",
            "isMailing": True,
            "isDefault": True
          }
        ]
      },
      "businessInfo": {
        "federalTaxId": "00-0000000",
        "currency": "USD"
      },
      "features": {
        "privateLabeling": True,
        "hostedPage": True,
        "emulator": False,
        "merchantCustomFieldConfig": True,
        "merchantBilling": True,
        "subResellers": True
      },
      "branding": {
        "brandedDomainName": "pay.phoenix-payments.example.com",
        "productName": "Phoenix Payments",
        "emailFromName": "Phoenix Payments",
        "emailFromAddress": "no-reply@phoenix-payments.example.com",
        "displayAddress": {
          "address1": "1 Payments Way",
          "city": "Phoenix",
          "state": "AZ",
          "zip": "85027",
          "country": "USA"
        },
        "supportPhone": "555-555-1000",
        "salesPhone": "555-555-1001",
        "supportEmail": "support@phoenix-payments.example.com"
      }
    })
    result = api.resellers_create(body)
```

### Python (raw HTTP)

```bash
pip install requests
```

```python
import requests

headers = {
    "api-key": "{{API_KEY}}",
    "Content-Type": "application/json",
}

body = {
  "name": "Phoenix Payments Group",
  "customIdentifier": "PPG-001",
  "dba": "Phoenix Payments",
  "contactDetail": {
    "primaryContactName": "Pat Reseller",
    "emailAddress": "support@phoenix-payments.example.com",
    "phone": "555-555-1000",
    "companyUrl": "https://phoenix-payments.example.com",
    "addresses": [
      {
        "address1": "1 Payments Way",
        "city": "Phoenix",
        "state": "AZ",
        "zip": "85027",
        "country": "USA",
        "isMailing": True,
        "isDefault": True
      }
    ]
  },
  "businessInfo": {
    "federalTaxId": "00-0000000",
    "currency": "USD"
  },
  "features": {
    "privateLabeling": True,
    "hostedPage": True,
    "emulator": False,
    "merchantCustomFieldConfig": True,
    "merchantBilling": True,
    "subResellers": True
  },
  "branding": {
    "brandedDomainName": "pay.phoenix-payments.example.com",
    "productName": "Phoenix Payments",
    "emailFromName": "Phoenix Payments",
    "emailFromAddress": "no-reply@phoenix-payments.example.com",
    "displayAddress": {
      "address1": "1 Payments Way",
      "city": "Phoenix",
      "state": "AZ",
      "zip": "85027",
      "country": "USA"
    },
    "supportPhone": "555-555-1000",
    "salesPhone": "555-555-1001",
    "supportEmail": "support@phoenix-payments.example.com"
  }
}

response = requests.request(
    "POST",
    "{{BASE_URL}}/api/resellers",
    headers=headers,
    json=body,
)
response.raise_for_status()
data = response.json()
```

## See also

- [All documentation](https://devportal-simpay-sbx.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
