Update transfer configuration | Moov Documentation

Update transfer configuration

Update the transfer config for an account.

PUT

/accounts/{accountID}/transfer-config

Ask

curl -X PUT "https://api.moov.io/accounts/{accountID}/transfer-config" \
  -H "Authorization: Bearer {token}" \
  -H "X-Moov-Version: v2026.07.00" \
  -d '{\
    "tipPresets": {\
      "fixedAmountOptions": [\
        {\
          "currency": "USD",\
          "valueDecimal": "5.00"\
        },\
        {\
          "currency": "USD",\
          "valueDecimal": "10.00"\
        },\
        {\
          "currency": "USD",\
          "valueDecimal": "15.00"\
        }\
      ]\
    }\
  }'

Ask

mc, _ := moov.NewClient()

var accountID string

updateFixed := moov.UpsertTransferConfig{
  TipPresets: &moov.UpsertTipPresets{
    FixedAmountOptions: []moov.AmountDecimal{
      {Currency: "USD", ValueDecimal: "5.00"},
      {Currency: "USD", ValueDecimal: "10.00"},
      {Currency: "USD", ValueDecimal: "15.00"},
    },
  },
}

mc.UpdateTransferConfig(ctx, accountID, updateFixed)

Ask

import { Moov } from "@moovio/sdk";

const moov = new Moov({
  security: {
    username: "",
    password: "",
  },
});

async function run() {
  const result = await moov.transferConfig.update({
    accountID: "<id>",
    putTransferConfig: {
      tipPresets: {
        fixedAmountOptions: [\
          {\
            currency: "USD",\
            valueDecimal: "12.987654321",\
          },\
        ],
      },
    },
  });

console.log(result);
}

run();

Ask

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

$putTransferConfig = new Components\PutTransferConfig(
    tipPresets: new Components\PutTipPresets(
        fixedAmountOptions: [\
            new Components\AmountDecimal(\
                currency: 'USD',\
                valueDecimal: '12.987654321',\
            ),\
        ],
    ),
);

$response = $sdk->transferConfig->update(
    accountID: '<id>',
    putTransferConfig: $putTransferConfig
);

if ($response->transferConfig !== null) {
    // handle response
}

Ask

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.TransferConfigValidationError;
import io.moov.sdk.models.operations.UpdateTransferConfigResponse;
import java.lang.Exception;
import java.util.List;

public class Application {

public static void main(String[] args) throws GenericError, TransferConfigValidationError, Exception {

Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

UpdateTransferConfigResponse res = sdk.transferConfig().update()
                .accountID("<id>")
                .putTransferConfig(PutTransferConfig.builder()
                    .tipPresets(PutTipPresets.builder()
                        .fixedAmountOptions(List.of(
                            AmountDecimal.builder()
                                .currency("USD")
                                .valueDecimal("12.987654321")
                                .build()))
                        .build())
                    .build())
                .call();

if (res.transferConfig().isPresent()) {
            System.out.println(res.transferConfig().get());
        }
    }
}

Ask

from moovio_sdk import Moov
from moovio_sdk.models import components

with Moov(
    security=components.Security(
        username="",
        password="",
    ),
) as moov:

res = moov.transfer_config.update(account_id="<id>", tip_presets={
        "fixed_amount_options": [\
            {\
                "currency": "USD",\
                "value_decimal": "12.987654321",\
            },\
        ],
    })

# Handle response
    print(res)

Ask

require 'moov_ruby'

Models = ::Moov::Models
s = ::Moov::Client.new(
  security: Models::Components::Security.new(
    username: '',
    password: ''
  )
)
res = s.transfer_config.update(account_id: '<id>', put_transfer_config: Models::Components::PutTransferConfig.new(
  tip_presets: Models::Components::PutTipPresets.new(
    fixed_amount_options: [\
      Models::Components::AmountDecimal.new(\
        currency: 'USD',\
        value_decimal: '12.987654321'\
      ),\
    ]
  )
))

unless res.transfer_config.nil?
  # handle response
end

Ask

using Moov.Sdk;
using Moov.Sdk.Models.Components;
using System.Collections.Generic;

var sdk = new MoovClient(security: new Security() {
    Username = "",
    Password = "",
});

var res = await sdk.TransferConfig.UpdateAsync(
    accountID: "<id>",
    body: new PutTransferConfig() {
        TipPresets = new PutTipPresets() {
            FixedAmountOptions = new List<AmountDecimal>() {
                new AmountDecimal() {
                    Currency = "USD",
                    ValueDecimal = "12.987654321",
                },
            },
        },
    }
);

// handle response

Example

{
  "tipPresets": {
    "fixedAmountOptions": [\
      {\
        "currency": "USD",\
        "valueDecimal": "1.00"\
      },\
      {\
        "currency": "USD",\
        "valueDecimal": "2.00"\
      },\
      {\
        "currency": "USD",\
        "valueDecimal": "5.00"\
      }\
    ]
  }
}

Updated percentage tip config

{
  "tipPresets": {
    "calculationBasis": "pre-tax",
    "percentageOptions": [\
      10,\
      15,\
      20\
    ]
  },
  "transferControls": [\
    {\
      "accountID": "01234567-89ab-cdef-0123-456789abcdef",
      "allowDynamicDescriptor": true,
      "allowSurcharge": true,
      "debtRepayment": false,
      "partnerAccountID": "01234567-89ab-cdef-0123-456789abcdef"
    }\
  ]
}

Response headers

A unique identifier used to trace requests.

The server could not understand the request due to invalid syntax.

Example

{
  "error": "string"
}

Response headers

A unique identifier used to trace requests.

The request contained missing or expired authentication.

Response headers

A unique identifier used to trace requests.

The user is not authorized to make the request.

Response headers

A unique identifier used to trace requests.

The requested resource was not found.

Response headers

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.

Example

{
  "TipPresets.CalculationBasis": "string",
  "TipPresets.PercentageOptions": {
    "property1": "string",
    "property2": "string"
  },
  "TipPresets.FixedAmountOptions": {
    "property1": {
      "currency": "string",
      "valueDecimal": "string"
    },
    "property2": {
      "currency": "string",
      "valueDecimal": "string"
    }
  }
}

Response headers

A unique identifier used to trace requests.

Request was refused due to rate limiting.

Response headers

A unique identifier used to trace requests.

The request failed due to an unexpected error.

Response headers

A unique identifier used to trace requests.

The request failed because a downstream service failed to respond.

Response headers

A unique identifier used to trace requests.

Set this header to v2026.07.00 to use the API described in this specification. When omitted, the server defaults to v2024.01.00, which may not match the behavior documented here.

Possible values:

v2026.07.00

Definitions

Defines which amount should be used when calculating the final payment total. This calculation applies for percentage tip values.

Possible values:

pre-tax,

post-tax

Defines the set of suggested tip preset values presented to customers. Fixed amounts must be positive and unique. A maximum of 3 values are allowed.

Show child attributes

A 3-letter ISO 4217 currency code.

A decimal-formatted numerical string that represents up to 9 decimal place precision.

For example, $12.987654321 is '12.987654321'.

Defines the set of suggested tip preset values presented to customers. Percentages must be between 0 and 100 (exclusive) and must be unique. A maximum of 3 values are allowed.

Show child attributes

Configurable options for a transfer.

Tip presets when calculating tips for a transfer.

Show child attributes

Defines which amount should be used when calculating the final payment total. This calculation applies for percentage tip values.

Possible values:

pre-tax,

post-tax

Defines the set of suggested tip preset values presented to customers. Fixed amounts must be positive and unique. A maximum of 3 values are allowed.

Show child attributes

A 3-letter ISO 4217 currency code.

A decimal-formatted numerical string that represents up to 9 decimal place precision.

For example, $12.987654321 is '12.987654321'.

Show child attributes

ID of the merchant account.

A unique identifier for a Moov resource. Supports UUID format (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) or typed format with base32-encoded UUID and type suffix (e.g., kuoaydiojf7uszaokc2ggnaaaa_xfer).

Indicates if the account is allowed to set dynamic descriptors on transfers.

Indicates if the account is allowed to apply surcharges to transfers.

Indicates if the account is configured for debt repayment.

ID of the partner account.