--- title: "Create Payment" slug: "create-payment" updated: 2026-04-01T03:43:19Z published: 2026-04-01T03:43:19Z canonical: "docs.xendit.co/create-payment" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.xendit.co/llms.txt > Use this file to discover all available pages before exploring further. # Create Payment Post/bill-payments/v1/payment This endpoint allows users to submit a payment for a specific product. It can be used for various types of payments, including utility bills, prepaid services, and other products that may or may not require a prior inquiry. SecurityHTTPType Basic Header parametersIdempotency-KeystringRequired Unique key to prevent duplicate payments. Must be unique for each payment request. Exampleunique-idempotency-key-123 Body parametersplnPrepaid PLN Prepaid Payment ```json { "product_id": "PLN_PREPAID_50K", "customer_number": "12345678910", "inquiry_id": "inq-98765", "reference_id": "tx-pln-001", "total_amount": 53200, "additional_properties": {} } ``` plnPostpaid PLN Postpaid Payment ```json { "product_id": "PLN_POSTPAID", "customer_number": "22345678910", "inquiry_id": "inq-98766", "reference_id": "tx-pln-postpaid-001", "total_amount": 159500 } ``` Expand Allobject product_idstring Required Product identifier customer_numberstring Required Customer's account/service number inquiry_idstring Inquiry ID from POST /inquiry (optional) reference_idstring Required Partner's unique transaction reference total_amountnumber Required Total payment amount including admin fee additional_propertiesobject Additional parameters required for specific products Responses200 Payment accepted for processing plnPrepaidPending PLN Prepaid Payment - Pending ```json { "data": { "business_id": "5f27a14a9bf05c73dd040bc8", "type": "payment", "id": "trx-98765", "properties": { "product_id": "PLN_PREPAID_50K", "customer_number": "12345678910", "reference_id": "tx-pln-001", "admin_amount": 3200, "base_amount": 50000, "total_amount": 53200, "currency": "IDR", "status": "PENDING", "fulfilled_at": null, "failure_code": null, "failure_reason": null, "customer_details": [], "product_details": [], "bill_details": [], "payment_details": [] } } } ``` Expand Allobject dataobject business_idstring Xendit's Business ID typestring Type of response, always "payment" Valid values[ "payment" ] idstring Unique payment transaction ID propertiesobject reference_idstring Partner's transaction reference product_idstring Product identifier customer_numberstring Customer's account/service number admin_amountnumber Administrative fee amount base_amountnumber Base product amount total_amountnumber Total amount including admin fee currencystring Currency of the product statusstring Payment status Valid values[ "PENDING", "SUCCEEDED", "FAILED" ] fulfilled_atstring (date-time) | null ISO8601 timestamp when payment completed (null when pending) failure_codestring | null Error code in case of FAILED status failure_reasonstring | null Error message in case of FAILED status customer_details Array of object (BillPaymentDetailKeyValue) Array of customer information key-value pairs object keystring Name of the detail field valuestring Value of the detail field product_details Array of object (BillPaymentDetailKeyValue) Array of product information key-value pairs object keystring Name of the detail field valuestring Value of the detail field bill_details Array of object (BillPaymentDetailKeyValue) Array of billing information key-value pairs object keystring Name of the detail field valuestring Value of the detail field payment_details Array of object (BillPaymentDetailKeyValue) Array of payment information key-value pairs object keystring Name of the detail field valuestring Value of the detail field 400 Inputs are failing validation. The errors field contains details about which fields are violating validation. object error_codestring Valid values[ "API_VALIDATION_ERROR", "FEATURE_NOT_AVAILABLE" ] messagestring errors Array OneOfstringstring objectobject 402 Payment Required - Insufficient balance object error_codestring Valid values[ "API_VALIDATION_ERROR", "FEATURE_NOT_AVAILABLE" ] messagestring errors Array OneOfstringstring objectobject 404 The provided `id` does not exist. Please review the `id` and try again object error_codestring Valid values[ "RATE_LIMIT_EXCEEDED" ] messagestring errors Array OneOfstringstring objectobject 409 Conflict object error_codestring Valid values[ "DUPLICATE_ERROR", "IDEMPOTENCY_ERROR" ] messagestring errors Array OneOfstringstring objectobject 502 Bad Gateway - Biller error object error_codestring Valid values[ "API_VALIDATION_ERROR", "FEATURE_NOT_AVAILABLE" ] messagestring errors Array OneOfstringstring objectobject 503 Service Unavailable - Biller maintenance object error_codestring Valid values[ "API_VALIDATION_ERROR", "FEATURE_NOT_AVAILABLE" ] messagestring errors Array OneOfstringstring objectobject 504 Gateway Timeout - Biller timeout object error_codestring Valid values[ "API_VALIDATION_ERROR", "FEATURE_NOT_AVAILABLE" ] messagestring errors Array OneOfstringstring objectobject