PUT Update a Business Profile
PUT /business/v1/profiles/{businessProfileId}
Development Guide
The 'Update a Business Profile' endpoint allows the application to make changes to a businessProfileId
.
1. Prepare headers & authentication:
The application must call the Update a Business Profile endpoint with a GET 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
👉Business Profiles - Update a Business Profile - HeadersOpen Recipe
2. Provide businessProfileId
as a path parameter:
businessProfileId
as a path parameter:The application must provide all thebusinessProfileId
as a path parameter.
Launch Example Code
👉Business Profiles - Update a Business Profile - businessProfileIdOpen Recipe
3. Provide request body:
The application must provide the following required fields in the request body: businessDetails.businessName
, businessDetails.legalEntityName
, businessDetails.businessRegistrationNumber
businessDetails.businessCountryOfRegistration
, businessDetails.address.line1
, businessDetails.address.city
, businessDetails.address.countryCode
Launch Example Code
👉Business Profiles - Update a Business Profile - Request BodyOpen Recipe
4. Make the request and handle the response:
The application will call the 'Update a Business Profile' endpoint with a PUT HTTP method. The application must build to handle the following response scenarios.
- Success | Parse the Response | 200 OK HTTP Status
When the update a business profile endpoint responds with a 200 HTTP Status, the response will return theupdateSuccess: true
, and thebusinessProfileId
that was updated.
- Failed | Handle the Error | 400 Bad Request HTTP Status
When the Update a consumer profile 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 update request
Launch Example Code
👉Business Profiles - Update a Business Profile - 200 OkOpen Recipe.
👉Business Profiles - Update a Business Profile - 400 Bad RequestOpen Recipe
Code Examples
const axios = require('axios');
const { v4: uuidv4 } = require('uuid');
const UpdateBusinessProfile = 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 PUT 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 request = {
agentPartnerId: "your_partner_id",
targetAudience: "AGENT_FACING",
userLanguage: "en-US",
businessDetails: {
businessName: "ACME Hotels",
legalEntitiyName: "ACME Hotels",
businessRegistrationNumber: "ACME1234",
address: {
line1: "123 Main St",
city: "Dallas",
countryCode: "USA",
countrySubDivisionCode: "US-TX",
postalCode: 75001
},
contactDetails: {
email: "[email protected]",
phone: {
number: 555551234,
countryDialCode: 1
},
},
},
}
try {
// Step 3: Send the request and obtain the response
axios.put(url + "/" + businessProfileId, request, { 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);
}
};
updateBusinessProfile();
import requests
import uuid
import json
def update_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 PUT 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"
request = {
"agentPartnerId": "your_partner_id",
"targetAudience": "AGENT_FACING",
"userLanguage": "en-US",
" businessDetails": {
"businessName": "ACME Hotels",
"legalEntitiyName": "ACME Hotels",
"businessRegistrationNumber": "ACME1234",
"address": {
"line1": "123 Main St",
"city": "Dallas",
"countryCode": "USA",
"countrySubDivisionCode": "US-TX",
"postalCode": "75001",
},
"contactDetails": {
"email": "[email protected]",
"phone": {"number": "555551234", "countryDialCode": "1"},
},
},
}
try:
# Step 3: Send the request and obtain the response
response = requests.put(
url + "/" + businessProfileId, json=request, 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)
update_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 UpdateBusinessProfile {
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";
String businessProfileId = "business_profile_id";
String uri = "https://" + host + "/business/v1/profiles/" + businessProfileId;
// Step 2: Create the POST request headers & body
// Create a JSON object
JsonObjectBuilder requestBuilder = Json.createObjectBuilder()
.add("targetAudience", "AGENT_FACING")
.add("agentPartnerId", "your_partner_id")
.add("userLanguage", "en-US")
.add("businessDetails", Json.createObjectBuilder().add("businessName", "ACME Hotels")
.add("legalEntityName", "ACME Hotels")
.add("businessRegistrationNumber", "ACME1234")
.add("businessCountryOfRegistration", "USA")
.add("address", Json.createObjectBuilder().add("line1", "100 Main St")
.add("line2", "")
.add("line3", "")
.add("city", "Dallas")
.add("countrySubdivisionCode", "US-TX")
.add("countryCode", "USA")
.add("postalCode", "75001")))
.add("contactDetails", Json.createObjectBuilder().add("email", "[email protected]")
.add("phone", Json.createObjectBuilder()
.add("number", "555551234")
.add("countryDialCode", "1")));
JsonObject jsonObject = requestBuilder.build();
// Create a StringWriter to write the JSON string
StringWriter stringWriter = new StringWriter();
try (JsonWriter jsonWriter = Json.createWriter(stringWriter)) {
jsonWriter.writeObject(jsonObject);
}
// Get the JSON string from the StringWriter
String jsonString = stringWriter.toString();
HttpClient httpClient = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(uri))
.put(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
}
}
}
Request & Response Examples
curl --request POST \
--url https://sandboxapi.moneygram.com/business/v1/profiles/8fe93fce-10cb-471b-a505-4dd37adc89fe \
--header 'X-MG-ClientRequestId: 4c79b06f-a2af-4859-82c8-28cbb0bf361b' \
--header 'accept: application/json' \
--header 'authorization: Bearer ***************************' \
--header 'content-type: application/json' \
--data '
{
"targetAudience": "AGENT_FACING",
"agentPartnerId": "123456789",
"userLanguage": "en-US",
"businessDetails": {
"partnerBusinessProfileId": "987654321",
"businessName": "ACME HOTELS",
"legalEntityName": "ACME Hotels",
"businessType": "ACCOMMODATION_HOTELS",
"businessRegistrationNumber": "ACME1234",
"businessIssueDate": "2024-01-10",
"businessCountryOfRegistration": "USA",
"address": {
"line1": "230 Main St",
"city": "Dallas",
"countrySubdivisionCode": "US-TX",
"countryCode": "USA",
"postalCode": "75001"
},
"contactDetails": {
"email": "[email protected]",
"phone": {
"number": "555551234",
"countryDialCode": "1"
}
}
}
}
{
"updateSuccess": true,
"businessProfileId": "267aaaef-dcd0-4682-bb8f-06db4cfb0bfd",
"partnerProfileId": "987654321"
}
API Structure
Header Parameters
Name | Type | Required /Optional | Description |
---|---|---|---|
X-MG-ClientRequestId | String | Required | Client 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-ConsumerIPAddress | String | Optional | IP Address of the system initiating the session |
Path Parameters
Name | Type | Required /Optional | Description |
---|---|---|---|
businessProfileId | String | Required | Business's unique MoneyGram identifier |
Request Fields
Field | Type | Required /Optional | Description |
---|---|---|---|
targetAudience | String | Optional | Enumerated value to tailor MoneyGram’s error messages and field metadata to a in-store, digital or crypto customer |
agentPartnerId | String | Optional | Unique agent or partner identifier |
userLanguage | String | Optional | Language used by the user/operator |
businessDetails.partnerBusinessProfileId | String | Optional | Partners business profileId. This will be passed from the partner and mapped to the MoneyGram profileId . |
businessDetails.businessName | String Min Length: 1 Max Length: 100 | Required | Name of the business |
businessDetails.legalEntityName | String Min Length: 1 Max Length: 100 | Required | The legal name of the business |
businessDetails.businessType | String | Optional | Type of business (Enumerated Values) |
businessDetails.businessRegistrationNumber | String | Required | Business registration number |
businessDetails.businessIssueDate | String | Optional | Date of business formation |
businessDetails.businessCountryOfRegistration | String Min Length: 1 max Length: 20 | Required | Business's country of registration |
businessDetails.address.line1 | String Min length: 1 Max Length: 30 | Required | Residence address line 1 |
businessDetails.address.line2 | String Min length: 1 Max length: 30 | Optional | Residence address line 2 (if applicable) |
businessDetails.address.line3 | String Min length: 1 Max length: 30 | Optional | Residence address line 3 (if applicable) |
businessDetails.business.address.city | String Min length: 1 Max length: 20 | Required | Business City |
businessDetails.address.countryCode | String Length: 3 | Required | Country of residence (ISO Alpha-3 Code) |
businessDetails.address.countrySubdivisionCode | String Length: 6 | Optional | State/province of business |
businessDetails.address.postalCode | String Min length: 2 Max length: 6 | Optional | Postal code/ZIP of business |
businessDetails.contactDetails.email | String Min length: 1 Max length: 255 | Optional | Email address |
businessDetails.contactDetails.phone.number | String Min length: 5 Max length: 14 | Optional | Business phone number |
businessDetails.contactDetails.phone.countryDialCode | String Min length: 1 Max length: 3 | Optional | Country calling code NOTE: For country calling code see Reference Data API Module /countries endpoint phoneDialCodes |
Response Fields
Field | Type | Required/ Optional | Description |
---|---|---|---|
updateSuccess | String | Required | Flag to indicate the update to the business profile was successful. |
businessProfileId | String | Required | Business's unique MoneyGram identifier |
partnerProfileId | String | Optional | Partners business profileId this will be passed from the partner and mapped to the MoneyGram profileId. |
Updated 18 days ago