Set the business details
const url = 'https://sandbox.partners.loops.sa/v1/merchant/business-profile';const options = { method: 'PUT', headers: { 'Loops-Merchant-Id': 'mer_7Hq2Lw8Z', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"legal_name":"شركة المذاق الأصيل للوجبات السريعة","cr_number":"1010123456","vat_number":"310123456700003","national_address":{"building_number":"7421","street":"Prince Turki Street","district":"Al Olaya","city":"Riyadh","postal_code":"12214","additional_number":"3156"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://sandbox.partners.loops.sa/v1/merchant/business-profile \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Loops-Merchant-Id: mer_7Hq2Lw8Z' \ --data '{ "legal_name": "شركة المذاق الأصيل للوجبات السريعة", "cr_number": "1010123456", "vat_number": "310123456700003", "national_address": { "building_number": "7421", "street": "Prince Turki Street", "district": "Al Olaya", "city": "Riyadh", "postal_code": "12214", "additional_number": "3156" } }'Sets the merchant’s legal details. Replaces all detail fields; documents are uploaded separately.
Allowed while the profile is draft or rejected. Returns 409 business_profile_locked
while it is in_review or approved; contact Loops to change an approved profile.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”The merchant you are acting for (mer_…). Required for platform applications;
optional for direct integrations, which have a single merchant.
Request Bodyrequired
Section titled “Request Bodyrequired”object
As on the commercial registration.
Commercial registration number, 10 digits.
VAT registration number, 15 digits starting and ending with 3.
The Saudi national address, as on the national address certificate.
object
Responses
Section titled “Responses”The business profile.
object
draft: being filled in. in_review: submitted, Loops is reviewing it.
approved: locations can go live on delivery apps. rejected: fix what the review says and submit again.
object
As on the commercial registration.
Commercial registration number, 10 digits.
VAT registration number, 15 digits starting and ending with 3.
The Saudi national address, as on the national address certificate.
object
object
The kind of document.
Set by the review. pending until Loops reviews it.
Document types needed before you can submit. Loops sets this per merchant.
object
What to fix, when the profile is rejected.
Example
{ "status": "draft", "details": { "legal_name": "شركة المذاق الأصيل للوجبات السريعة", "cr_number": "1010123456", "vat_number": "310123456700003", "national_address": { "building_number": "7421", "street": "Prince Turki Street", "district": "Al Olaya", "city": "Riyadh", "postal_code": "12214", "additional_number": "3156" } }, "documents": [ { "id": "doc_3Hn8Wq", "type": "commercial_registration", "status": "pending", "file_name": "cr-certificate.pdf", "rejection_reason": "The certificate has expired. Upload the current one." } ], "required_documents": [ "commercial_registration", "vat_certificate", "national_address_certificate", "iban_certificate" ]}The request is invalid. errors lists each problem.
RFC 9457 Problem Details with a stable code.
object
Stable machine-readable error code. Switch on this, not on title.
For external_ref_conflict, the ID of the object that already uses the reference.
Field errors, for invalid_request.
object
Example
{ "type": "https://docs.partners.loops.sa/errors/external_ref_conflict", "title": "External reference already used", "status": 409, "code": "invalid_request", "detail": "A location with external_ref BR-01 already exists.", "request_id": "req_01J9X7P2QK", "existing_id": "loc_2Xf9K", "errors": [ { "field": "products[3].price", "message": "Required unless the product has variants." } ]}The access token is missing, expired or invalid.
RFC 9457 Problem Details with a stable code.
object
Stable machine-readable error code. Switch on this, not on title.
For external_ref_conflict, the ID of the object that already uses the reference.
Field errors, for invalid_request.
object
Example
{ "type": "https://docs.partners.loops.sa/errors/external_ref_conflict", "title": "External reference already used", "status": 409, "code": "invalid_request", "detail": "A location with external_ref BR-01 already exists.", "request_id": "req_01J9X7P2QK", "existing_id": "loc_2Xf9K", "errors": [ { "field": "products[3].price", "message": "Required unless the product has variants." } ]}Not allowed: the scope isn’t approved or granted, the connection is not active,
or your application is suspended. See code.
RFC 9457 Problem Details with a stable code.
object
Stable machine-readable error code. Switch on this, not on title.
For external_ref_conflict, the ID of the object that already uses the reference.
Field errors, for invalid_request.
object
Example
{ "type": "https://docs.partners.loops.sa/errors/external_ref_conflict", "title": "External reference already used", "status": 409, "code": "invalid_request", "detail": "A location with external_ref BR-01 already exists.", "request_id": "req_01J9X7P2QK", "existing_id": "loc_2Xf9K", "errors": [ { "field": "products[3].price", "message": "Required unless the product has variants." } ]}The request conflicts with the current state, for example an external_ref already in use,
or a business profile that is in review. See code.
RFC 9457 Problem Details with a stable code.
object
Stable machine-readable error code. Switch on this, not on title.
For external_ref_conflict, the ID of the object that already uses the reference.
Field errors, for invalid_request.
object
Example
{ "type": "https://docs.partners.loops.sa/errors/external_ref_conflict", "title": "External reference already used", "status": 409, "code": "invalid_request", "detail": "A location with external_ref BR-01 already exists.", "request_id": "req_01J9X7P2QK", "existing_id": "loc_2Xf9K", "errors": [ { "field": "products[3].price", "message": "Required unless the product has variants." } ]}© 2026 Loops Technologies | شركة لووبز للتقنيات. All rights reserved.
