MoneyGram Cash Pickups
Wyre's integration with MoneyGram is fully live and operational. Through this integration, Wyre’s partners can now enable users to seamlessly transition between cash and cryptocurrency.
Powered by the Stellar blockchain and MoneyGram, end users can use fiat to load digital currencies into their digital wallets or cash-out their digital currencies at MoneyGram locations around the world - all without needing access to a bank account.
Necessary Account Settings
Wyre must manually configure the user scopes on your master account. This applies when your platform creates users with the "MONEY_GRAM_SEP24" scope. Please reach out to sales if interested.
High Level Flow
1. Create a User
Create a User, including the following fields:
{
"fields": {
"firstName": "Moneygram",
"lastName": "User",
"cellphoneNumber": "+16505555555",
"email": "[email protected]",
"dateOfBirth": "1990-01-01",
"residenceAddress": {
"street1": "123 Main st.",
"city": "Orlando",
"state": "FL",
"postalCode": "12345",
"country": "US"
}
},
"blockchains": [
"ALL"
],
"immediate": true
}
Once the User is created, you can retrieve the user to ensure the scope has been approved for that user.
curl --location --request GET 'https://api.testwyre.com/v3/users/US_ZZ8ZCJVG9XU?scopes=MONEY_GRAM_SEP24' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ' \
--data-raw ''
Validate that the status is 'Approved'.
{
"id": "US_ZZ8ZCJVG9XU",
"status": "APPROVED",
"partnerId": "PT_C9PEGH2L2BU",
"type": "INDIVIDUAL",
"createdAt": 1658171719697,
"depositAddresses": {
"BTC": "mvaPCjgeLn3VLB9gxMPNcVmUgUqW9eSBUj",
"MATIC": "0x98bf1231af6183cba038bbb8ff2edad3e4d5fef2",
"AVAX": "X-fuji1tpa6kknvsjaes4wwsxp4v2u69j7wer9rjz4z7p",
"ETH": "0x381f94ac6f3e945621b0d6b085eb210052169433",
"XLM": "GD7WXI7AOAK2CIPZVBEFYLS2NQZI2J4WN4HFYQQ4A2OMFVWGWAL3IW7K:XBXUHBDXCYQ",
"AVAXC": "0x1b0bc803e50498de25f4d3702c52596c69925a9c"
},
"totalBalances": {},
"availableBalances": {},
"passingChecks": [],
"fields": {
"firstName": {
"value": "Moneygram",
"error": null,
"status": "SUBMITTED"
},
"lastName": {
"value": "User",
"error": null,
"status": "SUBMITTED"
},
"cellphoneNumber": {
"value": "+16505555555",
"error": null,
"status": "SUBMITTED"
},
"dateOfBirth": {
"value": "1990-01-01",
"error": null,
"status": "SUBMITTED"
},
"email": {
"value": "[email protected]",
"error": null,
"status": "SUBMITTED"
},
"residenceAddress": {
"value": {
"street1": "123 Main st.",
"city": "Orlando",
"state": "FL",
"postalCode": "12345",
"country": "US"
},
"error": null,
"status": "SUBMITTED"
}
}
}
2. Create a Wallet for the User
Create a Wallet for the User. Be sure to user masquerading.
{
"name": "Moneygram User Wallet",
"type": "DEFAULT"
}
3. Transfer Funds from the User's Wallet to Moneygram
Create a Transfer to send funds from the User's Wallet to Moneygram. Be sure to use masquerading.
Key Request Attribute | Description |
---|---|
"source" | The funds must be sourced from a User's Wyre Wallet. |
"dest" | The dest of the transfer must be the Moneygram payment method: "paymentMethod:MGISep24PaymentMethod". |
"destCurrency" | The destCurrency must be Stellar USDC (sUSDC). |
"sourceCurrency" | The sourceCurrency must be one of the following supported currencies: USD, CAD, DAI, ETH, USDC, BTC, BRL, MXN, EUR, GBP, AUD, NZD, ARS, CHF, CLP, COP, CZK, DKK, ILS, INR, ISK, MYR, NOK, PHP, PLN, SEK, SGD, THB, HKD, VND, ZAR, KRW, JPY, USDT, BUSD, XLM, COMP, LINK, AAVE, BAT, RAI, ALGO, AUSDC, AUSDT, LETH, LUSDC, AVAXCUSDC |
{
"dest": "paymentMethod:MGISep24PaymentMethod",
"source": "wallet:WA_2MTCN3F2ZCP",
"autoConfirm": true,
"sourceCurrency": "USD",
"destCurrency": "SUSDC",
"destAmount": "5",
"owner": "user:US_ZZ8ZCJVG9XU"
}
4. Poll the Transfer
Once the transfer has been created, call Get Transfer to retrieve the completeDepositUrl. Use this url to direct the user to the Moneygram form.
curl --location --request GET 'https://api.testwyre.com/v3/transfers/TF_X729TBQ8CB9?masqueradeAs=user:US_79JN4CXZ88A' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ' \
--data-raw ''
{
"transfer": {
"id": "TF_X729TBQ8CB9",
"status": "PENDING",
"failureReason": null,
"language": "en",
"createdAt": 1658188219000,
"updatedAt": 1658188219000,
"completedAt": null,
"depositInitiatedAt": 1658188224000,
"cancelledAt": null,
"expiresAt": 1658188819000,
"owner": "user:US_79JN4CXZ88A",
"source": "wallet:WA_2MTCN3F2ZCP",
"dest": "paymentmethod:MGISep24PaymentMethod",
"sourceCurrency": "USD",
"sourceAmount": 5,
"destCurrency": "SUSDC",
"destAmount": "5",
"atMinFee": false,
"exchangeRate": 1,
"desc": null,
"message": null,
"totalFees": 0,
"fees": {
"USD": 0.00,
"SUSDC": 0.000000
},
"authorizingIp": "216.59.131.175",
"paymentUrl": null,
"exchangeOrderId": "EX_YQVPYPJ78PE",
"inExchangeId": null,
"chargeId": null,
"depositId": "DE_QZHRF6BP9HU",
"sourceTxId": "TF_X729TBQ8CB9-W",
"destTxId": "TR_9R3RYDJJY6Q",
"customId": null,
"buy": true,
"instantBuy": false,
"sell": false,
"exchange": true,
"send": false,
"deposit": false,
"withdrawal": true,
"reversingSubStatus": null,
"reversalReason": null,
"retrievalUrl": "https://www.testwyre.com//sign-in",
"destNickname": null,
"pendingSubStatus": "PROCESSING_DEPOSIT",
"destName": "MGI SEP24 PAYMENT METHOD",
"sourceName": "user:US_79JN4CXZ88A",
"estimatedArrival": 1658361024000,
"blockchainTx": null,
"statusHistories": [
{
"id": "GLRZ2RY74QH",
"transferId": "TF_X729TBQ8CB9",
"createdAt": 1658188222000,
"type": "OUTGOING",
"statusOrder": 0,
"statusDetail": "Initiating Transfer",
"state": "INITIATED",
"failedState": null
},
{
"id": "APPYC8FV3JH",
"transferId": "TF_X729TBQ8CB9",
"createdAt": 1658188222000,
"type": "OUTGOING",
"statusOrder": 200,
"statusDetail": "Processing Exchange",
"state": "PENDING",
"failedState": null
},
{
"id": "VW7C3PLV3FA",
"transferId": "TF_X729TBQ8CB9",
"createdAt": 1658188222000,
"type": "OUTGOING",
"statusOrder": 400,
"statusDetail": "Processing Deposit",
"state": "PENDING",
"failedState": null
}
],
"documents": [],
"pusherChannel": "5b39e8627fc9758a58b98d7fcc5dcc05",
"depositInfo": {
"id": "DE_QZHRF6BP9HU",
"paymentMethodId": "MGISep24PaymentMethod",
"createdAt": 1658188222000,
"currency": "SUSDC",
"amount": 5,
"fees": null,
"txId": "TR_9R3RYDJJY6Q",
"blockchainTxId": null,
"owner": "user:US_79JN4CXZ88A",
"completeDepositUrl": "https://extstellar.moneygram.com?operation=withdraw&lang=en&asset_code=USDC&transaction_id=e02b7d43-b688-4489-871b-44543b3d172e&token=eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJlMDJiN2Q0My1iNjg4LTQ0ODktODcxYi00NDU0M2IzZDE3MmUiLCJpc3MiOiJodHRwOi8vZXh0aW50c3Zjcy5hd3MubW9uZXlncmFtLmNvbS9zdGVsbGFyYWRhcHRlcnNlcnZpY2Uvc2VwMjQvdHJhbnNhY3Rpb25zL3dpdGhkcmF3L2ludGVyYWN0aXZlIiwic3ViIjoiR0Q3V1hJN0FPQUsyQ0lQWlZCRUZZTFMyTlFaSTJKNFdONEhGWVFRNEEyT01GVldHV0FMM0lXN0s6MTIwODM3NTExMyIsImlhdCI6MTY1ODE4ODIyMywiZXhwIjoxNjU4Mjc0NjIzfQ.UBv8RhQbbBE3DhoLj180DN7oUnrHm07IUkoSyqjdeww&amount=5.00&wallet_provider=WYRE",
"completionExpectedAt": null,
"originChannel": "API",
"ownerName": "User US_79JN4CXZ88A",
"receiptEmail": null,
"language": "en",
"originCountry": null,
"linkType": "AGGREGATOR",
"status": "PENDING"
},
"chargeInfo": null
}
}
5. User Completes MGI Form
End users will complete a form via MoneyGram's UI to enter transaction details and personal information. For a full demo of deposits and withdrawals, see a video here.
6. Provide More Info
After your user has completed the Moneygram form, you can provide them with information on next steps to complete the process.
curl --location --request GET 'https://api.testwyre.com/v3/sep-24/transaction/TF_X729TBQ8CB9' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ' \
--data-raw ''
{
"transaction": {
"id": "b22470be-0f87-4858-bc28-e918359f0b6b",
"kind": "WITHDRAWAL",
"status": "pending_user_transfer_complete",
"refunded": false,
"message": null,
"to": "GAYF33NNNMI2Z6VNRFXQ64D4E4SF77PM46NW3ZUZEEU5X7FCHAZCMHKU",
"from": "GD7WXI7AOAK2CIPZVBEFYLS2NQZI2J4WN4HFYQQ4A2OMFVWGWAL3IW7K",
"status_eta": null,
"stellar_transaction_id": "13f7fcc9f5c281e15582dadcc90b466c9a91a058fa9e658ab350832cc79db6d9",
"external_transaction_id": "98575108",
"more_info_url": "https://extstellar.moneygram.com/transaction-status?transaction_id=b22470be-0f87-4858-bc28-e918359f0b6b&token=eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiMjI0NzBiZS0wZjg3LTQ4NTgtYmMyOC1lOTE4MzU5ZjBiNmIiLCJpc3MiOiJtb3JlSW5mb1VybCIsInN1YiI6IkdEN1dYSTdBT0FLMkNJUFpWQkVGWUxTMk5RWkkySjRXTjRIRllRUTRBMk9NRlZXR1dBTDNJVzdLIiwiaWF0IjoxNjU4NTI1MTQ1LCJleHAiOjE2NTg2MTE1NDUsImNsaWVudF9kb21haW4iOiJ0ZXN0d3lyZS5jb20ifQ.vwUfLVuEsqXfitj45T249iIb8MtWJaZoKLsazslVLwM&lang=en-US&refNumber=98575108",
"amount_in": 5.0,
"amount_out": 5.0,
"amount_fee": 0.0,
"started_at": 1658182522000,
"completed_at": null,
"claimable_balance_id": null,
"deposit_memo_type": null,
"deposit_memo": null,
"withdraw_anchor_account": "GAYF33NNNMI2Z6VNRFXQ64D4E4SF77PM46NW3ZUZEEU5X7FCHAZCMHKU",
"withdraw_memo_type": "id",
"withdraw_memo": null
}
}
Direct the user to the more_info_url
to provide next steps. This url will provide the user with a reference ID and directions on how to locate a Moneygram location to receive cash. Once they pick up the funds, the Wyre Transfer will move into Completed status.
Updated about 2 years ago