Skip to content
Developer preview: the API may change before general availability. Request access

A business profile was rejected

POST

Loops couldn’t approve the business profile. review.notes and each document’s rejection_reason say what to fix. Correct the details or upload new documents, then submit again.

webhook-id
required
string

Unique delivery ID; equal to the event ID. Use it to ignore duplicates.

webhook-timestamp
required
string

Unix timestamp (seconds) when the delivery was signed.

webhook-signature
required
string

Standard Webhooks signature (v1,<base64 HMAC-SHA256>).

Media typeapplication/json
object
id
required
string
type
required
string
created_at
required
string format: date-time
merchant_id
required
string
location_id
string | null
connection_id
required
string
origin
required

What caused the change. Ignore events where application_id is your own.

object
type
string
Allowed values: channel api loops_app loops_team system
application_id
string | null
data
required

Event-specific payload.

object
key
additional properties
any
data
required
object
merchant_id
required
string
status
required

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.

string
Allowed values: draft in_review approved rejected
details
One of:
object
legal_name
required

As on the commercial registration.

string
cr_number
required

Commercial registration number, 10 digits.

string
/^[0-9]{10}$/
vat_number
required

VAT registration number, 15 digits starting and ending with 3.

string
/^3[0-9]{13}3$/
national_address
required

The Saudi national address, as on the national address certificate.

object
building_number
required
string
/^[0-9]{4}$/
street
required
string
district
required
string
city
required
string
postal_code
required
string
/^[0-9]{5}$/
additional_number
required
string
/^[0-9]{4}$/
documents
required
Array<object>
object
id
required
string
type
required

The kind of document.

string
Allowed values: commercial_registration vat_certificate national_address_certificate iban_certificate owner_id
status
required

Set by the review. pending until Loops reviews it.

string
Allowed values: pending accepted rejected
file_name
required
string
rejection_reason
string | null
uploaded_at
required
string format: date-time
required_documents
required

Document types needed before you can submit. Loops sets this per merchant.

Array<string>
Allowed values: commercial_registration vat_certificate national_address_certificate iban_certificate owner_id
review
object
submitted_at
string | null format: date-time
reviewed_at
string | null format: date-time
notes

What to fix, when the profile is rejected.

string | null

Return any 2xx within 10 seconds to acknowledge.