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

The request completed successfully.

Updated fixed amount tip config

{
  "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.

Ask

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.

Ask

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

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.

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.

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.