API Documentation

API Endpoint

Payments

Payments

The Payment object represents an invoice payment in invoicing system.

You can find out more about payments in our Help documentation: Recording Payments.

Following diagram shows payments in our data hierarchy:

Payments diagram

Supported filter params

  • invoice_id (array)

  • company_id (array)

  • project_id (array)

  • budget_id

  • paid_after

  • paid_before

  • subsidiary_id (array)

  • paid_on

  • number

  • written_off_on

  • external_id

  • amount

Supported sort params

  • amount

  • paid_on

  • written_off_on

  • note

  • invoice.deal.company.name

  • invoice.deal.project.name

  • invoice.deal.name

  • invoice.number

  • date

Filter operations are supported on this endpoint.

GET /api/v2/payments
Requestsreturns payments

GET  /api/v2/payments

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": [
    {
      "id": "1",
      "type": "payments",
      "attributes": {
        "paid_on": "2025-08-02",
        "written_off_on": null,
        "note": null,
        "external_id": null,
        "currency": "EUR",
        "currency_default": "USD",
        "currency_normalized": "EUR",
        "amount": 10000,
        "amount_default": 12500,
        "amount_normalized": 10000
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "823"
          }
        },
        "invoice": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "links": {
    "first": "http://api-test.productive.io/api/v2/payments?page%5Bnumber%5D=1&page%5Bsize%5D=30",
    "last": "http://api-test.productive.io/api/v2/payments?page%5Bnumber%5D=1&page%5Bsize%5D=30"
  },
  "meta": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 1,
    "page_size": 30,
    "max_page_size": 200
  }
}

Get payments
GET/api/v2/payments


GET /api/v2/payments/1
Requestsreturns payment

GET  /api/v2/payments/2

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "2",
    "type": "payments",
    "attributes": {
      "paid_on": "2025-08-02",
      "written_off_on": null,
      "note": null,
      "external_id": null,
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "amount": 10000,
      "amount_default": 12500,
      "amount_normalized": 10000
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "824"
        }
      },
      "invoice": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Gets a payment
GET/api/v2/payments/{id}

URI Parameters
HideShow
id
number (required) Example: 1

payment id


POST /api/v2/payments
Requestscreates payment and tracks intercom eventreturns error

POST  /api/v2/payments

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "payments",
    "attributes": {
      "amount": "10000.0",
      "paid_on": "2025-08-02"
    },
    "relationships": {
      "invoice": {
        "data": {
          "type": "invoices",
          "id": "96"
        }
      }
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "4",
    "type": "payments",
    "attributes": {
      "paid_on": "2025-08-02",
      "written_off_on": null,
      "note": null,
      "external_id": null,
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "amount": 10000,
      "amount_default": 12500,
      "amount_normalized": 10000
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "825"
        }
      },
      "invoice": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

POST  /api/v2/payments

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "payments",
    "attributes": {
      "amount": ""
    }
  }
}
Responses422
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "source": {
        "pointer": "data/attributes/invoice"
      }
    },
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "source": {
        "pointer": "data/attributes/amount"
      }
    },
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "source": {
        "pointer": "data/attributes/paid_on"
      }
    },
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "is not a date",
      "source": {
        "pointer": "data/attributes/paid_on"
      }
    }
  ]
}

Create a payment
POST/api/v2/payments

URI Parameters
HideShow
invoice_id
number (required) Example: 1

invoice id

amount
number (required) Example: 100

ammount

paid_on
date (required) Example: 2018-01-01

paid on


PATCH /api/v2/payments/1
Requestsupdates paymentreturns error

PATCH  /api/v2/payments/11

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "payments",
    "attributes": {
      "amount": 2000
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "11",
    "type": "payments",
    "attributes": {
      "paid_on": "2025-08-02",
      "written_off_on": null,
      "note": null,
      "external_id": null,
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "amount": 2000,
      "amount_default": 2500,
      "amount_normalized": 2000
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "830"
        }
      },
      "invoice": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/payments/13

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "payments",
    "attributes": {
      "amount": ""
    }
  }
}
Responses422
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "source": {
        "pointer": "data/attributes/amount"
      }
    }
  ]
}

Update a payment
PATCH/api/v2/payments/{id}

URI Parameters
HideShow
id
number (required) Example: 1

payment id


DELETE /api/v2/payments/1
Requestsdeletes payment

DELETE  /api/v2/payments/15

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses204
This response has no content.

Deletes a payment
DELETE/api/v2/payments/{id}

URI Parameters
HideShow
id
number (required) Example: 1

payment id


Generated by aglio on 02 Aug 2025