Service Options

How to implement service options

Overview:

Service options refers to the different methods customers can transfer funds (i.e. cash pickup, bank deposit, wallet deposit, card deposit). MoneyGram support multiple service options to any given destinationCountry.

serviceOptionCode will contain a unique code to identify the service option. serviceOptionName will contain the consumer facing name convention that can be displayed in the application UI.

A full list of supported serviceOptionCodes and serviceOptionNames are below:

serviceOptionCodeserviceOptionName
WILL_CALL10 Minute Service
WILLCALL_TO10 Minute Service to
2_HOUR2 Hour Service
OVERNIGHTOvernight pick-up after 7am at any
OVERNIGHT2ANYOvernight Available after 7am
24_HOUR24 Hour Service
48_HOUR48 Hour Service
BANK_DEPOSITBank Deposit
DIRECT_TO_ACCTSend to Wallet
CARD_DEPOSITSend to a Card
HOME_DELIVERYHome Delivery



How to implement:

  1. serviceOptionCode contains the unique code of the service option. It can be passed on the Quote API request to quote a specific service option to a destinationCountry.

curl --request POST \
     --url https://sandboxapi.moneygram.com/transfer/v1/transactions/quote \
     --header 'X-MG-ClientRequestId: 957908758' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer NG46z9GEpNQlh0P5X9ISIHHX4GO3' \
     --header 'content-type: application/json' \
     --data '
{
  "targetAudience": "CONSUMER_FACING",
  "agentPartnerId": 43688984,
  "destinationCountryCode": "IND",
  "destinationCountrySubdivisionCode": "IN-DL",
  "serviceOptionCode": "WILL_CALL",
  "sendAmount": {
    "value": 100,
    "currencyCode": "USD"
  },
  "sendAmountIncludingFee": true
  "receiveCurrencyCode": "INR",
 }
'
{
  "transactions": [
    {
      "transactionId": "5cd02b98-aed2-4a7d-b857-41fb76af108f",
      "serviceOptionCode": "0",
      "serviceOptionName": "WILL_CALL",
      "sendAmount": {
        "amount": {
          "value": 100,
          "currencyCode": "USD"
        },
        "fees": {
          "value": 15,
          "currencyCode": "USD"
        },
        "taxes": {
          "value": 0,
          "currencyCode": "USD"
        },
        "total": {
          "value": 100,
          "currencyCode": "USD"
        }
      },
      "receiveAmount": {
        "amount": {
          "value": 6821.44,
          "currencyCode": "INR"
        },
        "fees": {
          "value": 0,
          "currencyCode": "INR"
        },
        "taxes": {
          "value": 0,
          "currencyCode": "INR"
        },
        "total": {
          "value": 6821.44,
          "currencyCode": "INR"
        },
        "fxRate": 80.2522,
        "fxRateEstimated": false
      }
    }
  ]
}

  1. If left blank on the Quote API request, all service option to the destination will be returned.

curl --request POST \
     --url https://sandboxapi.moneygram.com/transfer/v1/transactions/quote \
     --header 'X-MG-ClientRequestId: 957908758' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer NG46z9GEpNQlh0P5X9ISIHHX4GO3' \
     --header 'content-type: application/json' \
     --data '
{
  "targetAudience": "CONSUMER_FACING",
  "agentPartnerId": 43688984,
  "destinationCountryCode": "IND",
  "destinationCountrySubdivisionCode": "IN-DL",
  "serviceOptionCode": "null",
  "sendAmount": {
    "value": 100,
    "currencyCode": "USD"
  },
  "sendAmountIncludingFee": true
  "receiveCurrencyCode": "INR",
 }
{
  "transactions": [
    {
      "transactionId": "5cd02b98-aed2-4a7d-b857-41fb76af108f",
      "serviceOptionCode": "0",
      "serviceOptionName": "WILL_CALL",
      "sendAmount": {
        "amount": {
          "value": 100,
          "currencyCode": "USD"
        },
        "fees": {
          "value": 15,
          "currencyCode": "USD"
        },
        "taxes": {
          "value": 0,
          "currencyCode": "USD"
        },
        "total": {
          "value": 100,
          "currencyCode": "USD"
        }
      },
      "receiveAmount": {
        "amount": {
          "value": 6821.44,
          "currencyCode": "INR"
        },
        "fees": {
          "value": 0,
          "currencyCode": "INR"
        },
        "taxes": {
          "value": 0,
          "currencyCode": "INR"
        },
        "total": {
          "value": 6821.44,
          "currencyCode": "INR"
        },
        "fxRate": 80.2522,
        "fxRateEstimated": false
      }
    }
    {
    	{
    	"transactionId": "5cd02b98-aed2-4a7d-b857-41fb76af108f",
      "serviceOptionCode": "0",
      "serviceOptionName": "BANK_DEPOSIT",
      "sendAmount": {
        "amount": {
          "value": 100,
          "currencyCode": "USD"
        },
        "fees": {
          "value": 15,
          "currencyCode": "USD"
        },
        "taxes": {
          "value": 0,
          "currencyCode": "USD"
        },
        "total": {
          "value": 100,
          "currencyCode": "USD"
        }
      },
      "receiveAmount": {
        "amount": {
          "value": 6821.44,
          "currencyCode": "INR"
        },
        "fees": {
          "value": 0,
          "currencyCode": "INR"
        },
        "taxes": {
          "value": 0,
          "currencyCode": "INR"
        },
        "total": {
          "value": 6821.44,
          "currencyCode": "INR"
        },
        "fxRate": 80.2522,
        "fxRateEstimated": false
      }
    }
  ]
}

  1. serviceOptionName is returned on Quote Response. The values returned in the serviceOptionName are consumer facing naming conventions and must be used in the application UI.