Skip to content

Creates a merchant application

Request

POST {{baseURL}}/v2/applications

This endpoint invites a merchant to complete a pre-filled merchant application.

The request can be as small as the business name and the merchant's email address. It can also include as much of the application as the partner holds. Every field left out stays empty for the merchant to fill in. This includes sensitive fields such as Social Security numbers and bank details.

The application is attributed to partnerUserId. The scheduleAId and splitProfileId values must belong to that partner user. To list them, see GET /v2/users/{{userId}}/schedule-as and GET /v2/users/{{userId}}/split-profiles.

With Iframe, the merchant completes and signs the application without creating a Flute account. The frame posts two messages to the partner's page. Each message has a type and an applicationId.

  • arise:application-submitted is posted when the merchant submits the application.
  • arise:application-signed is posted when the frame returns from signing.

Check that event.origin matches the origin of applicationUrl before acting on a message. Treat the messages as a cue to refresh the page, not as the application's state. The webhooks and GET /v2/applications remain the source of truth. The frame navigates to the signing provider and back. Do not sandbox the frame in a way that blocks navigation or scripts.

The metadata value correlates the application with the partner's own records. It is stored as sent. It is returned on the response and by GET /v2/applications.

This endpoint is idempotent. See the idempotency-key header entry. For more information, see Idempotency.

This endpoint requires a partner API token. A merchant API token will result in a permissions error including possibly a 403 response.

See Also:
To list applications, see GET /v2/applications.
To find partner users, see GET /v2/users.
To list pricing templates, see GET /v2/pricing-templates.

Security
Bearer
Headers
idempotency-keystring, (uuid), <= 255 characters

Specifies the client-generated idempotency-key.

This key is optional. We recommend using the key to prevent multiple invocations of the operation. This key makes this request safely retryable, or idempotent. If the idempotency key is not included, the call will not have idempotency protection.

A retry with the same key, made within the retention window, returns the original response verbatim. The operation is not repeated. The retention window, also called the TTL (time to live) is 1440 minutes (24 hours) by default but this setting may be changed.

A retry with the same key while the original request is still processing returns 409 Conflict (IdempotencyKeyInProgress). Retry again after a short delay.

Reusing the same key with a different request body returns 422 Unprocessable Content (IdempotencyKeyConflict). Generate a new key for each distinct operation.

A 500 series server error is not stored against the key. A retry with the same key after a 500 series response processes the request again.

Example:6a1f7e2c-4b3d-4e5a-8f9c-1d2e3f4a5b6c
Bodyapplication/jsonrequired

Merchant application details.

deliveryMethodstringrequired

Specifies how the application link reaches the merchant.

Valid values are:

ValueMeaning
EmailFlute emails the merchant an invitation with the link.

The applicationUrl value is also returned.
IframeNothing is sent.

The partner embeds applicationUrl in an iframe on its own page.
The merchant completes and signs the application there without creating a Flute account.
PartnerDirectNothing is sent.

The partner delivers applicationUrl to the merchant.

Example: Email

Enum:"Email""PartnerDirect""Iframe"
Example:"Email"
emailstring, (email)required

Specifies the email address of the merchant contact who owns the invitation.

With Email delivery, the invitation is sent to this address. An address that already belongs to a partner or administrator account is rejected.

Example: marcus@example.com

Example:"marcus@example.com"
partnerUserIdstring, (uuid)required

Specifies the partner user the application is attributed to.

That user's Schedule A, Split Profile and residuals apply to the application. The value must be a partner user identifier.

To find partner user identifiers, see GET /v2/users with userType=Partner.

Example: 3f2504e0-4f89-11d3-9a0c-0305e82c3301

Example:"3f2504e0-4f89-11d3-9a0c-0305e82c3301"
processorIdinteger, (int32), >= 1required

Specifies the payment processor to board the merchant with.

The relationship manager provides the identifier. The value must be greater than zero.

Example: 1

Example:1
scheduleAIdstring, (uuid)required

Specifies the Schedule A (pricing schedule) assigned to the application.

The value must be one of the partner user's Schedule A identifiers.

Example: b7e2f7a0-4c1a-4e7d-9b2f-1a2b3c4d5e6f

Example:"b7e2f7a0-4c1a-4e7d-9b2f-1a2b3c4d5e6f"
splitProfileIdstring, (uuid)required

Specifies the residual Split Profile assigned to the application.

The value must be one of the partner user's Split Profile identifiers.

Example: c8f3a8b1-5d2b-4f8e-8c3a-2b3c4d5e6f70

Example:"c8f3a8b1-5d2b-4f8e-8c3a-2b3c4d5e6f70"
pricingTemplateIdsArray of strings, (uuid)

Specifies the pricing templates offered to the merchant.

With one identifier, the merchant sees no pricing choice. With several identifiers, the merchant chooses one of them. If omitted, the account's default pricing templates are offered. The list must not contain an empty identifier.

To list pricing templates, see GET /v2/pricing-templates.

Example: ["d9a4b9c2-6e3c-4a9f-9d4b-3c4d5e6f7081"]

Example:
[ "d9a4b9c2-6e3c-4a9f-9d4b-3c4d5e6f7081" ]
metadataobject or null

Specifies arbitrary key-value pairs to attach to the application.

These pairs are stored as sent. They are returned on the response and by GET /v2/applications. A key with a null value is not stored.

The limits are 50 keys, 100 characters per key, 500 characters per value, and 8 KB in total.

Example: {"locationId": "loc_00441"}

Example:
{ "locationId": "loc_00441" }
businessInformationobjectrequired
locationAddressobject
isLegalAddressTheSameboolean

Specifies the legal address is the location address.

If true, the legal address is the location address.
If false, the legal address is sent in legalAddress.

Example: true

Example:true
legalAddressobject
owner1object
owner2object
owner3object
owner4object
authorizedSignerobject
isPrimaryContactTheSameboolean

Specifies the primary contact is the principal owner.

If true, the primary contact is owner1.
If false, the primary contact is sent in primaryContact.

Example: true

Example:true
primaryContactobject
achProcessorstring

Specifies the ACH processor to enroll the merchant with.

Omit this value if the merchant does not need ACH processing.

Valid values are:

ValueMeaning
StraddleThe Straddle ACH processor.

Example: Straddle

Value:"Straddle"
Example:"Straddle"
achProcessorDataobject

Specifies every request field.

Most applications send only some of these fields. Every field left out stays empty for the merchant to fill in.

POST /v2/applications HTTP/1.1
Host: sandbox.api.flute.com
Authorization: Bearer <YOUR_JWT_HERE>
Content-Type: application/json
Accept: application/json
idempotency-key: 6a1f7e2c-4b3d-4e5a-8f9c-1d2e3f4a5b6c

{
  "deliveryMethod": "PartnerDirect",
  "email": "marcus@example.com",
  "partnerUserId": "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
  "processorId": 1,
  "scheduleAId": "b7e2f7a0-4c1a-4e7d-9b2f-1a2b3c4d5e6f",
  "splitProfileId": "c8f3a8b1-5d2b-4f8e-8c3a-2b3c4d5e6f70",
  "pricingTemplateIds": [
    "d9a4b9c2-6e3c-4a9f-9d4b-3c4d5e6f7081"
  ],
  "metadata": {
    "locationId": "loc_00441"
  },
  "businessInformation": {
    "dbaName": "Marcus's Pickup Shop",
    "legalName": "Marcus's Pickup Shop LLC",
    "typeOfBusiness": "LimitedLiability",
    "businessPhone": "+15550148000",
    "website": "https://example.com"
  },
  "locationAddress": {
    "typeOfLocation": "StoreFront",
    "addressLine1": "412 Harbor Ave",
    "city": "Portland",
    "regionCode": "OR",
    "postalCode": "97201",
    "countryCode": "US"
  },
  "isLegalAddressTheSame": true,
  "owner1": {
    "firstName": "Marcus",
    "lastName": "Alvarez",
    "email": "marcus@example.com",
    "phoneNumber": "+15550148000",
    "ownership": 100
  },
  "isPrimaryContactTheSame": true
}

Responses

OK

Bodyapplication/json
applicationIdstring, (uuid)

Indicates the application identifier.

This is the same identifier GET /v2/applications returns.

Example: 8e3b1c5a-2f4d-4a6b-9c7e-1d2f3a4b5c6d

Example:"8e3b1c5a-2f4d-4a6b-9c7e-1d2f3a4b5c6d"
applicationUrlstring

Indicates the link the merchant opens to complete the application.

The link grants access to the application. Treat it like a password. Deliver it to the merchant only, and never log it.

Example: https://dashboard.flute.com/onboarding/register?invite_token=019c76de-cbd3-788d-8cb0-f829e90a0623&email=marcus%40example.com

Example:"https://dashboard.flute.com/onboarding/register?invite_token=019c76de-cbd3-788d-8cb0-f829e90a0623&email=marcus%40example.com"
metadataobject or null

Indicates the key-value pairs attached to the application, as stored.

This value is null when the request sent none.

Example: {"locationId": "loc_00441"}

Example:
{ "locationId": "loc_00441" }
deliveryMethodstring

Indicates how the application link reaches the merchant, as requested.

Valid values are:

ValueMeaning
EmailFlute emails the merchant an invitation with the link.

The applicationUrl value is also returned.
IframeNothing is sent.

The partner embeds applicationUrl in an iframe on its own page.
The merchant completes and signs the application there without creating a Flute account.
PartnerDirectNothing is sent.

The partner delivers applicationUrl to the merchant.

Example: PartnerDirect

Enum:"Email""PartnerDirect""Iframe"
Example:"PartnerDirect"
createdOnstring, (date-time)

Indicates the date-time (in an ISO 8601 UTC date-time format) the application was created on.

Example: 2026-09-29T14:02:11.000Z

Example:"2026-09-29T14:02:11.000Z"
Response

Indicates every response field.

{ "applicationId": "8e3b1c5a-2f4d-4a6b-9c7e-1d2f3a4b5c6d", "applicationUrl": "https://dashboard.flute.com/onboarding/register?invite_token=019c76de-cbd3-788d-8cb0-f829e90a0623&email=marcus%40example.com", "metadata": { "locationId": "loc_00441", "crmAccount": "ACC-20931" }, "deliveryMethod": "PartnerDirect", "createdOn": "2026-09-29T14:02:11.000Z" }