# Grain Developer Portal ## Docs - [Create Customer](https://docs.grainfinance.co/api-reference/customers/create-customer.md): Creates a new customer. If a customer with the same external ID already exists, the record is updated automatically. - [Delete Customer](https://docs.grainfinance.co/api-reference/customers/delete-customer.md): Removes a customer by ID. - [Get Customer](https://docs.grainfinance.co/api-reference/customers/get-customer.md): Retrieves a specific customer by its Grain customer ID. - [List Customers](https://docs.grainfinance.co/api-reference/customers/list-customers.md): Retrieves a list of all existing customers. - [Update Customer](https://docs.grainfinance.co/api-reference/customers/update-customer.md): Updates an existing customer's information. - [Accept Offline Quote](https://docs.grainfinance.co/api-reference/dual-hedges/accept-offline-quote.md): Accepts a dual hedge rate proposal and books both customer and supplier hedge legs at their proposed rates and tenors. - [Cancel Dual Hedge](https://docs.grainfinance.co/api-reference/dual-hedges/cancel-dual-hedge.md): Cancels a dual hedge and its underlying customer and supplier legs. - [Get Dual Hedge](https://docs.grainfinance.co/api-reference/dual-hedges/get-dual-hedge.md): Retrieves details of a specific dual hedge, including both underlying legs and their respective proposals. - [Get Offline Rates](https://docs.grainfinance.co/api-reference/dual-hedges/get-offline-rates.md): Returns a full table of dual hedge rate proposals for all configured currency pairs. Each rate represents a pair of customer and supplier leg proposals routed through the functional currency. Partners can pre-fetch and cache these rates for both legs. - [List Dual Hedges](https://docs.grainfinance.co/api-reference/dual-hedges/list-dual-hedges.md): Lists all dual hedge transactions for the partner, including both hedge legs. Supports filtering by creation or update date. - [Accept Offline Quote](https://docs.grainfinance.co/api-reference/hedges/accept-offline-quote.md): Accepts a previously retrieved offline rate proposal and books the hedge accordingly. - [Accept Quote](https://docs.grainfinance.co/api-reference/hedges/accept-quote.md): Accepts a previously generated real-time rate proposal and creates the hedge transaction. - [Cancel Hedge](https://docs.grainfinance.co/api-reference/hedges/cancel-hedge.md): Cancels an existing hedge. - [Accept Early Settlement](https://docs.grainfinance.co/api-reference/hedges/early-settlement-accept.md): Accepts a previously generated early settlement quote and performs the early settlement. - [Early Settlement Quote](https://docs.grainfinance.co/api-reference/hedges/early-settlement-quote.md): Request an early settlement quote for an existing hedge. - [Get Hedge](https://docs.grainfinance.co/api-reference/hedges/get-hedge.md): Retrieves detailed information for a specific hedge. - [Get Offline Rates](https://docs.grainfinance.co/api-reference/hedges/get-offline-rates.md): Retrieves offline hedge quote proposals for selected currency pairs. Partners can use these pre-fetched proposals - avoiding the need for a real-time quote per transaction. - [Get Quote](https://docs.grainfinance.co/api-reference/hedges/get-quote.md): Generates a real-time rate proposal for a new hedge associated with the specified customer. Once accepted, this proposal becomes a confirmed hedge. - [List Hedges](https://docs.grainfinance.co/api-reference/hedges/list-hedges.md): Retrieves all hedges associated with the given customer. - [API Reference](https://docs.grainfinance.co/api-reference/introduction.md): Grain's REST API for managing hedges, spots, pricing, and fund movements - [Get Exchange Rate](https://docs.grainfinance.co/api-reference/pricing/get-exchange-rate.md): Retrieves the current FX spot rate for supported currency pairs. Use this endpoint for real-time reference rates or live rate display. - [Accept Spot Quote](https://docs.grainfinance.co/api-reference/spots/accept-quote.md): Accepts a previously generated spot rate proposal and executes the conversion. - [Get Spot Quote](https://docs.grainfinance.co/api-reference/spots/get-quote.md): Generates a spot rate proposal for a new currency conversion. - [Get Spot](https://docs.grainfinance.co/api-reference/spots/get-spot.md): Retrieves details of a specific spot transaction. - [List Spots](https://docs.grainfinance.co/api-reference/spots/list-spots.md): Retrieves all spot transactions for the given organization. - [Get Wallet](https://docs.grainfinance.co/api-reference/wallets/get-wallet.md): Retrieves a specific wallet by its Grain wallet ID. - [List Wallets](https://docs.grainfinance.co/api-reference/wallets/list-wallets.md): Retrieves all wallets and their balances, per currency. - [Withdraw](https://docs.grainfinance.co/api-reference/wallets/withdraw.md): Withdraws funds from a wallet to a configured beneficiary. Returns the ID of the created withdrawal fund transfer. - [Core Concepts](https://docs.grainfinance.co/concepts/core-concepts.md): FX exposure, hedging, forward pricing, and Grain's hedging model - [Funding & Wallets](https://docs.grainfinance.co/concepts/funding-wallets.md): Functional currency, wallets, and fund transfer types - [Hedge Lifecycle](https://docs.grainfinance.co/concepts/hedge-lifecycle.md): Customers, hedge statuses, mark-to-market, and dual hedges - [Concepts](https://docs.grainfinance.co/concepts/index.md): Core concepts behind Grain's pricing, hedging, settlement, funding, and payout infrastructure. - [Payouts](https://docs.grainfinance.co/concepts/payouts.md): What payouts are, how to use them with hedges, and the payout lifecycle - [Quotes](https://docs.grainfinance.co/concepts/quotes.md): Real-time vs offline quotes, expiration, fixed side, and quote calculation - [Settlements](https://docs.grainfinance.co/concepts/settlements.md): Full settlement vs offset settlement, settlement cycles, and early drawdown - [Create Your First Customer](https://docs.grainfinance.co/get-started/create-your-first-customer.md): Create a customer record before creating a hedge - [Create Your First Hedge](https://docs.grainfinance.co/get-started/create-your-first-hedge.md): Get a quote and accept it to create a hedge - [Hedge Settlement](https://docs.grainfinance.co/get-started/hedge-settlement.md): How Grain settles hedges at maturity - [Welcome to Grain!](https://docs.grainfinance.co/get-started/index.md): Get started integrating FX hedging into your platform - [Retrieve API Keys](https://docs.grainfinance.co/get-started/retrieve-api-keys.md): Login to the dashboard and retrieve your API keys - [Setup Your Configuration](https://docs.grainfinance.co/get-started/setup-your-configuration.md): Initial configuration steps before integrating with the Grain API - [Best Practices](https://docs.grainfinance.co/webhooks/best-practices.md): Idempotency, ordering, error handling, and testing for webhooks - [Events](https://docs.grainfinance.co/webhooks/events.md): All webhook event types, their payloads, and example data - [Overview & Setup](https://docs.grainfinance.co/webhooks/index.md): Real-time event notifications for the hedge and wallet lifecycle - [Signature Verification](https://docs.grainfinance.co/webhooks/signature-verification.md): How to verify that webhook requests originate from Grain - [Webhook Envelope](https://docs.grainfinance.co/webhooks/webhook-envelope.md): The standard envelope structure wrapping every webhook notification ## OpenAPI Specs - [openapi](https://docs.grainfinance.co/api-reference/openapi.yaml)