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.
pre-tax: Tip amounts are calculated using the subtotal amount before taxespost-tax: Tip amounts are calculated using the subtotal amount + taxes
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.