Create or update underwriting details beta
Create or update the account's underwriting.
Read our underwriting guide to learn more.
To access this endpoint using an access token
you'll need to specify the /accounts/{accountID}/profile.write scope.
curl -X POST "https://api.moov.io/accounts/{accountID}/underwriting" \
-H "Authorization: Bearer {token}" \
-H "X-Moov-Version: v2026.07.00"mc, _ := moov.NewClient()
var accountID string
create := moov.UpdateUnderwriting{
AverageTransactionSize: 1_000,
MaxTransactionSize: 500,
AverageMonthlyTransactionVolume: 10_000,
VolumeByCustomerType: moov.VolumeByCustomerType{
BusinessToBusinessPercentage: 50,
ConsumerToBusinessPercentage: 50,
},
CardVolumeDistribution: moov.CardVolumeDistribution{
EcommercePercentage: 50,
CardPresentPercentage: 50,
MailOrPhonePercentage: 0,
DebtRepaymentPercentage: 0,
},
Fulfillment: moov.Fulfillment{
HasPhysicalGoods: true,
IsShippingProduct: true,
ShipmentDurationDays: 3,
ReturnPolicy: moov.WITHIN_THIRTY_DAYS,
},
}
mc.UpsertUnderwriting(ctx, accountID, create)
import { Moov } from "@moovio/sdk";
const moov = new Moov({
security: {
username: "",
password: "",
},
});
async function run() {
const result = await moov.underwriting.save({
accountID: "ffe3ca1b-de3f-4305-8d8c-cfd28f279cad",
upsertUnderwriting: {},
});
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();
$upsertUnderwriting = new Components\UpsertUnderwriting();
$response = $sdk->underwriting->save(
accountID: 'ffe3ca1b-de3f-4305-8d8c-cfd28f279cad',
upsertUnderwriting: $upsertUnderwriting
);
if ($response->underwriting !== null) {
// handle response
}package hello.world;
import io.moov.sdk.Moov;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.components.UpsertUnderwriting;
import io.moov.sdk.models.errors.GenericError;
import io.moov.sdk.models.errors.UpsertUnderwritingError;
import io.moov.sdk.models.operations.SaveUnderwritingResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws GenericError, UpsertUnderwritingError, Exception {
Moov sdk = Moov.builder()
.security(Security.builder()
.username("")
.password("")
.build())
.build();
SaveUnderwritingResponse res = sdk.underwriting().save()
.accountID("ffe3ca1b-de3f-4305-8d8c-cfd28f279cad")
.upsertUnderwriting(UpsertUnderwriting.builder()
.build())
.call();
if (res.underwriting().isPresent()) {
System.out.println(res.underwriting().get());
}
}
}from moovio_sdk import Moov
from moovio_sdk.models import components
with Moov(
security=components.Security(
username="",
password="",
),
) as moov:
res = moov.underwriting.save(account_id="ffe3ca1b-de3f-4305-8d8c-cfd28f279cad")
# Handle response
print(res)require 'moov_ruby'
Models = ::Moov::Models
s = ::Moov::Client.new(
security: Models::Components::Security.new(
username: '',
password: ''
)
)
res = s.underwriting.save(account_id: 'ffe3ca1b-de3f-4305-8d8c-cfd28f279cad', upsert_underwriting: Models::Components::UpsertUnderwriting.new)
unless res.underwriting.nil?
# handle response
endusing Moov.Sdk;
using Moov.Sdk.Models.Components;
var sdk = new MoovClient(security: new Security() {
Username = "",
Password = "",
});
var res = await sdk.Underwriting.SaveAsync(
accountID: "ffe3ca1b-de3f-4305-8d8c-cfd28f279cad",
body: new UpsertUnderwriting() {}
);
// handle response{
"averageTransactionSize": 0,
"maxTransactionSize": 0,
"averageMonthlyTransactionVolume": 0,
"status": "approved",
"volumeByCustomerType": {
"businessToBusinessPercentage": 0,
"consumerToBusinessPercentage": 0
},
"cardVolumeDistribution": {
"ecommercePercentage": 0,
"cardPresentPercentage": 0,
"mailOrPhonePercentage": 0,
"debtRepaymentPercentage": 0
},
"fulfillment": {
"hasPhysicalGoods": true,
"isShippingProduct": true,
"shipmentDurationDays": 0,
"returnPolicy": "none"
},
"geographicReach": "international-only",
"businessPresence": "commercial-office",
"pendingLitigation": "bankruptcy-or-insolvency",
"volumeShareByCustomerType": {
"business": 0,
"consumer": 0,
"p2p": 0
},
"collectFunds": {
"ach": {
"estimatedActivity": {
"averageTransactionAmount": 0,
"maximumTransactionAmount": 0,
"monthlyVolumeRange": "under-10k"
}
},
"cardPayments": {
"cardAcceptanceMethods": {
"inPersonPercentage": 0,
"mailOrPhonePercentage": 0,
"onlinePercentage": 0
},
"currentlyAcceptsCards": true,
"estimatedActivity": {
"averageTransactionAmount": 0,
"maximumTransactionAmount": 0,
"monthlyVolumeRange": "under-10k"
},
"fulfillment": {
"method": "bill-or-debt-payment",
"timeframe": "immediate"
},
"refundPolicy": "conditional-refund"
}
},
"moneyTransfer": {
"pullFromCard": {
"estimatedActivity": {
"averageTransactionAmount": 0,
"maximumTransactionAmount": 0,
"monthlyVolumeRange": "under-10k"
}
},
"pushToCard": {
"estimatedActivity": {
"averageTransactionAmount": 0,
"maximumTransactionAmount": 0,
"monthlyVolumeRange": "under-10k"
}
}
},
"sendFunds": {
"ach": {
"estimatedActivity": {
"averageTransactionAmount": 0,
"maximumTransactionAmount": 0,
"monthlyVolumeRange": "under-10k"
}
},
"pushToCard": {
"estimatedActivity": {
"averageTransactionAmount": 0,
"maximumTransactionAmount": 0,
"monthlyVolumeRange": "under-10k"
}
},
"rtp": {
"estimatedActivity": {
"averageTransactionAmount": 0,
"maximumTransactionAmount": 0,
"monthlyVolumeRange": "under-10k"
}
},
"instantBank": {
"estimatedActivity": {
"averageTransactionAmount": 0,
"maximumTransactionAmount": 0,
"monthlyVolumeRange": "under-10k"
}
},
"wire": {
"estimatedActivity": {
"averageTransactionAmount": 0,
"maximumTransactionAmount": 0,
"monthlyVolumeRange": "under-10k"
}
}
}
}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
{
"geographicReach": "string",
"businessPresence": "string",
"pendingLitigation": "string",
"volumeShareByCustomerType": {
"business": "string",
"consumer": "string",
"p2p": "string"
},
"collectFunds": {
"ach": {
"estimatedActivity": {
"averageTransactionAmount": "string",
"maximumTransactionAmount": "string",
"monthlyVolumeRange": "string"
}
},
"cardPayments": {
"cardAcceptanceMethods": {
"inPersonPercentage": "string",
"mailOrPhonePercentage": "string",
"onlinePercentage": "string"
},
"currentlyAcceptsCards": "string",
"estimatedActivity": {
"averageTransactionAmount": "string",
"maximumTransactionAmount": "string",
"monthlyVolumeRange": "string"
},
"fulfillment": {
"method": "string",
"timeframe": "string"
},
"refundPolicy": "string"
}
},
"moneyTransfer": {
"pullFromCard": {
"estimatedActivity": {
"averageTransactionAmount": "string",
"maximumTransactionAmount": "string",
"monthlyVolumeRange": "string"
}
},
"pushToCard": {
"estimatedActivity": {
"averageTransactionAmount": "string",
"maximumTransactionAmount": "string",
"monthlyVolumeRange": "string"
}
}
},
"sendFunds": {
"ach": {
"estimatedActivity": {
"averageTransactionAmount": "string",
"maximumTransactionAmount": "string",
"monthlyVolumeRange": "string"
}
},
"pushToCard": {
"estimatedActivity": {
"averageTransactionAmount": "string",
"maximumTransactionAmount": "string",
"monthlyVolumeRange": "string"
}
},
"rtp": {
"estimatedActivity": {
"averageTransactionAmount": "string",
"maximumTransactionAmount": "string",
"monthlyVolumeRange": "string"
}
},
"instantBank": {
"estimatedActivity": {
"averageTransactionAmount": "string",
"maximumTransactionAmount": "string",
"monthlyVolumeRange": "string"
}
},
"wire": {
"estimatedActivity": {
"averageTransactionAmount": "string",
"maximumTransactionAmount": "string",
"monthlyVolumeRange": "string"
}
}
},
"averageMonthlyTransactionVolume": "string",
"error": "string",
"averageTransactionSize": "string",
"maxTransactionSize": "string",
"volumeByCustomerType": {
"businessToBusinessPercentage": "string",
"consumerToBusinessPercentage": "string"
},
"cardVolumeDistribution": {
"ecommercePercentage": "string",
"cardPresentPercentage": "string",
"mailOrPhonePercentage": "string",
"debtRepaymentPercentage": "string"
},
"fulfillment": {
"shipmentDurationDays": "string",
"returnPolicy": "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
Headers
X-Moov-Version
string
v2026.08.00 uses v2026.07.00.
A malformed value, such as 2022, returns a 404 response.
v2026.07.00
Path parameters
accountID
string
required
Body
businessPresence
string<enum>
commercial-office,
home-based,
mixed-presence,
mobile-business,
online-only,
retail-storefront
collectFunds
object
Show child attributes
collectFunds
ach
object
Show child attributes
collectFunds.ach
estimatedActivity
object
Show child attributes
collectFunds.ach.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
cardPayments
object
Show child attributes
collectFunds.cardPayments
cardAcceptanceMethods
object
Show child attributes
collectFunds.cardPayments.cardAcceptanceMethods
inPersonPercentage
integer<int32>
mailOrPhonePercentage
integer<int32>
onlinePercentage
integer<int32>
currentlyAcceptsCards
boolean
estimatedActivity
object
Show child attributes
collectFunds.cardPayments.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
fulfillment
object
Show child attributes
collectFunds.cardPayments.fulfillment
method
string<enum>
bill-or-debt-payment,
digital-content,
donation,
in-person-service,
local-pickup-or-delivery,
other,
remote-service,
shipped-physical-goods,
subscription-or-membership
timeframe
string<enum>
immediate,
other,
over-30-days,
pre-order,
recurring-schedule,
scheduled-event,
within-30-days,
within-7-days
refundPolicy
string<enum>
conditional-refund,
custom-policy,
event-based-policy,
full-refund-extended-window,
full-refund-within-30-days,
no-refunds,
partial-refund,
prorated-refund,
store-credit-only
geographicReach
string<enum>
international-only,
us-and-international,
us-only
moneyTransfer
object
Show child attributes
moneyTransfer
pullFromCard
object
Show child attributes
moneyTransfer.pullFromCard
estimatedActivity
object
Show child attributes
moneyTransfer.pullFromCard.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
pushToCard
object
Show child attributes
moneyTransfer.pushToCard
estimatedActivity
object
Show child attributes
moneyTransfer.pushToCard.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
pendingLitigation
string<enum>
bankruptcy-or-insolvency,
consumer-protection-or-class-action,
data-breach-or-privacy,
employment-or-workplace-disputes,
fraud-or-financial-crime,
government-enforcement-or-investigation,
intellectual-property,
none,
other,
personal-injury-or-medical
sendFunds
object
Show child attributes
sendFunds
ach
object
Show child attributes
sendFunds.ach
estimatedActivity
object
Show child attributes
sendFunds.ach.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
instantBank
object
Show child attributes
sendFunds.instantBank
estimatedActivity
object
Show child attributes
sendFunds.instantBank.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
pushToCard
object
Show child attributes
sendFunds.pushToCard
estimatedActivity
object
Show child attributes
sendFunds.pushToCard.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
rtp
object
Show child attributes
sendFunds.rtp
estimatedActivity
object
Show child attributes
sendFunds.rtp.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
wire
object
Show child attributes
sendFunds.wire
estimatedActivity
object
Show child attributes
sendFunds.wire.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
submissionIntent
string
submissionIntent. Set it to wait to pause the account's underwriting approval process until you send a subsequent request with submissionIntent set to submit.
wait,
submit
volumeShareByCustomerType
object
Show child attributes
volumeShareByCustomerType
business
integer<int32>
consumer
integer<int32>
p2p
integer<int32>
Response
averageMonthlyTransactionVolume
integer<int64>
averageTransactionSize
integer<int64>
businessPresence
string<enum>
commercial-office,
home-based,
mixed-presence,
mobile-business,
online-only,
retail-storefront
cardVolumeDistribution
object
Show child attributes
cardVolumeDistribution
cardPresentPercentage
integer<int32>
required
debtRepaymentPercentage
integer<int32>
required
ecommercePercentage
integer<int32>
required
mailOrPhonePercentage
integer<int32>
required
collectFunds
object
Show child attributes
collectFunds
ach
object
Show child attributes
collectFunds.ach
estimatedActivity
object
Show child attributes
collectFunds.ach.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
cardPayments
object
Show child attributes
collectFunds.cardPayments
cardAcceptanceMethods
object
Show child attributes
collectFunds.cardPayments.cardAcceptanceMethods
inPersonPercentage
integer<int32>
mailOrPhonePercentage
integer<int32>
onlinePercentage
integer<int32>
currentlyAcceptsCards
boolean
estimatedActivity
object
Show child attributes
collectFunds.cardPayments.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
fulfillment
object
Show child attributes
collectFunds.cardPayments.fulfillment
method
string<enum>
bill-or-debt-payment,
digital-content,
donation,
in-person-service,
local-pickup-or-delivery,
other,
remote-service,
shipped-physical-goods,
subscription-or-membership
timeframe
string<enum>
immediate,
other,
over-30-days,
pre-order,
recurring-schedule,
scheduled-event,
within-30-days,
within-7-days
refundPolicy
string<enum>
conditional-refund,
custom-policy,
event-based-policy,
full-refund-extended-window,
full-refund-within-30-days,
no-refunds,
partial-refund,
prorated-refund,
store-credit-only
fulfillment
object
Show child attributes
fulfillment
hasPhysicalGoods
boolean
required
isShippingProduct
boolean
required
returnPolicy
string<enum>
required
none,
exchangeOnly,
withinThirtyDays,
other
shipmentDurationDays
integer<int64>
required
geographicReach
string<enum>
international-only,
us-and-international,
us-only
maxTransactionSize
integer<int64>
moneyTransfer
object
Show child attributes
moneyTransfer
pullFromCard
object
Show child attributes
moneyTransfer.pullFromCard
estimatedActivity
object
Show child attributes
moneyTransfer.pullFromCard.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
pushToCard
object
Show child attributes
moneyTransfer.pushToCard
estimatedActivity
object
Show child attributes
moneyTransfer.pushToCard.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
pendingLitigation
string<enum>
bankruptcy-or-insolvency,
consumer-protection-or-class-action,
data-breach-or-privacy,
employment-or-workplace-disputes,
fraud-or-financial-crime,
government-enforcement-or-investigation,
intellectual-property,
none,
other,
personal-injury-or-medical
sendFunds
object
Show child attributes
sendFunds
ach
object
Show child attributes
sendFunds.ach
estimatedActivity
object
Show child attributes
sendFunds.ach.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
instantBank
object
Show child attributes
sendFunds.instantBank
estimatedActivity
object
Show child attributes
sendFunds.instantBank.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
pushToCard
object
Show child attributes
sendFunds.pushToCard
estimatedActivity
object
Show child attributes
sendFunds.pushToCard.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
rtp
object
Show child attributes
sendFunds.rtp
estimatedActivity
object
Show child attributes
sendFunds.rtp.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
wire
object
Show child attributes
sendFunds.wire
estimatedActivity
object
Show child attributes
sendFunds.wire.estimatedActivity
averageTransactionAmount
integer<int64>
maximumTransactionAmount
integer<int64>
monthlyVolumeRange
string<enum>
under-10k,
10k-50k,
50k-100k,
100k-250k,
250k-500k,
500k-1m,
1m-5m,
over-5m
status
string<enum>
deprecated
approved,
rejected,
pendingReview,
pending,
notRequested
volumeByCustomerType
object
Show child attributes
volumeByCustomerType
businessToBusinessPercentage
integer<int32>
required
consumerToBusinessPercentage
integer<int32>
required
volumeShareByCustomerType
object
Show child attributes
volumeShareByCustomerType
business
integer<int32>
consumer
integer<int32>
p2p
integer<int32>