GET DFL Limits

'PUT /agent/v1/agentDFL'


Development Guide:

The Locator API module retrieves locations available to send or receive money with MoneyGram's services within a specified radius of address entered.

1. Prepare headers & authentication:

Call the 'Agent DFL' endpoint with a PUT HTTP method, providing the OAuth access_token in the header and all other required header values

Note: MoneyGram uses the OAuth 2.0 framework. The application must use their OAuth client credentials to generate an accessToken by calling the Get access token endpoint. The token is valid for 1 hour and must be passed as a header value in all subsequent API HTTP calls. Learn More

🚀

Launch Code Example:


2. Provide agentPartnerID, posId, & baseCurrency as query parameters:

The application must provide the search agentPartnerID, posId, and baseCurrency as a query parameter in the API request

🚀

Launch Code Example:


3. Make the request and handle the response:

The application must call the 'Agent DFL' endpoint with a PUT HTTP method. The Agent DFL API will respond with a HTTP 200 OK Status and an array of agentDFLInfoList which will include all DFL types applicable for agent.

  • Success | Parse the Response | 200 OK HTTP Status
    An array of agentDFLInfoList will be returned with associated data including: dflType, productVariant, limitAmount, totalAmount, and remainingAmount. The Agent DFL endpoint will return the all DFL Types applicable for the Agent Partner Id.
  • Success | Agent Location search has no content | 204 No Content HTTP Status
    When the 'Agent DFL API' responds with 204 HTTP Status, the request has been successful but "No Content" can be found matching the search parameters.
  • Failed | Handle the Error | 400 Bad Request HTTP Status
    When the 'Retrieve DFL Limits' endpoint responds with 400 HTTP Status, specific error code/s will be returned with an array of offending fields. The application will need to resolve these errors and resubmit the request.
🚀

Launch Code Example:

4. You're done!

The application can use can be used to provide further information about the Agents daily financial limits and the remaining balances for the day.


Code Examples

const axios = require('axios');
const { v4: uuidv4 } = require('uuid');

const agentDFL = async () => {

    // Step 1: Read configuration values with upmost security
    const token = "your_access_token_from_oauth_response"
    // For production - api.moneygram.com & For test - sandboxapi.moneygram.com
    const host = "sandboxapi.moneygram.com";
    const url = 'https://' + host + '/agentDFL/v1';

    // Step 2: Create the GET request headers & params
    const headers = {
        'Content-Type': 'application/json',
        'X-MG-ClientRequestId': uuidv4(), // New UUID for each request tracing
        'Authorization': 'Bearer ' + token,
    };
    
    const params = {
        agentPartnerId: "uniqueAgentPartnerId",
        posId: "pointOfSaleIdentifier",
       }

    try {
        // Step 3: Send the request and obtain the response
        axios.get(url, { params, headers })
            .then(function (response) {
                // Step 4: Parse the success response and process further
                console.log(JSON.stringify(response.data, null, 2))
            })
            .catch(function (error) {
                // Step 5: Parse the error response and handle the errors
                if (error.response) {
                    console.log('Response status:', error.response.status);
                    console.log('Response body:', error.response.data);
                } else {
                    // TODO: handle generic errors
                    console.error('Error:', error.message);
                }
            });
    } catch (error) {
        // TODO: handle exception
        console.error('Error:', error.message);
    }
};

agentDFLInfoList();
import requests
import uuid
import json

def agentDFL():

    # Step 1: Read configuration values with upmost security
    token = "your_access_token_from_oauth_response"
    # For production - api.moneygram.com & For test - sandboxapi.moneygram.com
    host = "sandboxapi.moneygram.com";
    url = 'https://' + host + '/agentDFL/v1';

    # Step 2: Create the GET request headers & params
    headers = {
        'Content-Type': 'application/json',
        'X-MG-ClientRequestId': str(uuid.uuid4()), # New UUID for each request tracing
        'Authorization': 'Bearer ' + token,
    }

    params = {
        agentPartnerId: "uniqueAgentPartnerId",
        posId: "pointOfSaleIdentifier",
    }

    try:
        # Step 3: Send the request and obtain the response
        response = requests.get(url, params=params, headers=headers)

        # Step 4: Parse the success response and process further
        if response.status_code == 200:
            parsed_response = json.dumps(json.loads(response.text), indent=2)
            print(parsed_response)
        else:
            # Print the error message if request fails
            # TODO: handle exception
            print("Request failed with status code:", response.status_code)
            print(json.loads(json.dumps(response.text, indent=4)))

    except requests.exceptions.RequestException as e:
        # Print any error that occurred during the request
        # TODO: handle exception
        print("An error occurred:", e)

agentDFLInfoList();
package agentDFL;

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.UUID;

public class FxRate {

    public static void main(String[] args) {
        // Step 1: Read configuration values with upmost security
        String token = "your_access_token_from_oauth_response";

        // For production - api.moneygram.com & For test - sandboxapi.moneygram.com
        String host = "sandboxapi.moneygram.com";

        // Step 2: Create the GET request headers & params
        // Mandatory Query params
        String agentPartnerId = "agentPartnerId";
        String posId = "posId";
                
        String uri = "https://" + host + "/agentDFL/v1?"
                + "agentPartnerId=" + agentid
                + "&posId=" + posId;
               
        HttpClient httpClient = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(uri))
                .GET()
                .setHeader("Authorization", "Bearer " + token)
                .setHeader("X-MG-ClientRequestId", String.valueOf(UUID.randomUUID()))
                .build();

        try {
            // Step 3: Send the request and obtain the response
            HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());

            // Retrieve the status code and body from the response
            int statusCode = response.statusCode();

            // Step 4: Parse the success response and process further
            if (statusCode == 200) {
                String responseBody = response.body();
                System.out.println(responseBody);
            } else {
                // Step 5: Parse the error response and handle the errors
                String responseBody = response.body();
                System.out.println(responseBody);
            }
        } catch (Exception e) {
            e.printStackTrace();
            // TODO: handle exception
        }

    }
}

API Structure

Header Parameters

FieldTypeRequired/OptionalDescription
X-MG-ClientRequestIdStringOptionalClient Request ID that can be passed by the client application. Client request ID must be unique within a single session for unique requests. This attribute can be used for ensuring idempotent request processing for some APIs. MoneyGram recommends using a UUID for the value of this field.
X-MG-ConsumerIPAddressStringOptionalIP Address of the system initiating the session

Query Parameters

FieldTypeRequired/OptionalDescription
targetAudienceStringOptionalIdentifies the client. Error messages and attribute metadata tailored to client.
agentPartnerIdStringRequiredUnique agent or partner identifier
posIdNumberRequiredPoint of sale identifier
mainOfficeIdNumberOptionalMain office identifier. If NULL, backend will populate MOID in response
baseCurrencyNumberOptionalBase currency code. Defaults to USD if not provided

Response Fields


FieldTypeRequired/OptionalDescription
agentPartnerIdStringRequiredAgent Partner Identifier
posIdStringRequiredPoint of sale identifier
unitProfileIdStringRequiredUnit Profile Identifier
mainOfficeIdStringRequiredMain Office Identifier
baseCurrnecyStringRequiredBase Currency code. Defaults to USD if not provided in request.
agentDFLInfoList.dflTypeStringRequiredType of DFL Limit
agentDFLInfoList.productVariantStringRequiredProduct Type for DFL
agentDFLInfoList.limitAmountStringRequiredDFL Threshold limit amount
agentDFLInfoList.totalAmountStringRequiredAggregated amount up to this point
agentDFLInfoList.remainingAmountStringRequiredRemaining balance (limitAmount - totalAmount)