Skip to main content
Enterprise feature. Contact us for access.
This guide will help you integrate Crossmint’s Business Offramp solution, enabling your company to convert stablecoins from your treasury wallet back into fiat currency and deposit funds into your corporate bank accounts.

Overview

Crossmint’s Business Offramp enables your company to:
  • Convert stablecoins from your treasury wallet to fiat currency
  • Deposit funds directly into corporate bank accounts
  • Process large-volume conversions with institutional infrastructure
  • Maintain full audit trails for accounting and compliance
Key Differences from Consumer Offramp:
  • Destination: Corporate bank accounts instead of individual consumer accounts
  • Compliance: Business-level verification (already completed during KYB)
  • Volume: Higher limits and optimized for business-scale operations
  • Integration: Designed for treasury management and automated workflows

Prerequisites

Before you begin, you’ll need:
  • A Crossmint business account with Offramp enabled
  • Completed KYB (Know Your Business) verification
  • API keys (available once your account is provisioned)
  • Treasury wallet with stablecoins ready to offramp
  • Corporate bank account linked to your Crossmint account
  • Understanding of your use case and volume requirements

Integration Flow

Step 1: Request Access

Enterprise feature. Contact us for access.
Our team will work with you to:
  • Understand your offramp use case and volume requirements
  • Configure supported currencies and corporate bank accounts
  • Set up compliance requirements and transaction limits
  • Provision your API credentials
  • Assist with integration and testing
Before offramping, ensure your corporate bank account is linked:
// Link bank account via Crossmint API or console
const bankAccount = await crossmint.bankAccounts.create({
  accountType: "checking", // or "savings"
  accountNumber: "****1234",
  routingNumber: "021000021",
  bankName: "Your Bank Name",
  accountHolderName: "Your Company Name",
  verificationMethod: "micro_deposits" // or "instant_verification"
});

Step 3: Create Offramp Order

Create an offramp order to convert stablecoins to fiat:
const offrampOrder = await crossmint.offramp.create({
  sourceWallet: "your-treasury-wallet-address",
  sourceToken: "USDC",
  sourceAmount: "10000.00", // Amount in stablecoins
  chain: "solana",
  destinationCurrency: "USD",
  destinationBankAccount: {
    accountId: bankAccount.id, // Your linked corporate bank account
  },
  metadata: {
    businessOrder: true,
    orderPurpose: "operational_expenses", // Track purpose
    internalReference: "OFF-2025-001", // Your internal reference
  }
});

Step 4: Verify Treasury Balance

Ensure your treasury wallet has sufficient stablecoins:
// Check treasury wallet balance
const balance = await crossmint.wallets.getBalance({
  walletAddress: "your-treasury-wallet-address",
  chain: "solana"
});

const usdcBalance = balance.tokens.find(t => t.symbol === "USDC");
if (parseFloat(usdcBalance.amount) < parseFloat(sourceAmount)) {
  throw new Error("Insufficient stablecoin balance");
}

Step 5: Approve Stablecoin Transfer

Authorize the stablecoin transfer from your treasury wallet:
// Approve and initiate the stablecoin transfer
const transfer = await crossmint.offramp.transfer({
  orderId: offrampOrder.id,
  walletAddress: "your-treasury-wallet-address",
  // Signature required for wallet approval (implementation depends on your wallet setup)
  signature: await signTransferApproval(offrampOrder),
});

Step 6: Monitor Order Status

Track the offramp lifecycle via webhooks or polling:
// Webhook event types
// - offramp.order.created
// - offramp.order.stablecoin_transferred
// - offramp.order.processing
// - offramp.order.completed
// - offramp.order.failed

app.post('/webhooks/crossmint', async (req, res) => {
  const event = req.body;
  
  switch (event.type) {
    case 'offramp.order.created':
      // Log order creation
      await logBusinessOrder(event.data);
      break;
      
    case 'offramp.order.stablecoin_transferred':
      // Stablecoins received, fiat conversion in progress
      await notifyFinanceTeam('Stablecoins transferred, conversion in progress', event.data.orderId);
      break;
      
    case 'offramp.order.completed':
      // Fiat deposited to corporate bank account
      await updateAccountingSystem(event.data);
      await notifyFinanceTeam('Offramp completed - funds deposited', event.data.orderId);
      break;
      
    case 'offramp.order.failed':
      // Handle failure
      await handleOrderFailure(event.data);
      break;
  }
  
  res.sendStatus(200);
});

Step 7: Reconciliation

Access detailed transaction data for accounting:
// Get offramp order details
const order = await crossmint.offramp.get(orderId);

// Reconciliation data
const reconciliationData = {
  orderId: order.id,
  timestamp: order.createdAt,
  sourceAmount: order.sourceAmount, // Stablecoin amount
  sourceToken: order.sourceToken,
  destinationAmount: order.destinationAmount, // Fiat amount
  destinationCurrency: order.destinationCurrency,
  fxRate: order.fxRate,
  fees: order.fees,
  transactionHash: order.transactionHash, // On-chain stablecoin transfer
  bankReference: order.bankReference, // Bank transfer reference
  status: order.status,
};

Use Cases

Convert stablecoins to fiat to cover operational expenses such as payroll, rent, or supplier payments that require traditional banking.
Manage corporate cash positions by converting excess stablecoin holdings to fiat when needed for traditional banking operations or regulatory requirements.
Convert stablecoins to fiat to meet regulatory requirements, reporting obligations, or to maintain minimum fiat reserves.
Optimize liquidity by converting stablecoins to fiat based on market conditions, operational needs, or strategic cash management.

Settlement Times

Business offramp settlement times vary by destination:
MethodTypical Settlement TimeNotes
ACH (US)1-3 business daysStandard business banking
Wire TransferSame day - 1 business dayFaster, may have additional fees
SEPA (EU)1-2 business daysEuropean business accounts

Security & Compliance

Business offramps include:
  • Multi-Signature Approval: Optional multi-sig requirements for large transactions
  • Transaction Limits: Configured based on your business profile and risk assessment
  • Audit Trail: Complete transaction history for accounting and compliance
  • AML Compliance: Automated screening integrated into every transaction

Testing

Your Crossmint account includes a staging environment where you can:
  • Test the full offramp flow with test stablecoins
  • Verify bank account linking
  • Test webhook delivery
  • Validate reconciliation data

Go to Production

Once testing is complete:
  1. Complete production readiness review with Crossmint team
  2. Update API keys to production credentials
  3. Link production corporate bank accounts
  4. Configure production webhooks
  5. Launch with monitoring enabled

Support

The Crossmint team provides dedicated support for business offramp integrations:
  • Technical integration assistance
  • Compliance and regulatory guidance
  • Production deployment support
  • Ongoing optimization and volume management

Contact Sales

Get started with Crossmint Business Offramp

Next Steps