Getting started overview

To begin integrating with Moov, developers typically follow a structured process that includes account creation, credential generation, and executing a foundational API request. Moov is designed to provide API-driven infrastructure for building custom payment experiences, supporting multi-party payments, and embedding financial capabilities into applications. The platform offers a free tier for development and testing, allowing developers to explore its features without upfront costs.

The core components of the Moov API facilitate various financial operations, including managing Moov Accounts, handling Moov Wallets, and executing Moov Transfers. This getting started guide focuses on the initial steps required to access these capabilities and make a successful API call.

Quick reference table

Step What to do Where
1. Sign Up Create a Moov developer account. Moov Developer Portal
2. Get API Keys Generate your publishable and secret API keys. Moov Dashboard
3. Environment Setup Install an SDK or prepare for direct API calls. Moov SDK documentation
4. First Request Make an authenticated call, e.g., create a Moov Account. Moov API Reference (Create Account)

Create an account and get keys

Accessing Moov's API requires a developer account and a set of API keys for authentication. The sign-up process allows you to create an account within the Moov developer environment, which provides access to the dashboard and API documentation. Moov offers a free development tier to facilitate experimentation and integration before moving to production.

Account creation

  1. Navigate to the Moov website and locate the sign-up option.
  2. Provide the necessary information, which typically includes an email address and password.
  3. Verify your email address to activate your developer account.
  4. Log in to the Moov Dashboard.

Upon successful signup, you will gain access to the Moov Dashboard, which serves as the central hub for managing your applications, viewing transaction data, and generating API credentials.

Obtaining API keys

Moov uses API keys for authentication, distinguishing between publishable keys (safe for client-side use) and secret keys (must be kept confidential and used server-side). These keys grant your application permission to interact with the Moov API. For development and testing, you will typically use keys associated with your sandbox environment.

  1. From the Moov Dashboard, navigate to the API Keys section.
  2. Generate a new set of API keys for your application. You will typically be provided with a Publishable Key and a Secret Key.
  3. Securely store your Secret Key. It should never be exposed in client-side code or public repositories.
  4. Note your Publishable Key for use in client-side contexts, if applicable.

Moov's authentication mechanism typically relies on HMAC-SHA256 signatures for securing requests made with your secret key, ensuring data integrity and authenticity. This is a common practice in secure API design, as detailed in general RFC 2104 for HMAC specifications.

Your first request

After setting up your account and obtaining API keys, the next step is to make an authenticated call to the Moov API. This validates your setup and provides a foundational understanding of API interaction. A common first request is to create a new Moov Account, which is a prerequisite for most financial operations within the platform.

Environment setup

Before making a request, you need to set up your development environment. Moov provides SDKs for several popular programming languages, simplifying API interactions. Alternatively, you can make direct HTTP requests.

Using an SDK (recommended)

Moov offers SDKs for Node.js, Python, Go, and Ruby. Using an SDK abstracts away the complexities of HTTP requests and authentication.

Example (Node.js):

  1. Install the Node.js SDK:
    npm install @moovio/sdk
  2. Initialize the Moov client with your API keys:
    const Moov = require('@moovio/sdk');
    
    const moov = new Moov({
      publicKey: 'YOUR_PUBLISHABLE_KEY',
      secretKey: 'YOUR_SECRET_KEY'
    });

Direct HTTP request

If you prefer not to use an SDK, you can make direct HTTP requests. You will need to handle request signing manually. Refer to the Moov authentication documentation for detailed instructions on constructing signed requests.

Making the 'Create Account' request

The Create Account endpoint allows you to establish a new Moov Account for an individual or business. This account is essential for holding funds and participating in transfers.

Example (Node.js SDK - Create Individual Account):

async function createMoovAccount() {
  try {
    const account = await moov.accounts.create({
      type: 'individual',
      profile: {
        individual: {
          name: {
            firstName: 'John',
            lastName: 'Doe'
          },
          birthDate: '1990-01-01',
          governmentId: 'XXX-XX-XXXX' // Test ID, replace with actual for production
        },
        address: {
          line1: '123 Main St',
          city: 'Anytown',
          state: 'NY',
          postalCode: '10001',
          country: 'US'
        }
      },
      // Add optional capabilities or other fields as needed
      capabilities: ['transfers', 'wallet']
    });
    console.log('Account created successfully:', account);
    return account;
  } catch (error) {
    console.error('Error creating account:', error);
  }
}

createMoovAccount();

This code snippet demonstrates creating an individual Moov Account. Replace placeholder values with appropriate test data. The response will include the unique accountID, which identifies the newly created account within the Moov system.

Common next steps

After successfully creating your first Moov Account, you can explore additional functionalities to build out your payment application. Moov's API supports a range of operations designed for flexibility and customization.

  • Add funding sources: Attach bank accounts or cards to a Moov Account to enable deposits and withdrawals. Refer to the Bank Accounts API documentation and Cards API documentation.
  • Create wallets: Utilize Moov Wallets to hold funds for an account, facilitating internal transfers and managing balances.
  • Initiate transfers: Perform transfers between Moov Accounts, from wallets to external bank accounts, or vice-versa. The Transfers API is central to moving funds within the Moov ecosystem.
  • Handle payouts: Distribute funds to external bank accounts using the Payouts API.
  • Webhooks: Set up webhooks to receive real-time notifications about events such as transfer status changes or account updates. Learn more in the Moov Webhooks documentation. Webhooks are a standard method for event-driven communication, also used by other payment platforms like Stripe for event notifications.
  • Explore advanced features: Investigate capabilities like dispute management, compliance tools, and advanced reporting available through the Moov API.

Regularly consult the Moov API Reference for the most up-to-date information on endpoints, request formats, and response structures.

Troubleshooting the first call

Encountering issues during your first API call is not uncommon. Here are some typical problems and their solutions:

  • Authentication errors (401 Unauthorized):
    • Issue: Incorrect API keys, missing authentication headers, or improperly signed requests.
    • Solution: Double-check that you are using the correct Secret Key for server-side calls and the Publishable Key for client-side (if applicable). Ensure your request headers include the necessary authorization. If using direct HTTP, verify your HMAC signature generation against the Moov authentication guide.
  • Bad request errors (400 Bad Request):
    • Issue: Malformed JSON payload, missing required fields, or invalid data types in your request body.
    • Solution: Review the specific error message provided by the API, which often indicates the problematic field. Compare your request body against the API schema for the Create Account endpoint. Ensure all required fields are present and data types match expectations (e.g., dates in 'YYYY-MM-DD' format).
  • Forbidden errors (403 Forbidden):
    • Issue: Your API keys might not have the necessary permissions for the requested operation, or you are attempting an action that is not allowed in your current environment (e.g., production-only features in a sandbox).
    • Solution: Verify the permissions associated with your API keys in the Moov Dashboard. Ensure you are operating within the constraints of your development environment.
  • Network or connectivity issues:
    • Issue: The request does not reach the Moov API, or the response is not received.
    • Solution: Check your internet connection. Temporarily disable any firewalls or VPNs that might be interfering. Verify the API endpoint URL is correct and accessible.
  • SDK-specific errors:
    • Issue: Errors originating from the SDK itself rather than the API.
    • Solution: Consult the documentation for the specific Moov SDK you are using. Ensure the SDK is up-to-date. If the issue persists, review the SDK's GitHub repository for known issues or community support.

For persistent issues, Moov's official documentation and support channels are the primary resources for assistance. The Moov Getting Started guide provides further details and troubleshooting tips.