MoneyGram API

MoneyGram API as documented publicly: 12 operations. Contract generated from the documentation by API Evangelist (2026-10-15); not the provider's own document.

Operations 12

GET /amend/v1/transactions GET /amend/v1/transactions #
GET /fx-rate/v1/rates Retrieve a Rate #
GET /oauth/{oauthid} Get Access Token #
PUT /partnerconnect/v1/transactions/{transactionid}/status PUT /partnerconnect/v1/transactions/{transactionId}/status #
GET /reference-data/v1 Reference Data Introduction #
GET /reference-data/v1/{v1id} Retrieve Countries API GET /reference-data/v1/Country Retrieves supported values and metadata for countries #
PUT /transactions/{mgitransactionid}/status The MoneyGram Status Webhook enables Account Deposit partners to asynchronously notify MoneyGram of transaction status changes over a JSON REST interface. #
POST /transfer/v1/transactions/quote Quote a transaction #
PUT /transfer/v1/transactions/{transactionid} Update a transaction #
PUT /transfer/v1/transactions/{transactionid}/commit Commit a transaction #
POST /v1/accounts/validate Confirm the receiver's account or wallet before disbursement, verify that the account is active, eligible to receive funds, matches the intended beneficiary's name, and supports th #
POST /v1/transfers Transfer Funds #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/moneygram:moneygram-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

moneygram-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: MoneyGram API
  version: '2026-10-15'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-15: 12 operation(s) read from 11 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; MoneyGram has published no machine-readable contract
    that the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 4
    documentation: 8
    pages-with-code: 6
    pages-read: 11
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-15'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://developer.moneygram.com/moneygram-developer/docs/fxrate-api
  - https://developer.moneygram.com/moneygram-developer/docs/o-auth-api
  - https://developer.moneygram.com/moneygram-developer/docs/transfer-api
  - https://developer.moneygram.com/moneygram-developer/docs/status-webhook-api
  - https://developer.moneygram.com/moneygram-developer/docs/transfer-funds-api
  - https://developer.moneygram.com/moneygram-developer/docs/account-validate-api
  - https://developer.moneygram.com/moneygram-developer/docs/reference-data-api-overview
  - https://developer.moneygram.com/moneygram-developer/recipes/reference-data-retrieve-countries-200-ok
  - https://developer.moneygram.com/moneygram-developer/recipes/amend-retrieve-by-reference-number-200-ok
  - https://developer.moneygram.com/moneygram-developer/recipes/reference-data-retrieve-countries-headers
  - https://developer.moneygram.com/moneygram-developer/recipes/reference-data-retrieve-currencies-200-ok
servers:
- url: https://sandboxapi.moneygram.com
paths:
  /amend/v1/transactions:
    get:
      operationId: get_amend_v1_transactions
      tags:
      - Amend
      summary: GET /amend/v1/transactions
      x-source: https://developer.moneygram.com/moneygram-developer/recipes/amend-retrieve-by-reference-number-200-ok
      parameters:
      - name: agentPartnerId
        in: query
        required: false
        schema:
          type: string
      - name: referenceNumber
        in: query
        required: false
        schema:
          type: string
      - name: targetAudience
        in: query
        required: false
        schema:
          type: string
      - name: userLanguage
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl --request GET  --url ''https://sandboxapi.moneygram.com/amend/v1/transactions?targetAudience=AGENT_FACING&userLanguage=EN-US&agentPartnerId=30150519&referenceNumber=93609598''  --header
          ''X-MG-ClientRequestId: 4c79b06f-a2af-4859-82c8-28cbb0bf361b''  --header ''accept: application/json''  --header ''authorization: Bearer
          7wD14cN6AqHfhQG2GTLGZwOXPDI1''

          ```'
  /fx-rate/v1/rates:
    get:
      operationId: get_fx_rate_v1_rates
      tags:
      - Fx Rate
      summary: Retrieve a Rate
      x-source: https://developer.moneygram.com/moneygram-developer/docs/fxrate-api
      parameters:
      - name: originatingCountry
        in: query
        required: true
        schema:
          type: string
        description: The originating country for the FX rate lookup
      - name: sendCurrency
        in: query
        required: true
        schema:
          type: string
        description: The currency being sent
      - name: destinationCountry
        in: query
        required: true
        schema:
          type: string
        description: The destination country for the FX rate lookup
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetFxRateV1RatesResponse'
      x-evidence:
        kind: documentation
  /oauth/{oauthid}:
    get:
      operationId: get_oauth_oauthid
      tags:
      - Oauth
      summary: Get Access Token
      x-source: https://developer.moneygram.com/moneygram-developer/docs/o-auth-api
      parameters:
      - name: oauthid
        in: path
        required: true
        schema:
          type: string
      - name: grant_type
        in: query
        required: true
        schema:
          type: string
        description: The value of this field should always be "client_credentials".
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: Basic authentication header containing base64‑encoded client_id:client_secret.
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOauthOauthidResponse'
      x-evidence:
        kind: documentation
        collapsed_from: 2 example path(s) differing only at oauthId
  /partnerconnect/v1/transactions/{transactionid}/status:
    put:
      operationId: put_partnerconnect_v1_transactions_transactionid_status
      tags:
      - Partnerconnect
      summary: PUT /partnerconnect/v1/transactions/{transactionId}/status
      x-source: https://developer.moneygram.com/moneygram-developer/docs/status-webhook-api
      parameters:
      - name: transactionid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutPartnerconnectV1TransactionsTransactionidStatusRequest'
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutPartnerconnectV1TransactionsTransactionidStatusResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X 'PUT'  'https://extadpartner.moneygram.com/partnerconnect/v1/transactions/12345678901234/status'  -H 'accept: application/json'\
          \  -H 'Authorization: Basic dGVzdDp0ZXN0'  -H 'Content-Type: application/json'  -H 'X-MG-ClientRequestId: 8f14e45f-ceea-467a-a3a6-4e6b4d3a9c2f'\
          \  -d '{\n \"partnerTransactionId\": \"PTX-2026-001234\",\n \"reasonCode\": \"01504\",\n \"partnerReasonMessage\": \"Transaction completed"
  /reference-data/v1:
    get:
      operationId: get_reference_data_v1
      tags:
      - Reference Data
      summary: Reference Data Introduction
      x-source: https://developer.moneygram.com/moneygram-developer/docs/reference-data-api-overview
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /reference-data/v1/{v1id}:
    get:
      operationId: get_reference_data_v1_v1id
      tags:
      - Reference Data
      summary: Retrieve Countries API GET /reference-data/v1/Country Retrieves supported values and metadata for countries
      x-source: https://developer.moneygram.com/moneygram-developer/docs/reference-data-api-overview
      parameters:
      - name: v1id
        in: path
        required: true
        schema:
          type: string
      - name: agentPartnerId
        in: query
        required: false
        schema:
          type: string
      - name: targetAudience
        in: query
        required: false
        schema:
          type: string
      - name: userLanguage
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReferenceDataV1V1IdResponse'
      x-evidence:
        kind: documentation
        collapsed_from: 7 example path(s) differing only at v1Id
  /transactions/{mgitransactionid}/status:
    put:
      operationId: put_transactions_mgitransactionid_status
      tags:
      - Transactions
      summary: The MoneyGram Status Webhook enables Account Deposit partners to asynchronously notify MoneyGram of transaction status changes
        over a JSON REST interface.
      x-source: https://developer.moneygram.com/moneygram-developer/docs/status-webhook-api
      parameters:
      - name: mgitransactionid
        in: path
        required: true
        schema:
          type: string
      - name: Content-Type
        in: header
        required: true
        schema:
          type: string
        description: application/json
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: Basic base64(username:password)
      - name: X-MG-ClientRequestId
        in: header
        required: false
        schema:
          type: string
        description: UUID (max 64 chars). Must be unique within a single session for unique requests.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutTransactionsMgitransactionidStatusRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutTransactionsMgitransactionidStatusResponse'
      x-evidence:
        kind: documentation
  /transfer/v1/transactions/quote:
    post:
      operationId: post_transfer_v1_transactions_quote
      tags:
      - Transfer
      summary: Quote a transaction
      x-source: https://developer.moneygram.com/moneygram-developer/docs/transfer-api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /transfer/v1/transactions/{transactionid}:
    put:
      operationId: put_transfer_v1_transactions_transactionid
      tags:
      - Transfer
      summary: Update a transaction
      x-source: https://developer.moneygram.com/moneygram-developer/docs/transfer-api
      parameters:
      - name: transactionid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /transfer/v1/transactions/{transactionid}/commit:
    put:
      operationId: put_transfer_v1_transactions_transactionid_commit
      tags:
      - Transfer
      summary: Commit a transaction
      x-source: https://developer.moneygram.com/moneygram-developer/docs/transfer-api
      parameters:
      - name: transactionid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/accounts/validate:
    post:
      operationId: post_v1_accounts_validate
      tags:
      - Accounts
      summary: Confirm the receiver's account or wallet before disbursement, verify that the account is active, eligible to receive funds, matches
        the intended beneficiary's name, and supports the transaction amount
      x-source: https://developer.moneygram.com/moneygram-developer/docs/account-validate-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1AccountsValidateRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1AccountsValidateResponse'
      x-evidence:
        kind: documentation
  /v1/transfers:
    post:
      operationId: post_v1_transfers
      tags:
      - Transfers
      summary: Transfer Funds
      x-source: https://developer.moneygram.com/moneygram-developer/docs/transfer-funds-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1TransfersRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1TransfersResponse'
      x-evidence:
        kind: documentation
components:
  schemas:
    GetFxRateV1RatesResponse:
      type: object
      properties:
        rates:
          type: array
          description: List of FX rates for each service option available to the given destination country
    GetOauthOauthidResponse:
      type: object
      properties:
        refresh_token_expires_in:
          type: string
          description: Optional.
        api_product_list:
          type: array
          description: Optional.
        api_product_list_json:
          type: array
          description: Optional.
        organization_name:
          type: string
          description: Optional.
        developer.email:
          type: string
          description: Optional.
        token_type:
          type: string
          description: Optional.
        issued_at:
          type: string
          description: Optional.
        client_id:
          type: string
          description: Optional.
        access_token:
          type: string
          description: Required.
        application_name:
          type: string
          description: Optional.
        scope:
          type: string
          description: Optional.
        expires_in:
          type: integer
          description: Required. Number of seconds until the token expires.
        refresh_count:
          type: integer
          description: Optional.
        status:
          type: string
          description: Optional.
    PutPartnerconnectV1TransactionsTransactionidStatusRequest:
      type: object
      properties:
        partnerTransactionId:
          type: string
        reasonCode:
          type: string
        partnerReasonMessage:
          type: string
    PutPartnerconnectV1TransactionsTransactionidStatusResponse:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
        mgiTransactionId:
          type: string
        requestId:
          type: string
        timestamp:
          type: string
          format: date-time
    GetReferenceDataV1V1IdResponse:
      type: object
      properties:
        iso3Code:
          type: string
        iso2Code:
          type: string
        name:
          type: string
        baseCurrency:
          type: string
        sendActive:
          type: boolean
        receiveActive:
          type: boolean
        indicativeRateActive:
          type: boolean
        active:
          type: boolean
        sendCurrencies:
          type: array
          items:
            type: string
        receiveCurrencies:
          type: array
          items:
            type: string
        phoneDialCodes:
          type: array
          items:
            type: string
    PutTransactionsMgitransactionidStatusRequest:
      type: object
      properties:
        partnerTransactionId:
          type: string
          description: 'Partner''s unique transaction identifier. If the partner uses the MoneyGram transaction ID, pass the same value here.
            Pattern: ^[A-Za-z0-9_\-]{1,50}$ . Also serves as the idempotency key.'
        reasonCode:
          type: string
          description: Reason code for the transaction status. Must be a valid 5-digit code from the published catalog.
        partnerReasonMessage:
          type: string
          description: Partner's free-text reason message or description, for audit and logging.
      required:
      - partnerTransactionId
      - reasonCode
      - partnerReasonMessage
    PutTransactionsMgitransactionidStatusResponse:
      type: object
      properties:
        status:
          type: string
          description: Status of the update operation, e.g. SUCCESS.
        message:
          type: string
          description: Human-readable success message.
        mgiTransactionId:
          type: string
          description: MoneyGram Transaction ID that was updated.
        requestId:
          type: string
          description: Server-generated correlation ID.
        timestamp:
          type: string
          description: UTC timestamp (ISO 8601) when the update was processed.
    PostV1AccountsValidateRequest:
      type: object
      properties:
        sender.person.firstName:
          type: string
          description: Sender first name.
        sender.person.middleName:
          type: string
          description: Sender middle name.
        sender.person.lastName:
          type: string
          description: Sender last name.
        sender.person.secondLastName:
          type: string
          description: Sender second last name.
        receiver.person.firstName:
          type: string
          description: Beneficiary first name.
        receiver.person.middleName:
          type: string
          description: Beneficiary middle name.
        receiver.person.lastName:
          type: string
          description: Beneficiary last name.
        receiver.person.secondLastName:
          type: string
          description: Beneficiary second last name.
        receiveAmount.value:
          type: number
          description: Receive amount in transacting currency. Must be greater than 0.
        receiveAmount.currencyCode:
          type: string
          description: ISO 4217 currency code.
        accountCode:
          type: string
          description: Bank code, routing code, wallet provider, or IFSC code — used to route the credit to the beneficiary institution.
        accountNumber:
          type: string
          description: Beneficiary bank account or wallet number. Format agreed bilaterally with the partner.
        receiveCountryCode:
          type: string
          description: ISO 3166-1 alpha-3 country code where funds are credited.
        additionalData:
          type: array
          description: Key‑value pairs for regulatory and routing purposes. All supported keys are always included (values may be empty).
      required:
      - receiver.person.firstName
      - receiver.person.lastName
      - receiveAmount.value
      - receiveAmount.currencyCode
      - accountCode
      - accountNumber
      - receiveCountryCode
    PostV1AccountsValidateResponse:
      type: object
      properties:
        message:
          type: string
          description: Optional response message.
        receiver.accountTitle:
          type: string
          description: Name associated with the account.
        receiver.accountStatus:
          type: string
          description: Account status.
        receiver.accountCurrency:
          type: string
          description: Currency of the account.
        receiver.nameMatchPercentage:
          type: string
          description: Percentage match between the beneficiary name and the institution's records.
        receiver.accountType:
          type: string
          description: Type of account.
        error.code:
          type: string
          description: MoneyGram-defined error code.
        error.message:
          type: string
          description: Human‑readable error message.
        error.target:
          type: string
          description: Field causing the error.
    PostV1TransfersRequest:
      type: object
      properties:
        transaction.mgiTransactionId:
          type: string
          description: 'Unique MoneyGram transaction identifier. Format: XXXXXXXX0000MMddYYYY'
        transaction.receiveCountryCode:
          type: string
          description: ISO 3166-1 alpha-3 country code where funds are credited.
        transaction.sendCountryCode:
          type: string
          description: ISO 3166-1 alpha-3 country code where funds originate.
        transaction.receiveAmount.value:
          type: number
          description: Transaction receive amount.
        transaction.receiveAmount.currencyCode:
          type: string
          description: ISO 4217 currency code.
        transaction.sender.person.firstName:
          type: string
          description: Sender first name.
        transaction.sender.person.middleName:
          type: string
          description: Sender middle name.
        transaction.sender.person.lastName:
          type: string
          description: Sender last name.
        transaction.sender.person.secondLastName:
          type: string
          description: Sender second last name.
        transaction.receiver.person.firstName:
          type: string
          description: Beneficiary first name.
        transaction.receiver.person.middleName:
          type: string
          description: Beneficiary middle name.
        transaction.receiver.person.lastName:
          type: string
          description: Beneficiary last name.
        transaction.receiver.person.secondLastName:
          type: string
          description: Beneficiary second last name.
        accountCode:
          type: string
          description: Bank code, routing code, wallet provider name, or IFSC.
        accountNumber:
          type: string
          description: Beneficiary account or wallet number.
        transaction.additionalData[]:
          type: array
          description: Supplementary key‑value pairs required for certain corridors or regulations.
      required:
      - transaction.mgiTransactionId
      - transaction.receiveCountryCode
      - transaction.sendCountryCode
      - transaction.receiveAmount.value
      - transaction.receiveAmount.currencyCode
      - transaction.sender.person.firstName
      - transaction.sender.person.lastName
      - transaction.receiver.person.firstName
      - transaction.receiver.person.lastName
      - accountCode
      - accountNumber
    PostV1TransfersResponse:
      type: object
      properties:
        response.responseCode:
          type: string
          description: Transaction processing status.
        response.message:
          type: string
          description: Human‑readable status message.
        partnerTransactionId:
          type: string
          description: Optional partner transaction reference.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Accounts
- name: Amend
- name: Fx Rate
- name: Oauth
- name: Partnerconnect
- name: Reference Data
- name: Transactions
- name: Transfer
- name: Transfers