Create onboarding invite
Create an invitation containing a unique link that allows the recipient to onboard their organization with Moov.
To access this endpoint using an access token
you'll need to specify the /accounts.write scope.
curl -X POST "https://api.moov.io/onboarding-invites" \
-H "Authorization: Bearer {token}" \
-H "X-Moov-Version: v2026.04.00" \
-d '{
"scopes": [
"accounts.read"
],
"capabilities": [
"collect-funds.card-payments",
"send-funds.ach"
],
"feePlanCodes": [
"merchant-direct"
]
}'import { Moov } from "@moovio/sdk";
const moov = new Moov({
security: {
username: "",
password: "",
},
});
async function run() {
const result = await moov.onboarding.createInvite({
scopes: [
"accounts.read",
],
grantScopes: [
"transfers.write",
],
capabilities: [
"transfers",
],
feePlanCodes: [
"merchant-direct",
],
prefill: {
accountType: "business",
profile: {
business: {
legalBusinessName: "Whole Body Fitness LLC",
},
},
},
});
console.log(result);
}
run();declare(strict_types=1);
require 'vendor/autoload.php';
use Moov\MoovPhp;
use Moov\MoovPhp\Models\Components;
$sdk = MoovPhp\Moov::builder()
->setSecurity(
new Components\Security(
username: '',
password: '',
)
)
->build();
$request = new Components\OnboardingInviteRequest(
scopes: [
Components\ApplicationScope::AccountsRead,
],
grantScopes: [
Components\ApplicationScope::TransfersWrite,
],
capabilities: [
Components\CapabilityID::Transfers,
],
feePlanCodes: [
'merchant-direct',
],
prefill: new Components\CreateAccount(
accountType: Components\CreateAccountType::Business,
profile: new Components\CreateProfile(
business: new Components\CreateBusinessProfile(
legalBusinessName: 'Whole Body Fitness LLC',
),
),
),
);
$response = $sdk->onboardingInvites->create(
request: $request
);
if ($response->onboardingInvite !== null) {
// handle response
}package hello.world;
import io.moov.sdk.Moov;
import io.moov.sdk.models.components.*;
import io.moov.sdk.models.errors.GenericError;
import io.moov.sdk.models.errors.OnboardingInviteError;
import io.moov.sdk.models.operations.CreateOnboardingInviteResponse;
import java.lang.Exception;
import java.util.List;
public class Application {
public static void main(String[] args) throws GenericError, OnboardingInviteError, Exception {
Moov sdk = Moov.builder()
.security(Security.builder()
.username("")
.password("")
.build())
.build();
OnboardingInviteRequest req = OnboardingInviteRequest.builder()
.scopes(List.of(
ApplicationScope.ACCOUNTS_READ))
.capabilities(List.of(
CapabilityID.TRANSFERS))
.feePlanCodes(List.of(
"merchant-direct"))
.grantScopes(List.of(
ApplicationScope.TRANSFERS_WRITE))
.prefill(CreateAccount.builder()
.accountType(CreateAccountType.BUSINESS)
.profile(CreateProfile.builder()
.business(CreateBusinessProfile.builder()
.legalBusinessName("Whole Body Fitness LLC")
.build())
.build())
.build())
.build();
CreateOnboardingInviteResponse res = sdk.onboarding().createInvite()
.request(req)
.call();
if (res.onboardingInvite().isPresent()) {
System.out.println(res.onboardingInvite().get());
}
}
}from moovio_sdk import Moov
from moovio_sdk.models import components
with Moov(
security=components.Security(
username="",
password="",
),
) as moov:
res = moov.onboarding.create_invite(scopes=[
components.ApplicationScope.ACCOUNTS_READ,
], capabilities=[
components.CapabilityID.TRANSFERS,
], fee_plan_codes=[
"merchant-direct",
], grant_scopes=[
components.ApplicationScope.TRANSFERS_WRITE,
], prefill=components.CreateAccount(
account_type=components.CreateAccountType.BUSINESS,
profile=components.CreateProfile(
business=components.CreateBusinessProfile(
legal_business_name="Whole Body Fitness LLC",
),
),
))
# Handle response
print(res)require 'moov_ruby'
Models = ::Moov::Models
s = ::Moov::Client.new(
security: Models::Components::Security.new(
username: '',
password: ''
)
)
req = Models::Components::OnboardingInviteRequest.new(
scopes: [
Models::Components::ApplicationScope::ACCOUNTS_READ,
],
grant_scopes: [
Models::Components::ApplicationScope::TRANSFERS_WRITE,
],
capabilities: [
Models::Components::CapabilityID::TRANSFERS,
],
fee_plan_codes: [
'merchant-direct',
],
prefill: Models::Components::CreateAccount.new(
account_type: Models::Components::CreateAccountType::BUSINESS,
profile: Models::Components::CreateProfile.new(
business: Models::Components::CreateBusinessProfile.new(
legal_business_name: 'Whole Body Fitness LLC'
)
)
)
)
res = s.onboarding.create_invite(request: req)
unless res.onboarding_invite.nil?
# handle response
endusing Moov.Sdk;
using Moov.Sdk.Models.Components;
using System.Collections.Generic;
var sdk = new MoovClient(security: new Security() {
Username = "",
Password = "",
});
OnboardingInviteRequest req = new OnboardingInviteRequest() {
Scopes = new List<ApplicationScope>() {
ApplicationScope.AccountsRead,
},
GrantScopes = new List<ApplicationScope>() {
ApplicationScope.TransfersWrite,
},
Capabilities = new List<CapabilityID>() {
CapabilityID.Transfers,
},
FeePlanCodes = new List<string>() {
"merchant-direct",
},
Prefill = new CreateAccount() {
AccountType = CreateAccountType.Business,
Profile = new CreateProfile() {
Business = new CreateBusinessProfile() {
LegalBusinessName = "Whole Body Fitness LLC",
},
},
},
};
var res = await sdk.Onboarding.CreateInviteAsync(req);
// handle response{
"code": "N1IA5eWYNh",
"link": "http://example.com",
"returnURL": "string",
"termsOfServiceURL": "string",
"scopes": [
"accounts.read"
],
"grantScopes": [
"transfers.write"
],
"capabilities": [
"collect-funds.card-payments",
"send-funds.ach"
],
"feePlanCodes": [
"merchant-direct"
],
"redeemedAccountID": "string",
"prefill": {
"accountType": "business",
"profile": {
"business": {
"legalBusinessName": "Whole Body Fitness LLC"
}
}
},
"partner": {
"accountID": "string",
"accountMode": "production",
"displayName": "Bob's Widgets"
},
"createdOn": "2019-08-24T14:15:22Z",
"revokedOn": "2019-08-24T14:15:22Z",
"redeemedOn": "2019-08-24T14:15:22Z"
}Response headers
x-request-id
string
required
{
"error": "string"
}Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
{
"error": "string"
}Response headers
x-request-id
string
required
{
"returnURL": "string",
"termsOfServiceURL": "string",
"scopes": {
"0": "first element failed validation..."
},
"capabilities": {
"0": "first element failed validation..."
},
"feePlanCodes": {
"0": "first element failed validation..."
}
}Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Headers
X-Moov-Version
string
v2026.04.00
Body
capabilities
array<string>
required
transfers,
send-funds,
send-funds.push-to-card,
money-transfer.push-to-card,
send-funds.ach,
send-funds.rtp,
send-funds.instant-bank,
collect-funds,
collect-funds.card-payments,
money-transfer.pull-from-card,
collect-funds.ach,
wallet,
wallet.balance,
card-issuing,
platform.production-app,
platform.wallet-transfers
feePlanCodes
array<string>
required
scopes
array<string>
required
accounts.read,
accounts.write,
analytics.read,
apple-pay-merchant.read,
apple-pay-merchant.write,
apple-pay.read,
apple-pay.write,
bank-accounts.read,
bank-accounts.write,
capabilities.read,
capabilities.write,
cards.read,
cards.write,
documents.read,
documents.write,
fed.read,
files.read,
files.write,
issued-cards.read,
issued-cards.write,
issued-cards.read-secure,
payment-methods.read,
ping.read,
profile-enrichment.read,
profile.read,
profile.write,
profile.disconnect,
representatives.read,
representatives.write,
transfers.read,
transfers.write,
wallets.read
grantScopes
array<string>
accounts.read,
accounts.write,
analytics.read,
apple-pay-merchant.read,
apple-pay-merchant.write,
apple-pay.read,
apple-pay.write,
bank-accounts.read,
bank-accounts.write,
capabilities.read,
capabilities.write,
cards.read,
cards.write,
documents.read,
documents.write,
fed.read,
files.read,
files.write,
issued-cards.read,
issued-cards.write,
issued-cards.read-secure,
payment-methods.read,
ping.read,
profile-enrichment.read,
profile.read,
profile.write,
profile.disconnect,
representatives.read,
representatives.write,
transfers.read,
transfers.write,
wallets.read
prefill
object
Show child attributes
accountType
string<enum>
required
individual,
business
profile
object
required
Show child attributes
business
object
Show child attributes
legalBusinessName
string
<=64 characters
required
Pattern
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
businessType
string<enum>
soleProprietorship,
unincorporatedAssociation,
trust,
publicCorporation,
privateCorporation,
llc,
partnership,
unincorporatedNonProfit,
incorporatedNonProfit,
governmentEntity
description
string
[10 to 100] characters
Pattern
doingBusinessAs
string
<=64 characters
Pattern
string<email>
<=255 characters
industry
string
industryCodes
object
Show child attributes
mcc
string
4 characters
naics
string
[2 to 6] characters
sic
string
4 characters
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
primaryRegulator
string<enum>
OCC,
FDIC,
NCUA,
FRB,
state-cu-regulator
taxID
object
Show child attributes
ein
object
required
Show child attributes
number
string
required
website
string<uri>
<=100 characters
individual
object
Show child attributes
name
object
required
Show child attributes
firstName
string
<=64 characters
required
Pattern
lastName
string
<=64 characters
required
Pattern
middleName
string
<=64 characters
Pattern
suffix
string
<=20 characters
Pattern
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
birthDate
object
Show child attributes
day
integer
required
month
integer
required
year
integer
required
string<email>
<=255 characters
governmentID
object
Show child attributes
itin
object
Show child attributes
full
string
Pattern
lastFour
string
ssn
object
Show child attributes
full
string
Pattern
lastFour
string
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
capabilities
array<string>
Capabilities to request when the account is created. Request granular capability IDs that match your use case.
Read our capabilities reference to choose the right capabilities for your integration.
The send-funds, collect-funds, and wallet capability IDs are deprecated. Use granular values such as send-funds.ach, collect-funds.card-payments, or wallet.balance instead.
transfers,
send-funds,
send-funds.push-to-card,
money-transfer.push-to-card,
send-funds.ach,
send-funds.rtp,
send-funds.instant-bank,
collect-funds,
collect-funds.card-payments,
money-transfer.pull-from-card,
collect-funds.ach,
wallet,
wallet.balance,
card-issuing,
platform.production-app,
platform.wallet-transfers
customerSupport
object
Show child attributes
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
string<email>
<=255 characters
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
website
string<uri>
foreignID
string
<=64 characters
Pattern
metadata
object
mode
string<enum>
sandbox,
production
settings
object
Show child attributes
achPayment
object
Show child attributes
companyName
string
[1 to 16] characters
required
Pattern
cardPayment
object
Show child attributes
statementDescriptor
string
[4 to 22] characters
Pattern
termsOfService
object
Show child attributes
manual
object
Show child attributes
acceptedDate
string<date-time>
required
acceptedDomain
string<uri>
required
acceptedIP
string<ipv4>
required
acceptedUserAgent
string
<=255 characters
required
token
string
returnURL
string<uri>
termsOfServiceURL
string<uri>
Response
capabilities
array<string>
required
transfers,
send-funds,
send-funds.push-to-card,
money-transfer.push-to-card,
send-funds.ach,
send-funds.rtp,
send-funds.instant-bank,
collect-funds,
collect-funds.card-payments,
money-transfer.pull-from-card,
collect-funds.ach,
wallet,
wallet.balance,
card-issuing,
platform.production-app,
platform.wallet-transfers
code
string
required
createdOn
string<date-time>
required
feePlanCodes
array<string>
required
link
string<uri>
required
scopes
array<string>
required
accounts.read,
accounts.write,
analytics.read,
apple-pay-merchant.read,
apple-pay-merchant.write,
apple-pay.read,
apple-pay.write,
bank-accounts.read,
bank-accounts.write,
capabilities.read,
capabilities.write,
cards.read,
cards.write,
documents.read,
documents.write,
fed.read,
files.read,
files.write,
issued-cards.read,
issued-cards.write,
issued-cards.read-secure,
payment-methods.read,
ping.read,
profile-enrichment.read,
profile.read,
profile.write,
profile.disconnect,
representatives.read,
representatives.write,
transfers.read,
transfers.write,
wallets.read
grantScopes
array<string>
accounts.read,
accounts.write,
analytics.read,
apple-pay-merchant.read,
apple-pay-merchant.write,
apple-pay.read,
apple-pay.write,
bank-accounts.read,
bank-accounts.write,
capabilities.read,
capabilities.write,
cards.read,
cards.write,
documents.read,
documents.write,
fed.read,
files.read,
files.write,
issued-cards.read,
issued-cards.write,
issued-cards.read-secure,
payment-methods.read,
ping.read,
profile-enrichment.read,
profile.read,
profile.write,
profile.disconnect,
representatives.read,
representatives.write,
transfers.read,
transfers.write,
wallets.read
partner
object
Show child attributes
accountID
string
required
accountMode
string<enum>
required
sandbox,
production
displayName
string
required
prefill
object
Show child attributes
accountType
string<enum>
required
individual,
business
profile
object
required
Show child attributes
business
object
Show child attributes
legalBusinessName
string
<=64 characters
required
Pattern
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
businessType
string<enum>
soleProprietorship,
unincorporatedAssociation,
trust,
publicCorporation,
privateCorporation,
llc,
partnership,
unincorporatedNonProfit,
incorporatedNonProfit,
governmentEntity
description
string
[10 to 100] characters
Pattern
doingBusinessAs
string
<=64 characters
Pattern
string<email>
<=255 characters
industry
string
industryCodes
object
Show child attributes
mcc
string
4 characters
naics
string
[2 to 6] characters
sic
string
4 characters
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
primaryRegulator
string<enum>
OCC,
FDIC,
NCUA,
FRB,
state-cu-regulator
taxID
object
Show child attributes
ein
object
required
Show child attributes
number
string
required
website
string<uri>
<=100 characters
individual
object
Show child attributes
name
object
required
Show child attributes
firstName
string
<=64 characters
required
Pattern
lastName
string
<=64 characters
required
Pattern
middleName
string
<=64 characters
Pattern
suffix
string
<=20 characters
Pattern
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
birthDate
object
Show child attributes
day
integer
required
month
integer
required
year
integer
required
string<email>
<=255 characters
governmentID
object
Show child attributes
itin
object
Show child attributes
full
string
Pattern
lastFour
string
ssn
object
Show child attributes
full
string
Pattern
lastFour
string
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
capabilities
array<string>
Capabilities to request when the account is created. Request granular capability IDs that match your use case.
Read our capabilities reference to choose the right capabilities for your integration.
The send-funds, collect-funds, and wallet capability IDs are deprecated. Use granular values such as send-funds.ach, collect-funds.card-payments, or wallet.balance instead.
transfers,
send-funds,
send-funds.push-to-card,
money-transfer.push-to-card,
send-funds.ach,
send-funds.rtp,
send-funds.instant-bank,
collect-funds,
collect-funds.card-payments,
money-transfer.pull-from-card,
collect-funds.ach,
wallet,
wallet.balance,
card-issuing,
platform.production-app,
platform.wallet-transfers
customerSupport
object
Show child attributes
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
string<email>
<=255 characters
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
website
string<uri>
foreignID
string
<=64 characters
Pattern
metadata
object
mode
string<enum>
sandbox,
production
settings
object
Show child attributes
achPayment
object
Show child attributes
companyName
string
[1 to 16] characters
required
Pattern
cardPayment
object
Show child attributes
statementDescriptor
string
[4 to 22] characters
Pattern
termsOfService
object
Show child attributes
manual
object
Show child attributes
acceptedDate
string<date-time>
required
acceptedDomain
string<uri>
required
acceptedIP
string<ipv4>
required
acceptedUserAgent
string
<=255 characters
required
token
string
redeemedAccountID
string
redeemedOn
string<date-time>
returnURL
string
revokedOn
string<date-time>
termsOfServiceURL
string