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)
import { SDK } from "openapi";
const sdk = new SDK({
xMoovVersion: "v2024.01.00",
});
async function run() {
const result = await sdk.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 OpenAPI\OpenAPI;
use OpenAPI\OpenAPI\Models\Components;
$sdk = OpenAPI\SDK::builder()
->setXMoovVersion('v2024.01.00')
->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 openapi import SDK
with SDK(
x_moov_version="v2024.01.00",
) as sdk:
res = sdk.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)package hello.world;
import java.lang.Exception;
import java.util.Map;
import org.openapis.openapi.SDK;
import org.openapis.openapi.models.components.CreateWallet;
import org.openapis.openapi.models.errors.CreateWalletValidationError;
import org.openapis.openapi.models.errors.GenericError;
import org.openapis.openapi.models.operations.CreateWalletResponse;
public class Application {
public static void main(String[] args) throws GenericError, CreateWalletValidationError, Exception {
SDK sdk = SDK.builder()
.xMoovVersion("v2024.01.00")
.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 'openapi'
Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::SDK.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
end{
"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 dev 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