Create a wallet
Create a new wallet for an account. You can specify optional attributes such as a display name and description to specify the intended use of the wallet. This will generate a new moov-wallet payment method.
Read our Moov wallets guide to learn more.
To access this endpoint using an access token
you'll need to specify the /accounts/{accountID}/wallets.write scope.
curl -X POST "https://api.moov.io/accounts/{accountID}/wallets" \
-H "Authorization: Bearer {token}" \
-d '{
"name": "My wallet"
}'
mc, _ := moov.NewClient()
accountID := "{uuid}" // account ID of the wallet owner
create := moov.CreateWallet{
Name: "My wallet",
}
mc.CreateWallet(ctx, accountID, create)
using Moov.Sdk;
using Moov.Sdk.Models.Components;
using System.Collections.Generic;
var sdk = new MoovClient(xMoovVersion: "<value>");
var res = await sdk.Wallets.CreateAsync(
accountID: "b4b3f37c-b73e-4271-b8ec-108a8593c9b9",
body: new CreateWallet() {
Name = "My wallet",
Description = "A general wallet used for my payments",
Metadata = new Dictionary<string, string>() {
{ "optional", "metadata" },
},
}
);
// handle responsepackage hello.world;
import io.moov.sdk.Moov;
import io.moov.sdk.models.components.CreateWallet;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.errors.CreateWalletValidationError;
import io.moov.sdk.models.errors.GenericError;
import io.moov.sdk.models.operations.CreateWalletResponse;
import java.lang.Exception;
import java.util.Map;
public class Application {
public static void main(String[] args) throws GenericError, CreateWalletValidationError, Exception {
Moov sdk = Moov.builder()
.xMoovVersion("v2024.01.00")
.security(Security.builder()
.username("")
.password("")
.build())
.build();
CreateWalletResponse res = sdk.wallets().create()
.accountID("b4b3f37c-b73e-4271-b8ec-108a8593c9b9")
.createWallet(CreateWallet.builder()
.name("My wallet")
.description("A general wallet used for my payments")
.metadata(Map.ofEntries(
Map.entry("optional", "metadata")))
.build())
.call();
if (res.wallet().isPresent()) {
// handle response
}
}
}require 'moov_ruby'
Models = ::Moov::Models
s = ::Moov::Client.new(
x_moov_version: 'v2024.01.00',
)
res = s.wallets.create(account_id: 'b4b3f37c-b73e-4271-b8ec-108a8593c9b9', create_wallet: Models::Components::CreateWallet.new(
name: 'My wallet',
description: 'A general wallet used for my payments',
metadata: {
"optional": 'metadata',
},
))
unless res.wallet.nil?
# handle response
endimport { Moov } from "@moovio/sdk";
const moov = new Moov({
xMoovVersion: "v2024.01.00",
security: {
username: "",
password: "",
},
});
async function run() {
const result = await moov.wallets.create({
accountID: "b4b3f37c-b73e-4271-b8ec-108a8593c9b9",
createWallet: {
name: "My wallet",
description: "A general wallet used for my payments",
metadata: {
"optional": "metadata",
},
},
});
console.log(result);
}
run();declare(strict_types=1);
require 'vendor/autoload.php';
use Moov\MoovPhp;
use Moov\MoovPhp\Models\Components;
$sdk = MoovPhp\Moov::builder()
->setXMoovVersion('v2024.01.00')
->setSecurity(
new Components\Security(
username: '',
password: '',
)
)
->build();
$createWallet = new Components\CreateWallet(
name: 'My wallet',
description: 'A general wallet used for my payments',
metadata: [
'optional' => 'metadata',
],
);
$response = $sdk->wallets->create(
accountID: 'b4b3f37c-b73e-4271-b8ec-108a8593c9b9',
createWallet: $createWallet
);
if ($response->wallet !== null) {
// handle response
}from moovio_sdk import Moov
from moovio_sdk.models import components
with Moov(
x_moov_version="v2024.01.00",
security=components.Security(
username="",
password="",
),
) as moov:
res = moov.wallets.create(account_id="b4b3f37c-b73e-4271-b8ec-108a8593c9b9", name="My wallet", description="A general wallet used for my payments", metadata={
"optional": "metadata",
})
# Handle response
print(res){
"walletID": "string",
"availableBalance": {
"currency": "USD",
"value": 1204,
"valueDecimal": "string"
},
"partnerAccountID": "string",
"name": "string",
"status": "active",
"walletType": "default",
"description": "string",
"metadata": {
"optional": "metadata"
},
"createdOn": "2019-08-24T14:15:22Z",
"closedOn": "2019-08-24T14:15:22Z"
}Response headers
x-request-id
string
required
{
"error": "string"
}Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
{
"error": "string"
}Response headers
x-request-id
string
required
{
"name": "string",
"description": "string",
"metadata": "string"
}Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
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 latest 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
name
string
required
description
string
metadata
object
Response
availableBalance
object
required
Show child attributes
currency
string
required
Pattern
value
integer<int64>
required
Quantity in the smallest unit of the specified currency.
In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99.
valueDecimal
string
required
Pattern
createdOn
string<date-time>
required
description
string
required
name
string
required
partnerAccountID
string
required
status
string<enum>
required
Status of a wallet.
active: The wallet is available for use and has an enabled payment method.closed: The wallet is no longer active and the corresponding payment method has been disabled.
active,
closed
walletID
string
required
walletType
string<enum>
required
Type of a wallet.
default: The system-generated wallet automatically created when an account is granted the wallet capability.general: An additional, user-defined wallet created via API or Dashboard.
default,
general
closedOn
string<date-time>
metadata
object