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-submittedis posted when the merchant submits the application.arise:application-signedis 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.
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.
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.
Merchant application details.
Specifies how the application link reaches the merchant.
Valid values are:
| Value | Meaning |
|---|---|
| Flute emails the merchant an invitation with the link. The applicationUrl value is also returned. | |
| Iframe | Nothing 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. |
| PartnerDirect | Nothing is sent. The partner delivers applicationUrl to the merchant. |
Example: Email
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
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
Specifies the payment processor to board the merchant with.
The relationship manager provides the identifier. The value must be greater than zero.
Example: 1
Specifies the Schedule A (pricing schedule) assigned to the application.
The value must be one of the partner user's Schedule A identifiers.
To list them, see GET /v2/users/{{userId}}/schedule-as.
Example: b7e2f7a0-4c1a-4e7d-9b2f-1a2b3c4d5e6f
Specifies the residual Split Profile assigned to the application.
The value must be one of the partner user's Split Profile identifiers.
To list them, see GET /v2/users/{{userId}}/split-profiles.
Example: c8f3a8b1-5d2b-4f8e-8c3a-2b3c4d5e6f70
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"]
[ "d9a4b9c2-6e3c-4a9f-9d4b-3c4d5e6f7081" ]
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"}
{ "locationId": "loc_00441" }
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
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
Specifies the ACH processor to enroll the merchant with.
Omit this value if the merchant does not need ACH processing.
Valid values are:
| Value | Meaning |
|---|---|
| Straddle | The Straddle ACH processor. |
Example: Straddle
- Sandbox environmenthttps://sandbox.api.flute.com/v2/applications
- Production environmenthttps://api.flute.com/v2/applications
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
}OK
Indicates the application identifier.
This is the same identifier GET /v2/applications returns.
Example: 8e3b1c5a-2f4d-4a6b-9c7e-1d2f3a4b5c6d
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
Indicates the key-value pairs attached to the application, as stored.
This value is null when the request sent none.
Example: {"locationId": "loc_00441"}
{ "locationId": "loc_00441" }
Indicates how the application link reaches the merchant, as requested.
Valid values are:
| Value | Meaning |
|---|---|
| Flute emails the merchant an invitation with the link. The applicationUrl value is also returned. | |
| Iframe | Nothing 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. |
| PartnerDirect | Nothing is sent. The partner delivers applicationUrl to the merchant. |
Example: PartnerDirect
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" }