Resend Job Status
curl --request GET \
--url https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "processing",
"merchant_id": 303,
"start_time": "2026-03-24 08:00:00",
"end_time": "2026-03-24 11:00:00",
"total": 87,
"queued": 60,
"failed": 0,
"started_at": "2026-03-24T08:05:00+00:00",
"updated_at": "2026-03-24T08:07:32+00:00"
}
{
"status": "completed",
"merchant_id": 303,
"start_time": "2026-03-24 08:00:00",
"end_time": "2026-03-24 11:00:00",
"total": 87,
"queued": 86,
"failed": 1,
"started_at": "2026-03-24T08:05:00+00:00",
"updated_at": "2026-03-24T08:08:45+00:00"
}
{
"status": "failed",
"merchant_id": 303,
"start_time": "2026-03-24 08:00:00",
"end_time": "2026-03-24 11:00:00",
"total": 87,
"queued": 0,
"failed": 0,
"started_at": "2026-03-24T08:05:00+00:00",
"updated_at": "2026-03-24T08:05:03+00:00",
"reason": "Connection refused"
}
{
"message": "Job not found."
}
{
"message": "Forbidden"
}
Webhooks
Resend Job Status
Check the progress and status of a bulk payout webhook resend job
GET
/
v2
/
payout
/
notifications
/
resend
/
{jobId}
Resend Job Status
curl --request GET \
--url https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.wepayout.com.br/v2/payout/notifications/resend/{jobId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "processing",
"merchant_id": 303,
"start_time": "2026-03-24 08:00:00",
"end_time": "2026-03-24 11:00:00",
"total": 87,
"queued": 60,
"failed": 0,
"started_at": "2026-03-24T08:05:00+00:00",
"updated_at": "2026-03-24T08:07:32+00:00"
}
{
"status": "completed",
"merchant_id": 303,
"start_time": "2026-03-24 08:00:00",
"end_time": "2026-03-24 11:00:00",
"total": 87,
"queued": 86,
"failed": 1,
"started_at": "2026-03-24T08:05:00+00:00",
"updated_at": "2026-03-24T08:08:45+00:00"
}
{
"status": "failed",
"merchant_id": 303,
"start_time": "2026-03-24 08:00:00",
"end_time": "2026-03-24 11:00:00",
"total": 87,
"queued": 0,
"failed": 0,
"started_at": "2026-03-24T08:05:00+00:00",
"updated_at": "2026-03-24T08:05:03+00:00",
"reason": "Connection refused"
}
{
"message": "Job not found."
}
{
"message": "Forbidden"
}
Overview
After dispatching a bulk resend job via Resend Payout Webhooks (Bulk), use this endpoint to monitor its progress. Job state is available for 24 hours after completion.Path Parameters
string
required
The job ID returned by the bulk resend endpoint.Example:
"a3f1bc2e4d8f0a1b2c3d4e5f6a7b8c9d"Response
string
Current status of the job.
| Value | Description |
|---|---|
processing | Job is running — transactions are being queued |
completed | Job finished successfully |
failed | Job encountered a fatal error and was aborted |
integer
ID of the merchant for which the resend was triggered.Example:
303string
Start of the time range used in the original request.Example:
"2026-03-24 08:00:00"string
End of the time range used in the original request.Example:
"2026-03-24 11:00:00"integer
Total number of payout transactions matched at the time of dispatch.Example:
87integer
Number of webhook notifications successfully enqueued so far.Example:
60integer
Number of webhook notifications that failed to be enqueued.Example:
1string
ISO 8601 timestamp of when the job started.Example:
"2026-03-24T08:05:00+00:00"string
ISO 8601 timestamp of the last state update.Example:
"2026-03-24T08:07:32+00:00"string
Present only when
status is failed. Describes the fatal error that caused the job to abort.Example: "Connection refused"{
"status": "processing",
"merchant_id": 303,
"start_time": "2026-03-24 08:00:00",
"end_time": "2026-03-24 11:00:00",
"total": 87,
"queued": 60,
"failed": 0,
"started_at": "2026-03-24T08:05:00+00:00",
"updated_at": "2026-03-24T08:07:32+00:00"
}
{
"status": "completed",
"merchant_id": 303,
"start_time": "2026-03-24 08:00:00",
"end_time": "2026-03-24 11:00:00",
"total": 87,
"queued": 86,
"failed": 1,
"started_at": "2026-03-24T08:05:00+00:00",
"updated_at": "2026-03-24T08:08:45+00:00"
}
{
"status": "failed",
"merchant_id": 303,
"start_time": "2026-03-24 08:00:00",
"end_time": "2026-03-24 11:00:00",
"total": 87,
"queued": 0,
"failed": 0,
"started_at": "2026-03-24T08:05:00+00:00",
"updated_at": "2026-03-24T08:05:03+00:00",
"reason": "Connection refused"
}
{
"message": "Job not found."
}
{
"message": "Forbidden"
}
Code Examples
curl -X GET "https://api.wepayments.com/v2/payout/notifications/resend/a3f1bc2e4d8f0a1b2c3d4e5f6a7b8c9d" \
-H "Authorization: Bearer YOUR_API_KEY"
const jobId = 'a3f1bc2e4d8f0a1b2c3d4e5f6a7b8c9d';
const response = await fetch(
`https://api.wepayments.com/v2/payout/notifications/resend/${jobId}`,
{
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
}
);
const job = await response.json();
console.log(`Status: ${job.status} — queued: ${job.queued}/${job.total}`);
import requests
job_id = 'a3f1bc2e4d8f0a1b2c3d4e5f6a7b8c9d'
response = requests.get(
f'https://api.wepayments.com/v2/payout/notifications/resend/{job_id}',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
job = response.json()
print(f"Status: {job['status']} — queued: {job['queued']}/{job['total']}")
<?php
$jobId = 'a3f1bc2e4d8f0a1b2c3d4e5f6a7b8c9d';
$ch = curl_init("https://api.wepayments.com/v2/payout/notifications/resend/{$jobId}");
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_API_KEY']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
echo "Status: {$response['status']} — queued: {$response['queued']}/{$response['total']}";
?>
Polling the Job
Job state is updated in real-time as the job processes each chunk of 200 transactions. A simple polling pattern:async function waitForJob(jobId, intervalMs = 3000) {
while (true) {
const res = await fetch(
`https://api.wepayments.com/v2/payout/notifications/resend/${jobId}`,
{ headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);
const job = await res.json();
console.log(`[${job.status}] queued: ${job.queued}/${job.total}, failed: ${job.failed}`);
if (job.status === 'completed' || job.status === 'failed') {
return job;
}
await new Promise(resolve => setTimeout(resolve, intervalMs));
}
}
Job state is stored for 24 hours. After that, the endpoint will return
404.Related
Resend Webhooks (Bulk)
Dispatch a new bulk resend job
Payout Webhook
Understand the webhook payload structure
Was this page helpful?

