API Reference

API Callback

Handling API Callback in Your System

To ensure your workflow automation is complete, you need to handle several callbacks. You will need to accept the callback http request and returns response with HTTP Status 200 to give acknowledge that you have received the callback.

Payment Callback

Payment In and Payment Out Callbacks use the same payload. They only differ in their URL registration handlers, which helps you differentiate them if needed.

{
  "additional_info": {},
  "message": "transaction succeed",
  "payment_date": "2025-06-18",
  "payment_info": {
    "bank_transfer": {
      "amount": 12557,
      "created": "2025-06-18T04:38:54.415786634+07:00",
      "paid_amount": 12557,
      "paid_at": "2025-06-18T04:39:43.594065797+07:00",
      "status": "PAID",
      "updated": "2025-06-18T04:39:43.594065797+07:00"
    },
    "channel": "bca_manual",
    "method": "bank_transfer",
    "source": "open-api",
    "status": "PAID"
  },
  "ref_id": "PAY-REF/2025/06/IN/123"
}
{
  "additional_info": {},
  "message": "transaction succeed",
  "payment_date": "2025-06-18",
  "payment_info": {
    "channel": "qris",
    "event": "qr.payment",
    "method": "qris",
    "qris": {
      "amount": 10000,
      "created": "2025-06-18T05:16:51.708008011+07:00",
      "paid_amount": 10000,
      "paid_at": "2025-06-18T05:16:59.511610249+07:00",
      "status": "PAID",
      "updated": "2025-06-18T05:16:59.511610249+07:00"
    },
    "source": "open-api",
    "status": "PAID"
  },
  "ref_id": "PAY-REF/2025/06/IN/124"
}
{
  "additional_info": {},
  "message": "transaction succeed",
  "payment_date": "2025-06-18",
  "payment_info": {
    "channel": "Visa",
    "credit_card": {
      "amount": 10000,
      "created": "2025-06-18T05:18:49.797030079+07:00",
      "paid_amount": 10000,
      "paid_at": "2025-06-18T05:19:01.192687186+07:00",
      "status": "PAID",
      "updated": "2025-06-18T05:19:01.192687186+07:00"
    },
    "method": "credit_card",
    "source": "open-api",
    "status": "PAID"
  },
  "ref_id": "PAY-REF/2025/06/IN/125"
}
{
  "additional_info": {},
  "message": "transaction succeed",
  "payment_date": "2025-06-18",
  "payment_info": {
    "channel": "blibli",
    "method": "mitra_pembayaran_digital",
    "mitra_pembayaran_digital": {
      "amount": 10000,
      "created": "2025-06-18T05:21:14.36293672+07:00",
      "paid_amount": 10000,
      "paid_at": "2025-06-18T05:21:21.741879097+07:00",
      "status": "PAID",
      "updated": "2025-06-18T05:21:21.741879097+07:00"
    },
    "source": "open-api",
    "status": "PAID"
  },
  "ref_id": "PAY-REF/2025/06/IN/126"
}
{
  "additional_info": {},
  "message": "transaction succeed",
  "payment_date": "2025-06-18",
  "payment_info": {
    "channel": "ewallet",
    "ewallet": {
      "amount": 10000,
      "created": "2025-06-18T05:21:14.36293672+07:00",
      "paid_amount": 10000,
      "paid_at": "2025-06-18T05:21:21.741879097+07:00",
      "status": "PAID",
      "updated": "2025-06-18T05:21:21.741879097+07:00"
    },
    "method": "OVO",
    "source": "open-api",
    "status": "PAID",
  },
  "ref_id": "PAY-REF/2025/06/IN/127"
}

Payment Callback Schema

PathData Type ValidationDescription
additional_infoObjectAdditional information related to the payment data, in key value pairs format
messageStringHuman readable callback message from Paper.id
payment_datestringDate when payment is being made. in YYYY-MM-DD format
payment_infoobjectDetails of payment information
payment_info.channelstringThe payment channel used
payment_info.methodstringThe payment method used
payment_info.messagestringMessage response related to the payment data
payment_info.[payment_method]objectDetails of selected payment method for the specified payment id
payment_info.[payment_method].amountnumberBilled amount
payment_info.[payment_method].createdstringPayment created time
payment_info.[payment_method].paid_amountnumberPaid amount
payment_info.[payment_method].paid_atstringPayment transaction time
payment_info.[payment_method].statusstringPayment status
payment_info.[payment_method].updatedstringPayment last updated time
ref_idstringPayment Reference Id from client

Invoice Callback

The Invoice callback is ONLY triggered when the invoice status changes to PAID.

{
  "message": "Invoice has been paid",
  "data": {
    "invoice": {
      "id": "afef0ea1-caa6-4123-9735-749df749642c",
      "number": "INV/2025/06/126",
      "partner_id": "2d0e80ca-9a46-4e35-a951-a61987fb7c98",
      "status": "paid",
      "amount_due": 10000,
      "total_amount": 10000,
      "updated_at": "2025-06-18 05:21:16.529804427 +0700 WIB"
    }
  }
}
PathData Type ValidationDescription
messagestringHuman readable callback message from Paper.id
dataobjectData object contains invoice data
data.invoiceobjectInvoice object
data.invoice.idstringInvoice unique ID
data.invoice.numberstringInvoice number
data.invoice.partner_idstringPartner Id which related with the invoice
data.invoice.statusstringInvoice payment status
data.invoice.amount_duenumberInvoice due amount
data.invoice.total_amountnumberInvoice total amount
data.invoice.updated_atstringInvoice last updated time