canonical: https://jentic.com/apis/moneygram.com/moneygram

# MoneyGram API

MoneyGram's partner API powers cross-border money transfers and disbursements through a quote-update-commit transaction lifecycle. The 12-endpoint surface covers transfer (send), disbursement (payout), live transaction status lookup, country and currency reference data, and partner support metadata. Production traffic uses https://api.moneygram.com and a sandbox is available at https://sandboxapi.moneygram.com. Authentication is OAuth 2.0 client credentials.

## For AI agents

Quote, commit, and disburse cross-border money transfers across MoneyGram's global agent and bank network using the partner API.

## Scope

Does not handle card acquiring, KYC document collection, or domestic-only ACH transfers - use for cross-border MoneyGram transfers, disbursements, and status lookup only.

## Capabilities

- Quote a cross-border transfer to surface fees and FX before the customer commits
- Update an in-progress transfer transaction with revised sender, receiver, or amount fields
- Commit a quoted transfer so funds become collectable at a MoneyGram receive agent
- Run a disbursement quote-update-commit lifecycle to push payouts to recipient accounts
- Look up transaction status by id to drive customer notifications and reconciliation
- Pull supported-countries reference data to validate sender or receiver countries before quote

## Use cases

### Remittance App Send Flow

A consumer remittance app wires the transfer endpoints into its send screen. After the customer enters destination and amount, the app calls quote to show fees and FX, optionally update if the customer edits the recipient, then commit to finalise the transfer. The customer receives a reference number to share with the receive agent abroad.

Example prompt: Quote a 150 USD transfer from a New York sender to a recipient in Manila, then commit and return the reference number.

### Marketplace Payouts

A global marketplace pays its sellers in their home countries using MoneyGram disbursements. The disbursement quote-update-commit lifecycle accepts the recipient's bank or wallet details, prices the payout, and releases the funds. This complements local card acquiring, where revenue is collected, with global settlement to recipients.

Example prompt: Quote a 750 USD disbursement to a Vietnamese recipient bank account, update with the bank code, then commit.

### Compliance and Status Reconciliation

Operations teams reconcile committed transactions by polling status. MoneyGram returns whether a transfer is available for pickup, has been collected, or is held under compliance review. This drives both customer-facing notifications and internal exception queues for transfers that fail compliance.

Example prompt: List the status of all MoneyGram transactions committed today and flag any held in a compliance review state.

### AI Agent Money Movement

An AI agent handling cross-border bill pay or family support uses Jentic to discover MoneyGram quote, commit, and status operations, executes them with vault-stored OAuth credentials, and returns reference numbers to the user. This makes MoneyGram callable as a tool from a chat interface without bespoke partner SDK work.

Example prompt: Search Jentic for 'send money to a family member abroad', load the MoneyGram transfer-quote schema, and run a sandbox quote for 75 USD to Manila.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/transfer/v1/transactions/{transactionID}/quote` | Quote a transfer transaction |
| PUT | `/transfer/v1/transactions/{transactionID}` | Update a transfer transaction |
| PUT | `/transfer/v1/transactions/{transactionID}/commit` | Commit a transfer transaction |
| POST | `/disbursement/v1/transactions/{transactionID}/quote` | Quote a disbursement |
| PUT | `/disbursement/v1/transactions/{transactionID}/commit` | Commit a disbursement |
| GET | `/status/v1/transactions/` | Get transaction status |
| GET | `/reference-data/v1/countries` | List supported countries |

## Key resources

- **Transfer** — Quote, update, and commit sender-initiated transfer transactions
- **Disbursement** — Quote, update, and commit recipient-facing payout transactions
- **Status** — Live transaction status lookup by transaction id
- **Reference Data** — Countries, currencies, and other lookups for input validation
- **Support** — Partner support metadata

## Why Jentic

- **Setup:** Wiring the MoneyGram API by hand means running the OAuth 2.0 client-credentials exchange, caching and refreshing tokens, choosing the sandbox or production host, and coding the quote-commit transfer flow yourself. Through Jentic you install once, import the MoneyGram API from the API Directory, store the client credentials once, and your agent calls it.
- **Permission scoping:** MoneyGram puts the transaction id in the URL path (`/transfer/v1/transactions/{transactionID}/quote`, `/disbursement/v1/transactions/{transactionID}/commit`), so a rule can pin your agent to one transaction and the operations on it. You choose the operations it may call, so a step like committing a transfer is not included unless you add it.
- **Credential handling:** Your MoneyGram client credentials are stored once, encrypted, by your own Jentic One instance, and Jentic obtains and refreshes the access token at execution time. The client secret never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send money across borders', and Jentic returns the matching MoneyGram operation with its input schema, including the transactionID parameter and the quote-commit flow, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **MoneyGram API** — Sibling MoneyGram spec covering the same 12 partner endpoints
- **Adyen Checkout API** — Global acquirer with card and wallet acceptance and international settlement
- **Revolut Business API** — European fintech with international transfers and multi-currency accounts
- **Stripe API** — Collect funds via card before disbursing through MoneyGram

## FAQ

### What authentication does the MoneyGram API use?

OAuth 2.0 client credentials. Partners exchange a client id and secret for an access token and include it as a bearer token. Through Jentic the credentials are stored in the vault and tokens are managed automatically.

### Can I run sandbox transactions before going live?

Yes. Point requests at https://sandboxapi.moneygram.com instead of the production base URL https://api.moneygram.com. The same quote, update, and commit endpoints behave the same way against sandbox partner accounts.

### What are the rate limits for the MoneyGram API?

Per-partner limits are negotiated as part of the partner agreement and are not declared in the spec. Handle HTTP 429 by backing off with exponential delay, and avoid issuing more concurrent requests than the partner contract allows.

### How do I commit a quoted transfer through Jentic?

After a successful quote, search Jentic for 'commit a MoneyGram transfer', load the schema for PUT `/transfer/v1/transactions/{transactionID}/commit`, and execute it with the same transactionID used for the quote. Jentic injects the OAuth bearer token automatically.

### What is the difference between transfer and disbursement?

Transfer is sender-initiated: a customer sends funds for a recipient to collect. Disbursement is partner-initiated: the partner pushes funds to the recipient, typically into a bank account or wallet. Both follow the same quote-update-commit pattern but operate on different paths.

### Can I list MoneyGram supported countries via the API?

Yes. GET `/reference-data/v1/countries` returns the list of countries supported for sending or receiving. Call this on application start or daily and cache the result to validate user input before invoking quote.

### Can I limit what my agent is allowed to do with the MoneyGram API?

Yes. Because Jentic One is self-hosted, your own rules decide which MoneyGram operations and credentials the agent may use. You choose exactly which endpoints it can call, so it might quote a transfer at POST `/transfer/v1/transactions/{transactionID}/quote` without ever being able to commit it, since PUT `/transfer/v1/transactions/{transactionID}/commit` is not included unless you add it. And because MoneyGram carries the transaction id in the URL path, a rule can pin the agent to a single transaction and only the operations you permit on it.
