Skip to main content

📌 Endpoint

PUT /stores/:storeId/payments/:paymentId Atualiza envio (shipment) e/ou metadata de um pagamento aprovado.

🔐 Autenticação

  • Rota privada.
  • Requer header Authorization com sua API key e plano ativo.
{
	"Authorization": "SUA_API_KEY_AQUI"
}

🧾 Parâmetros de rota

ParâmetroTipoObrigatórioDescrição
storeIdstringSimID da loja
paymentIdstringSimID do pagamento

🧍 Body (JSON)

CampoTipoObrigatórioRegras
shipmentstringNãoPENDING, PREPARING, SHIPPED, DELIVERED, RETURNED, CANCELLED
metadataobjectNãoobjeto até 999

✅ Exemplo de requisição

curl -X PUT "https://api.cabrapi.com.br/stores/STORE_ID/payments/PAYMENT_ID" \
	-H "Authorization: SUA_API_KEY_AQUI" \
	-H "Content-Type: application/json" \
	-d '{ "shipment": "SHIPPED" }'

🧩 Snippet (JavaScript - fetch, só trocar Authorization)

const API_BASE = "https://api.cabrapi.com.br";
const AUTHORIZATION = "SUA_API_KEY_AQUI";

const authHeaders = {
	Authorization: AUTHORIZATION,
	"Content-Type": "application/json"
};

const storesResponse = await fetch(`${API_BASE}/stores`, {
	headers: { Authorization: AUTHORIZATION }
});
const storesData = await storesResponse.json();
const storeId = storesData?.stores?.[0]?.id;

if (!storeId) throw new Error("Nenhuma loja encontrada para essa API key.");

const paymentsResponse = await fetch(`${API_BASE}/stores/${storeId}/payments`, {
	headers: { Authorization: AUTHORIZATION }
});
const paymentsData = await paymentsResponse.json();
let paymentId = paymentsData?.payments?.find((p) => p?.status === "APPROVED")?.id;

if (!paymentId) {
	throw new Error("Nenhum pagamento APPROVED encontrado para atualizar.");
}

const response = await fetch(`${API_BASE}/stores/${storeId}/payments/${paymentId}`, {
	method: "PUT",
	headers: authHeaders,
	body: JSON.stringify({ shipment: "SHIPPED" })
});

const data = await response.json();
console.log({ status: response.status, data });

📦 Resposta de sucesso (200)

{
	"status": true,
	"code": "PAYMENT_UPDATED",
	"payment": {
		"id": "PAYMENT_ID",
		"shipment": "SHIPPED",
		"status": "APPROVED"
	}
}

⚠️ Possíveis erros

  • 400 INVALID_DATA → body/parâmetros inválidos
  • 404 STORE_NOT_FOUND → loja não encontrada
  • 404 PAYMENT_NOT_FOUND → pagamento não encontrado
  • 403 UPDATE_NOT_ALLOWED → pagamento não está aprovado
  • 500 INTERNAL_SERVER_ERROR → erro interno