Update underwriting details (sunsetting)
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.
PUT
/accounts/{accountID}/underwriting
mc, _ := moov.NewClient()
var accountID string
update := moov.UpdateUnderwriting{
AverageTransactionSize: 1_500,
MaxTransactionSize: 1_200,
AverageMonthlyTransactionVolume: 11_000,
VolumeByCustomerType: moov.VolumeByCustomerType{
BusinessToBusinessPercentage: 60,
ConsumerToBusinessPercentage: 40,
},
CardVolumeDistribution: moov.CardVolumeDistribution{
EcommercePercentage: 60,
CardPresentPercentage: 40,
MailOrPhonePercentage: 0,
DebtRepaymentPercentage: 0,
},
Fulfillment: moov.Fulfillment{
HasPhysicalGoods: true,
IsShippingProduct: true,
ShipmentDurationDays: 3,
ReturnPolicy: moov.EXCHANGE_ONLY,
},
}
mc.UpsertUnderwriting(ctx, accountID, update)
import { SDK } from "openapi";
const sdk = new SDK({
xMoovVersion: "v2024.01.00",
});
async function run() {
const result = await sdk.underwriting.upsert({
accountID: "371bf394-45df-4ba8-a615-ad5483b1f963",
updateUnderwriting: {
averageTransactionSize: 622191,
maxTransactionSize: 123692,
averageMonthlyTransactionVolume: 438164,
volumeByCustomerType: {
businessToBusinessPercentage: 671399,
consumerToBusinessPercentage: 482010,
},
cardVolumeDistribution: {
ecommercePercentage: 47450,
cardPresentPercentage: 146275,
mailOrPhonePercentage: 309315,
debtRepaymentPercentage: 990303,
},
fulfillment: {
hasPhysicalGoods: true,
isShippingProduct: true,
shipmentDurationDays: 388451,
returnPolicy: "other",
},
},
});
console.log(result);
}
run();declare(strict_types=1);
require 'vendor/autoload.php';
use OpenAPI\OpenAPI;
use OpenAPI\OpenAPI\Models\Components;
$sdk = OpenAPI\SDK::builder()
->setXMoovVersion('v2024.01.00')
->build();
$updateUnderwriting = new Components\UpdateUnderwriting(
averageTransactionSize: 622191,
maxTransactionSize: 123692,
averageMonthlyTransactionVolume: 438164,
volumeByCustomerType: new Components\VolumeByCustomerType(
businessToBusinessPercentage: 671399,
consumerToBusinessPercentage: 482010,
),
cardVolumeDistribution: new Components\CardVolumeDistribution(
ecommercePercentage: 47450,
cardPresentPercentage: 146275,
mailOrPhonePercentage: 309315,
debtRepaymentPercentage: 990303,
),
fulfillment: new Components\FulfillmentDetails(
hasPhysicalGoods: true,
isShippingProduct: true,
shipmentDurationDays: 388451,
returnPolicy: Components\ReturnPolicyType::Other,
),
);
$response = $sdk->underwriting->upsert(
accountID: '371bf394-45df-4ba8-a615-ad5483b1f963',
updateUnderwriting: $updateUnderwriting
);
if ($response->underwriting !== null) {
// handle response
}from openapi import SDK
with SDK(
x_moov_version="v2024.01.00",
) as sdk:
res = sdk.underwriting.upsert(account_id="371bf394-45df-4ba8-a615-ad5483b1f963", average_transaction_size=622191, max_transaction_size=123692, average_monthly_transaction_volume=438164, volume_by_customer_type={
"business_to_business_percentage": 671399,
"consumer_to_business_percentage": 482010,
}, card_volume_distribution={
"ecommerce_percentage": 47450,
"card_present_percentage": 146275,
"mail_or_phone_percentage": 309315,
"debt_repayment_percentage": 990303,
}, fulfillment={
"has_physical_goods": True,
"is_shipping_product": True,
"shipment_duration_days": 388451,
"return_policy": "other",
})
# Handle response
print(res)package hello.world;
import java.lang.Exception;
import org.openapis.openapi.SDK;
import org.openapis.openapi.models.components.*;
import org.openapis.openapi.models.errors.GenericError;
import org.openapis.openapi.models.errors.UpdateUnderwritingError;
import org.openapis.openapi.models.operations.UpsertUnderwritingResponse;
public class Application {
public static void main(String[] args) throws GenericError, UpdateUnderwritingError, Exception {
SDK sdk = SDK.builder()
.xMoovVersion("v2024.01.00")
.build();
UpsertUnderwritingResponse res = sdk.underwriting().upsert()
.accountID("371bf394-45df-4ba8-a615-ad5483b1f963")
.updateUnderwriting(UpdateUnderwriting.builder()
.averageTransactionSize(622191L)
.maxTransactionSize(123692L)
.averageMonthlyTransactionVolume(438164L)
.volumeByCustomerType(VolumeByCustomerType.builder()
.businessToBusinessPercentage(671399)
.consumerToBusinessPercentage(482010)
.build())
.cardVolumeDistribution(CardVolumeDistribution.builder()
.ecommercePercentage(47450)
.cardPresentPercentage(146275)
.mailOrPhonePercentage(309315)
.debtRepaymentPercentage(990303)
.build())
.fulfillment(FulfillmentDetails.builder()
.hasPhysicalGoods(true)
.isShippingProduct(true)
.shipmentDurationDays(388451L)
.returnPolicy(ReturnPolicyType.OTHER)
.build())
.build())
.call();
if (res.underwriting().isPresent()) {
// handle response
}
}
}require 'openapi'
Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::SDK.new(
x_moov_version: 'v2024.01.00',
)
res = s.underwriting.upsert(account_id: '371bf394-45df-4ba8-a615-ad5483b1f963', update_underwriting: Models::Components::UpdateUnderwriting.new(
average_transaction_size: 622_191,
max_transaction_size: 123_692,
average_monthly_transaction_volume: 438_164,
volume_by_customer_type: Models::Components::VolumeByCustomerType.new(
business_to_business_percentage: 671_399,
consumer_to_business_percentage: 482_010,
),
card_volume_distribution: Models::Components::CardVolumeDistribution.new(
ecommerce_percentage: 47_450,
card_present_percentage: 146_275,
mail_or_phone_percentage: 309_315,
debt_repayment_percentage: 990_303,
),
fulfillment: Models::Components::FulfillmentDetails.new(
has_physical_goods: true,
is_shipping_product: true,
shipment_duration_days: 388_451,
return_policy: Models::Components::ReturnPolicyType::OTHER,
),
))
unless res.underwriting.nil?
# handle response
endThe request completed successfully.
Describes underwriting values (in USD) used for card payment acceptance.
{
"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"
}
}
}
}Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The server could not understand the request due to invalid syntax.
{
"error": "string"
}Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The request contained missing or expired authentication.
Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The user is not authorized to make the request.
Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The requested resource was not found.
Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The request conflicted with the current state of the target resource.
{
"error": "string"
}Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.
{
"error": {
"averageMonthlyTransactionVolume": "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
A unique identifier used to trace requests.
Request was refused due to rate limiting.
Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The request failed due to an unexpected error.
Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The request failed because a downstream service failed to respond.
Response headers
x-request-id
string
required
A unique identifier used to trace requests.
Headers
X-Moov-Version
string
Specify an API version.
API versioning follows the format vYYYY.QQ.BB, where
YYYYis the yearQQis the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)BBis the build number, starting at.01, for subsequent builds in the same quarter.- For example,
v2024.01.00is the initial release of the first quarter of 2024.
- For example,
The dev version represents the most recent development state. It may include breaking changes and should be treated as a beta release.
When no version is specified, the API defaults to v2024.01.00.
Path parameters
accountID
string
required
Body
application/json
averageMonthlyTransactionVolume
integer<int64>
required
averageTransactionSize
integer<int64>
required
cardVolumeDistribution
object
required
Show child attributes
cardPresentPercentage
integer<int32>
required
debtRepaymentPercentage
integer<int32>
required
ecommercePercentage
integer<int32>
required
mailOrPhonePercentage
integer<int32>
required
fulfillment
object
required
Show child attributes
hasPhysicalGoods
boolean
required
isShippingProduct
boolean
required
returnPolicy
string<enum>
required
Possible values:
none,
exchangeOnly,
withinThirtyDays,
other
shipmentDurationDays
integer<int64>
required
maxTransactionSize
integer<int64>
required
volumeByCustomerType
object
required
Show child attributes
businessToBusinessPercentage
integer<int32>
required
consumerToBusinessPercentage
integer<int32>
required
Response
averageMonthlyTransactionVolume
integer<int64>
required
averageTransactionSize
integer<int64>
required
cardVolumeDistribution
object
required
Show child attributes
cardPresentPercentage
integer<int32>
required
debtRepaymentPercentage
integer<int32>
required
ecommercePercentage
integer<int32>
required
mailOrPhonePercentage
integer<int32>
required
fulfillment
object
required
Show child attributes
hasPhysicalGoods
boolean
required
isShippingProduct
boolean
required
returnPolicy
string<enum>
required
Possible values:
none,
exchangeOnly,
withinThirtyDays,
other
shipmentDurationDays
integer<int64>
required
maxTransactionSize
integer<int64>
required
status
string<enum>
required
deprecated
Possible values:
approved,
rejected,
pendingReview,
pending,
notRequested
volumeByCustomerType
object
required
Show child attributes
businessToBusinessPercentage
integer<int32>
required
consumerToBusinessPercentage
integer<int32>
required