Transportation & logistics

Moov is your single vendor to simplify complex payment processes, view real-time cash flow visibility, and reduce operational costs.

This guide focuses on the quickest and easiest way to get started with the features of Moov we think you’ll find most useful for the transportation industry. Simplify complex payment processes, quickly verify bank accounts, and instantly send payouts with RTP and push to card.

Moov offers a variety of integration options to get started. Use Drops or the Dashboard UIs for a low to no-code solution, or choose the API or one of many SDKs for more complex integrations.

For the purposes of this guide, we’ll provide Dashboard and API examples.

Verify bank accounts instantly

After you’ve onboarded carriers, you can link bank accounts.

Verifying linked bank accounts reduces fraud. You can initiate micro-deposit verification to confirm ownership of accounts. Banks that support instant verification will verify micro-deposits in a single session, in real time, via RTP. If a bank doesn’t support instant verification, same-day ACH is used as a fallback.

The easiest way to find a carriers’s account ID and bank account ID is in the Dashboard. Search for an account and click on it to open their profile. The account ID can be found under Business details and the bank account ID can be found by clicking on the linked bank account under Payment methods.

Account ID in the Dashboard

You can also retrieve a list of accounts and their IDs with the API.

1
2
curl -X GET "https://api.moov.io/accounts" \
  -H "Authorization: Bearer {token}"

Once you have an account ID, you can retrieve a list of bank account IDs with the API.

1
2
curl -X GET "https://api.moov.io/accounts/{accountID}/bank-accounts" \
  -H "Authorization: Bearer {token}" \

Use the IDs you’ve retrieved for an account to initiate instant micro deposit verification through the API.

1
2
curl -X POST "https://api.moov.io/accounts/{accountID}/bank-accounts/{bankAccountID}/verify" \
  -H "Authorization: Bearer {token}" \

If the bank supports instant verification, the response will show instant as the verification method. If instant verification is not supported, the verification method will be ach.

1
2
3
4
{
  "status": "new",
  "verificationMethod": "instant"
}

Read more on bank account verification in our documentation:

Facilitate multi-party payments

With Moov wallets, you can facilitate complex money movement scenarios such as multi-party payouts where a carrier is paying out subcontractors. The wallet ledger tracks every debit and credit, automatically correlating transactions to the original payment method.

Transfers between wallets are instant - send funds instantly from your wallet to a carriers’s wallet so they can make timely payouts to their subcontractors.

To create a wallet to wallet transfer in the Dashboard, click the New transfer button, select Payout and enter the source wallet and destination wallet.

Transfer detail view in Moov Dashboard

To create a wallet to wallet transfer with the API, send the source wallet and destination wallet in the request.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
curl -X POST "https://api.moov.io/accounts/{accountID}/transfers" \
  -H "Authorization: Bearer {token}" \
  -H "X-Idempotency-Key: UUID" \
  -H "X-Wait-For: rail-response" \
  --data-raw '{
    "amount": {
      "value": 100000,
      "currency": "USD"
    },
    "source": {
      "paymentMethodID": "your-wallet-ID"
    },
    "destination": {
      "paymentMethodID": "carriers-wallet-ID"
    },
    "description": "Optional transaction description."
  }'\

Set up transfer groups

Transfer groups provide a way to associate multiple transfers together by a shared ID of the parent transfer. Transfer groups make the final beneficiary in a chain of transfers aware of incoming funds before they land in their account.

This also gives you more control over the flow of funds, making reporting and preserving the context of the original transfer easier.

You’ll need to retrieve the ID of what you want to be the parent transfer before you can create a transfer group. The easiest way to do this is in the Dashboard. Search for the transfer and click on it to open the transfer page. The transfer ID is listed at the top and you can copy it to your clipboard.

Transfer ID in the Dashboard

You an also retrieve a list of transfers with the API which will return the transferID.

1
2
curl -X GET "https://api.moov.io/accounts/{accountID}/transfers" \
  -H "Authorization: Bearer {token}" \

To create a transfer group, provide a transferID as the source when creating a transfer with the API.

 1{
 2"amount": {
 3  "value": 100,
 4  "currency": "USD"
 5},
 6"source": {
 7  "paymentMethodID": "transferID"
 8},
 9"destination": {
10  "paymentMethodID": "UUID"
11},
12"description": "Optional transaction description."
13}

Read more about transfer groups in our documentation:

Send instant payments

Eligible linked bank accounts and cards have access to instant RTP and push to card payments respectively.

Standard RTP funds flow diagram

Check eligibility

Before you create a transfer, you can check if the bank account or card linked to a carriers’s account is eligible for instant RTP or push to card payments.

Use the cards GET endpoint to check if a card is eligible for push to card. You can find the account ID and card ID in the Dashboard using the same methods described above in the Get IDs tab.

1
2
curl -X GET "https://api.moov.io/accounts/{accountID}/cards" \
  -H 'Authorization: Bearer {token}' \

In the response, the domesticPushtoCard field will describe the push to card timing that is available for the card (if supported):

Timing Description
fast-funds Funds will be available to the destination within 30 minutes or less of the authorization.
standard Fast funds is not supported on this card. Transfer will follow standard card settlement timing.
not-supported This card is ineligible for push-to-card payments. Contact your issuer for more details.
unknown Eligibility has not been checked or is unknown.

A push transfer can be created when the source is a pre-funded Moov wallet and the destination is a recipient with a linked card and the transfers capability.

When a bank account is linked, Moov checks its eligibility to receive payments on the RTP network and creates the rtp-credit payment method automatically.

To use RTP, accounts must have the send-funds and wallet capabilities enabled.

Read more about instant payments in our documentation:

Set metadata

You can store free-form metadata on transfers, such as invoice numbers or correlation IDs. You can use this metadata to reconcile and correlate payments in your system. In addition to setting metadata when creating a transfer, you can also update metadata after a transfer has initiated or completed.

When creating a transfer in the Dashboard, open the Advanced settings to enter metadata.

Metadata

When creating a transfer in the API, enter the metadata you want in your request.

1
2
3
4
5
6
...
"metadata": {
  "property1": "string",
  "property2": "string"
},
...

Read more about metadata in our API documentation:

Other resources

Summary Beta