Single-Use Wallets (Corporate Only)
📦 Single-Use Wallets (Corporate Only)
Generate unique, one-time wallet addresses for batch processing and invoice tracking.
What Are Single-Use Wallets?
Single-use wallets are one-time stablecoin deposit addresses linked to a specific external reference (like an invoice ID). When stablecoins are sent to these addresses, they automatically offramp to the corporate's main remote bank account.
Key characteristics:
- ✅ One address per external reference (e.g., one per invoice)
- ✅ Automatic offramp when stablecoins received
- ✅ Links to corporate's main remote bank account
- ✅ Perfect for batch processing and reconciliation
- ⚠️ Whitelisted corporates only (contact [email protected])
Use Cases
Invoice Payments
Generate unique wallet per invoice. Track which customer paid which invoice.
Batch Settlements
Process multiple payments simultaneously with unique addresses for reconciliation.
Customer Deposits
Assign each customer a unique address. Auto-convert and settle to treasury.
Vendor Payments
Track vendor-specific stablecoin payments with external references.
How Single-Use Works
Note: This section includes a sequence diagram showing the workflow. Refer to the original documentation for the visual diagram.
Corporate Example
// Prerequisites: Corporate has ACTIVE status and main remote bank account set
// 1. Create single-use wallet for invoice
const singleUseWallet = await fetch(
`https://api.bakkt.com/stablecoin/corporate/${corporateUuid}/single-offramp-wallet`,
{
method: 'POST',
headers: {
'Authorization': apiKey,
'bakkt-session-id': sessionId
},
body: JSON.stringify({
external_reference: 'invoice-12345'
})
}
);
const wallet = await singleUseWallet.json();
console.log('Chain:', wallet.chain);
console.log('Address:', wallet.address);
console.log('Reference:', wallet.external_reference);
// 2. Share address with customer
sendInvoice(customer, {
invoiceId: 'invoice-12345',
amount: '$1000 or equivalent USDC',
paymentAddress: wallet.address,
chain: wallet.chain
});
// 3. When customer pays, auto-offramp happens
// → Webhook received with external_reference: "invoice-12345"
// → Mark invoice as paid in your system
// → Fiat arrives in corporate's main remote bank accountWarning: Whitelist Required: Single-use wallet feature is available only to whitelisted corporates. Contact [email protected] to enable this feature.
Updated 3 days ago
