{
  "info": {
    "name": "paytrack API v1",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": "Versioned public API for paytrack customer, track, payment, reminder, report, ledger, and webhook workflows. Generated from docs/api/openapi.yaml — do not hand-edit; run scripts/generate-api-collections.mjs instead."
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{paytrack_api_key}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://paytrack.ng/api/v1"
    },
    {
      "key": "paytrack_api_key",
      "value": "ptrk_test_replace_me"
    },
    {
      "key": "customer_id",
      "value": "cus_replace_me"
    },
    {
      "key": "track_id",
      "value": "tra_replace_me"
    },
    {
      "key": "payment_id",
      "value": "pay_replace_me"
    },
    {
      "key": "webhook_id",
      "value": "web_replace_me"
    },
    {
      "key": "collection_schedule_id",
      "value": "col_replace_me"
    },
    {
      "key": "payment_mandate_id",
      "value": "pay_replace_me"
    },
    {
      "key": "collection_attempt_id",
      "value": "col_replace_me"
    }
  ],
  "item": [
    {
      "name": "Account",
      "item": [
        {
          "name": "Get authenticated API account context.",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/account"
          }
        },
        {
          "name": "Get current API usage.",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/account/usage"
          }
        },
        {
          "name": "Get subscription API access model.",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/account/subscription"
          }
        }
      ]
    },
    {
      "name": "Customers",
      "item": [
        {
          "name": "List customers",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/customers"
          }
        },
        {
          "name": "Create customer",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/customers",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"ABC Furniture\",\n  \"email\": \"customer@example.com\",\n  \"phone\": \"+2348012345678\",\n  \"notes\": \"value\"\n}"
            }
          }
        },
        {
          "name": "Retrieve customer",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/customers/{{customer_id}}"
          }
        },
        {
          "name": "Update customer",
          "request": {
            "method": "PATCH",
            "url": "{{base_url}}/customers/{{customer_id}}"
          }
        },
        {
          "name": "Archive customer",
          "request": {
            "method": "DELETE",
            "url": "{{base_url}}/customers/{{customer_id}}"
          }
        },
        {
          "name": "Customer ledger",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/customers/{{customer_id}}/ledger"
          }
        }
      ]
    },
    {
      "name": "Tracks",
      "item": [
        {
          "name": "List tracks",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/tracks"
          }
        },
        {
          "name": "Create track",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/tracks",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customerId\": \"value\",\n  \"title\": \"Motorcycle Installment\",\n  \"amount\": 1200000,\n  \"currency\": \"NGN\",\n  \"installments\": 12\n}"
            }
          }
        },
        {
          "name": "Retrieve track",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/tracks/{{track_id}}"
          }
        },
        {
          "name": "Update track",
          "request": {
            "method": "PATCH",
            "url": "{{base_url}}/tracks/{{track_id}}"
          }
        },
        {
          "name": "Archive track",
          "request": {
            "method": "DELETE",
            "url": "{{base_url}}/tracks/{{track_id}}"
          }
        },
        {
          "name": "List payments for a track",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/tracks/{{track_id}}/payments"
          }
        },
        {
          "name": "Track ledger",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/tracks/{{track_id}}/ledger"
          }
        }
      ]
    },
    {
      "name": "Payments",
      "item": [
        {
          "name": "List payments",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/payments"
          }
        },
        {
          "name": "Record payment",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/payments",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"trackId\": \"value\",\n  \"amount\": 100000,\n  \"method\": \"cash\",\n  \"paidAt\": \"value\"\n}"
            }
          }
        },
        {
          "name": "Retrieve payment",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/payments/{{payment_id}}"
          }
        }
      ]
    },
    {
      "name": "Reminders",
      "item": [
        {
          "name": "List reminders",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/reminders"
          }
        },
        {
          "name": "Create reminder",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/reminders"
          }
        },
        {
          "name": "Send reminder",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/reminders/send"
          }
        },
        {
          "name": "Reminder logs",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/reminders/logs"
          }
        }
      ]
    },
    {
      "name": "Reports",
      "item": [
        {
          "name": "Summary report",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/reports/summary"
          }
        },
        {
          "name": "Collections report",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/reports/collections"
          }
        },
        {
          "name": "Overdue report",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/reports/overdue"
          }
        },
        {
          "name": "Queue report export",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/reports/export"
          }
        }
      ]
    },
    {
      "name": "Ledger",
      "item": [
        {
          "name": "Workspace ledger",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/ledger"
          }
        }
      ]
    },
    {
      "name": "Webhooks",
      "item": [
        {
          "name": "List webhook endpoints",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/webhooks"
          }
        },
        {
          "name": "Create webhook endpoint",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/webhooks",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Production webhook\",\n  \"url\": \"https://example.com/webhooks/paytrack\",\n  \"events\": \"value\"\n}"
            }
          }
        },
        {
          "name": "Update webhook endpoint",
          "request": {
            "method": "PATCH",
            "url": "{{base_url}}/webhooks/{{webhook_id}}"
          }
        },
        {
          "name": "Disable webhook endpoint",
          "request": {
            "method": "DELETE",
            "url": "{{base_url}}/webhooks/{{webhook_id}}"
          }
        },
        {
          "name": "Queue a webhook test event",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/webhooks/{{webhook_id}}/test"
          }
        },
        {
          "name": "List webhook delivery history",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/webhooks/{{webhook_id}}/deliveries"
          }
        },
        {
          "name": "Rotate webhook signing secret",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/webhooks/{{webhook_id}}/rotate-secret"
          }
        }
      ]
    },
    {
      "name": "Collection Schedules",
      "item": [
        {
          "name": "List collection schedules",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/collection-schedules"
          }
        },
        {
          "name": "Create collection schedule",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/collection-schedules",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"target_type\": \"payment_plan\",\n  \"target_id\": \"value\",\n  \"frequency\": \"one_time\",\n  \"collection_method\": \"manual\",\n  \"fixed_amount\": 25000,\n  \"start_date\": \"value\",\n  \"end_date\": \"value\",\n  \"interval\": 1\n}"
            }
          }
        },
        {
          "name": "Retrieve collection schedule",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/collection-schedules/{{collection_schedule_id}}"
          }
        },
        {
          "name": "Run a collection schedule action",
          "request": {
            "method": "PATCH",
            "url": "{{base_url}}/collection-schedules/{{collection_schedule_id}}",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"action\": \"activate\"\n}"
            }
          }
        }
      ]
    },
    {
      "name": "Payment Mandates",
      "item": [
        {
          "name": "List payment mandates",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/payment-mandates"
          }
        },
        {
          "name": "Create payment mandate consent record",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/payment-mandates",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"payer_type\": \"customer\",\n  \"payer_id\": \"value\",\n  \"provider\": \"paystack\",\n  \"schedule_id\": \"value\"\n}"
            }
          }
        },
        {
          "name": "Retrieve payment mandate",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/payment-mandates/{{payment_mandate_id}}"
          }
        },
        {
          "name": "Revoke payment mandate",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/payment-mandates/{{payment_mandate_id}}/revoke",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"Customer withdrew consent\"\n}"
            }
          }
        }
      ]
    },
    {
      "name": "Collection Attempts",
      "item": [
        {
          "name": "List scheduled collection attempts",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/collection-attempts"
          }
        },
        {
          "name": "Retrieve collection attempt",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/collection-attempts/{{collection_attempt_id}}"
          }
        }
      ]
    }
  ]
}
