curl --request POST \
--url https://api.malga.io/v1/sellers/{sellerId}/registration-reviews/{processId}/submit \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--header 'X-Client-Id: <api-key>' \
--data '
{
"collection": {
"channel": "in_app",
"collectedAt": "2026-08-28T14:20:00.000Z",
"journeyId": "jr_8f14e45fceea",
"sourceIp": "200.150.10.22",
"userAgent": "Mozilla/5.0"
},
"data": {
"revenue": "10000_to_50000",
"owner": {
"address": {
"zipCode": "01310200"
}
}
}
}
'const options = {
method: 'POST',
headers: {
'X-Client-Id': '<api-key>',
'X-Api-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
collection: {
channel: 'in_app',
collectedAt: '2026-08-28T14:20:00.000Z',
journeyId: 'jr_8f14e45fceea',
sourceIp: '200.150.10.22',
userAgent: 'Mozilla/5.0'
},
data: {revenue: '10000_to_50000', owner: {address: {zipCode: '01310200'}}}
})
};
fetch('https://api.malga.io/v1/sellers/{sellerId}/registration-reviews/{processId}/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.malga.io/v1/sellers/{sellerId}/registration-reviews/{processId}/submit"
payload := strings.NewReader("{\n \"collection\": {\n \"channel\": \"in_app\",\n \"collectedAt\": \"2026-08-28T14:20:00.000Z\",\n \"journeyId\": \"jr_8f14e45fceea\",\n \"sourceIp\": \"200.150.10.22\",\n \"userAgent\": \"Mozilla/5.0\"\n },\n \"data\": {\n \"revenue\": \"10000_to_50000\",\n \"owner\": {\n \"address\": {\n \"zipCode\": \"01310200\"\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Client-Id", "<api-key>")
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"error": {
"type": "bad_request",
"code": 400,
"key": "invalid_registration_review_payload",
"details": [
"missing requested field: owner.address.zipCode",
"field not requested by the provider: business.email"
]
}
}{
"error": {
"type": "api_error",
"code": 123,
"declinedCode": "<string>",
"key": "<string>",
"businessCode": "<string>",
"message": "<string>",
"details": "<array>"
}
}{
"error": {
"type": "bad_request",
"code": 409,
"key": "invalid_registration_review_transition",
"details": [
"transition \"pending_to_submitting\" is not allowed while the registration review is \"finished\""
]
}
}{
"error": {
"type": "api_error",
"code": 123,
"declinedCode": "<string>",
"key": "<string>",
"businessCode": "<string>",
"message": "<string>",
"details": "<array>"
}
}Enviar os dados coletados de uma revisão cadastral
Envia ao provedor os dados que você coletou do recebedor para encerrar o processo.
O bloco data deve conter exatamente os campos listados em requestedFields.fields do processo: nem um a menos, nem um que não tenha sido pedido. O bloco collection registra como você obteve esses dados.
A resposta é 202: o envio ao provedor acontece em segundo plano e o desfecho chega pelos eventos seller.registration_review.finished e seller.registration_review.failed.
curl --request POST \
--url https://api.malga.io/v1/sellers/{sellerId}/registration-reviews/{processId}/submit \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--header 'X-Client-Id: <api-key>' \
--data '
{
"collection": {
"channel": "in_app",
"collectedAt": "2026-08-28T14:20:00.000Z",
"journeyId": "jr_8f14e45fceea",
"sourceIp": "200.150.10.22",
"userAgent": "Mozilla/5.0"
},
"data": {
"revenue": "10000_to_50000",
"owner": {
"address": {
"zipCode": "01310200"
}
}
}
}
'const options = {
method: 'POST',
headers: {
'X-Client-Id': '<api-key>',
'X-Api-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
collection: {
channel: 'in_app',
collectedAt: '2026-08-28T14:20:00.000Z',
journeyId: 'jr_8f14e45fceea',
sourceIp: '200.150.10.22',
userAgent: 'Mozilla/5.0'
},
data: {revenue: '10000_to_50000', owner: {address: {zipCode: '01310200'}}}
})
};
fetch('https://api.malga.io/v1/sellers/{sellerId}/registration-reviews/{processId}/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.malga.io/v1/sellers/{sellerId}/registration-reviews/{processId}/submit"
payload := strings.NewReader("{\n \"collection\": {\n \"channel\": \"in_app\",\n \"collectedAt\": \"2026-08-28T14:20:00.000Z\",\n \"journeyId\": \"jr_8f14e45fceea\",\n \"sourceIp\": \"200.150.10.22\",\n \"userAgent\": \"Mozilla/5.0\"\n },\n \"data\": {\n \"revenue\": \"10000_to_50000\",\n \"owner\": {\n \"address\": {\n \"zipCode\": \"01310200\"\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Client-Id", "<api-key>")
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"error": {
"type": "bad_request",
"code": 400,
"key": "invalid_registration_review_payload",
"details": [
"missing requested field: owner.address.zipCode",
"field not requested by the provider: business.email"
]
}
}{
"error": {
"type": "api_error",
"code": 123,
"declinedCode": "<string>",
"key": "<string>",
"businessCode": "<string>",
"message": "<string>",
"details": "<array>"
}
}{
"error": {
"type": "bad_request",
"code": 409,
"key": "invalid_registration_review_transition",
"details": [
"transition \"pending_to_submitting\" is not allowed while the registration review is \"finished\""
]
}
}{
"error": {
"type": "api_error",
"code": 123,
"declinedCode": "<string>",
"key": "<string>",
"businessCode": "<string>",
"message": "<string>",
"details": "<array>"
}
}Path Parameters
Identificador do seller
Identificador do processo no provedor
Body
Como você obteve do recebedor os dados que está enviando.
O provedor proíbe preencher uma revisão cadastral com dado tirado de bureau, da base do marketplace, do onboarding ou de um envio anterior: a coleta tem de ser ativa, feita com o recebedor.
Show child attributes
Show child attributes
Campos coletados, no vocabulário da Malga, correspondendo exatamente aos caminhos de requestedFields.fields do processo.
{
"revenue": "10000_to_50000",
"owner": {
"address": {
"street": "Avenida Paulista",
"streetNumber": "1578",
"zipCode": "01310200"
}
}
}
Response
Coleta aceita e envio ao provedor iniciado
Was this page helpful?