---
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