Escrow Safe Trade is live: protect your next high-value deal Learn more
ProductsPayment links & checkoutM-Pesa, cards, invoices, split payoutsEscrow Safe TradeMilestone and release-based escrowWallets & P2PPersonal and business walletsChama, Lengo & DeniGroup savings, goals and IOUsBusiness toolkitAccounting, payroll, POS, ticketingBulk payments & payrollPay many people in one uploadSubscriptions & billingRecurring plans and renewalsRent, loans & donationsCollections and campaignsAll products
SolutionsMerchantsBuyersChama groupsBusiness solutionsIndustries
Pricing
DevelopersDeveloper overviewQuickstart, auth and sandboxREST APIsCheckout, invoices and requestsWebhooksSigned, real-time eventsWallet-as-a-ServiceVirtual sub-accountsDocumentationGuides and API reference
Security
CompanyAbout usCareersPartnersBlogHelp centreContact us
Log in Get started Talk to sales
Accept payments

Reconciliation

Match C2B payments that arrived without a clear reference to the right checkout session. Built for POS and back-office tools.

Base URLhttps://api.paysasa.com/api/v1Authx-api-keyFormatJSON

C2B reconciliation endpoints are API-key accessible and scoped to the key's business, enabling POS and third-party backoffice workflows.

GET/mp/c2b/reconciliation#

List unmatched callback items and candidate checkout sessions.

cURL
curl "https://api.paysasa.com/api/v1/mp/c2b/reconciliation?business_id=biz_xxxxxxxxxxxxxxxx&status=pending_review"       -H "x-api-key: apk_live_a1b2c3d4.7f9e0a..."
POST/mp/c2b/reconciliation/:unmatchedId/match#

Resolve one unmatched callback by matching it to a checkout session.

JavaScript
const res = await fetch(
  "https://api.paysasa.com/api/v1/mp/c2b/reconciliation/trx_01hx.../match",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "x-api-key": "apk_live_a1b2c3d4.7f9e0a...",
    },
    body: JSON.stringify({
      checkout_session_id: "ses_01hx...",
      force: false,
    }),
  }
);
const data = await res.json();
console.log(data.ok);