# Create or update underwriting details    beta

Create or update the account's underwriting.

Read our [underwriting guide](https://docs.moov.io/guides/accounts/requirements/underwriting/) to learn more.

To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/profile.write` scope.

## Request

POST

/accounts/{accountID}/underwriting

### Example cURL Command

```shell
curl -X POST "https://api.moov.io/accounts/{accountID}/underwriting" \
  -H "Authorization: Bearer {token}" \
  -H "X-Moov-Version: v2026.07.00"
```

### Go Example

```go
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)
```

### TypeScript Example

```typescript
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();
```

### PHP Example

```php
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
}
```

### Java Example

```java
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());
        }
    }
}
```

### Python Example

```python
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)
```

### Ruby Example

```ruby
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
end
```

### C# Example

```csharp
using 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
```

## Example Response

Describes underwriting values (in USD) used for card payment acceptance.

```json
{
  "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"
      }
    }
  }
}
```

### Example Error Responses

```json
{
  "error": "string"
}
```
