Send payment requests via email or SMS to collect payments from customers.
- Create - Create and send a payment request
- List - List payment requests
- Fetch - Get payment request details
- Update - Update pending requests
- Verify - Verify payment request status
- Send Notification - Resend request notification
- Archive - Archive completed requests
- Finalize - Finalize draft requests
import "github.com/huysamen/paystack-go/api/paymentrequests"
request := paymentrequests.NewCreateRequestBuilder().
Customer("customer@example.com").
Amount(250000). // 2500 NGN
Description("Invoice #INV-001 payment").
DueDate(time.Now().Add(7*24*time.Hour)). // Due in 7 days
SendNotification(true).
Draft(false). // Send immediately
Build()
result, err := client.PaymentRequests.Create(ctx, *request)
if err != nil {
return err
}
fmt.Printf("Payment request sent: %s\n", result.Data.RequestCode.String())query := paymentrequests.NewListRequestBuilder().
PerPage(50).
Page(1).
Customer(12345).
Status("pending").
Build()
result, err := client.PaymentRequests.List(ctx, *query)request := paymentrequests.NewSendNotificationRequestBuilder().
RequestCode("PRQ_request_code").
Build()
result, err := client.PaymentRequests.SendNotification(ctx, *request)request := paymentrequests.NewCreateRequestBuilder().
Customer("client@company.com").
Amount(500000). // 5000 NGN
Description("Website Development - Invoice #2024-001").
DueDate(time.Now().Add(30*24*time.Hour)).
LineItems([]map[string]any{
{
"name": "Website Design",
"amount": 300000,
},
{
"name": "Development",
"amount": 200000,
},
}).
Tax([]map[string]any{
{
"name": "VAT",
"amount": 37500, // 7.5% VAT
},
}).
Build()request := paymentrequests.NewCreateRequestBuilder().
Customer("+2348012345678"). // SMS notification
Amount(150000).
Description("Plumbing service payment").
SendNotification(true).
Build()description := fmt.Sprintf("Payment for Order #%s - %s",
orderNumber,
productName)
request := paymentrequests.NewCreateRequestBuilder().
Description(description).
Build()// For invoices: 30 days
dueDate := time.Now().Add(30*24*time.Hour)
// For services: 7 days
dueDate := time.Now().Add(7*24*time.Hour)
request := paymentrequests.NewCreateRequestBuilder().
DueDate(dueDate).
Build()