DELETE a Business Profile

DELETE /business/v1/profiles/{businessProfileId}

Development Guide

The 'Delete a Business Profile' endpoint allows the application to remove a businessProfileId.



1. Prepare headers & authentication:

The application must call the 'Delete a Business Profile' endpoint with a DELETE 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 Example Code




2. Provide businessProfileId as a path parameter:

The application must provide all thebusinessProfileId as a path parameter.


🚀

Launch Example Code




3. Make the request and handle the response:

The application will call the 'Delete a Business Profile' endpoint with a DELETE HTTP method. The application must build to handle the following response scenarios.


  • Success | Parse the Response | 200 OK HTTP Status
    When the 'Delete a Business Profile' endpoint responds with a 200 HTTP Status the response will return "deleteSuccess": true, and confirm the businessProfileId and the partnerProfileId that was deleted.

  • Failed | Handle the Error | 400 Bad Request HTTP Status
    When the 'Delete a Business Profile' endpoint responds with 400 HTTP Status, specific error code/s will be returned with an array of offending fields. The partner will need to resolve these errors and resubmit the transaction.

🚀

Launch Example Code

.





Code Examples


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

const deleteBusinessProfile = 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 + '/business/v1/profiles';

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

    const businessProfileId = "business_profile_id";
    const params = {
        agentPartnerId: "your_partner_id",
        targetAudience: "AGENT_FACING",
        userLanguage: "en-US",
    }

    try {
        // Step 3: Send the request and obtain the response
        axios.delete(url + "/" + businessProfileId, { 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);
    }
};

deleteBusinessProfile();
import requests
import uuid
import json

def delete_business_profile():

    # 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 + '/business/v1/profiles';

    # Step 2: Create the DELETE request headers & body
    headers = {
        'Content-Type': 'application/json',
        'X-MG-ClientRequestId': str(uuid.uuid4()), # New UUID for each request tracing
        'Authorization': 'Bearer ' + token,
    }
    businessProfileId = 'business_profile_id';
    params = {
        'agentPartnerId': 'your_partner_id',
        'targetAudience': 'AGENT_FACING',
        'userLanguage': 'en-US',
    }

    try:
        # Step 3: Send the request and obtain the response
        response = requests.delete(url + "/" + businessProfileId, 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:
            # Step 5: Parse the error response and handle the errors
            print("Request failed with status code:", response.status_code)
            print(json.dumps(json.loads(response.text), indent=2))

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

delete_business_profile()
package businessProfiles;

import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.json.JsonWriter;
import java.io.StringWriter;
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 DeleteBusinessProfile {

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

          // Query params
        String agentPartnerId = "your_partner_id"
        String targetAudience = "AGENT_FACING"
        String userLanguage = "en-US";

        // For production - api.moneygram.com & For test - sandboxapi.moneygram.com
        String host = "sandboxapi.moneygram.com";
        String businessProfileId = "business_profile_id";
        String uri = "https://" + host + "/business/v1/profiles/" + businessProfileId + "?" + "agentPartnerId=" agentPartnerId + "userLanguage=" userLanguage +
         "targetAudience=" + targetAudience;;

        // Step 2: Create the Delete request 

        HttpClient httpClient = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(uri))
                .delete(HttpRequest.BodyPublishers.ofString(jsonString))
                .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

NameTypeRequired
/Optional
Description
X-MG-ClientRequestIdStringRequiredClient 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


Path Parameters

NameTypeRequired
/Optional
Description
businessProfileIdStringRequiredBusiness's unique MoneyGram identifier



Query Parameters

NameTypeRequired
/Optional
Description
targetAudienceStringOptionalEnumerated value to tailor MoneyGram’s error messages and field metadata to a in-store, digital or crypto customer
userLanguageStringRequiredLanguage used by the user/operator
agentPartnerIdStringRequired Unique agent or partner identifier


Response Fields

FieldTypeRequired/
Optional
Description
deleteSuccessStringRequiredFlag to indicate the delete of the business profile was successful.
businessProfileIdStringRequiredBusiness's unique MoneyGram identifier
partnerProfileIdStringOptionalPartners business profileId this will be passed from the partner and mapped to the MoneyGram profileId.