View Source ExPipedrive.DealInstallments (ex_pipedrive v0.2.0)

Pipedrive deal-installments resource — scheduled payment entries on deals.

API v2 only. Growth plan and above (per Pipedrive OpenAPI).

There is no GET /api/v2/deals/:id/installments; list installments with GET /api/v2/deals/installments?deal_ids=... (required deal_ids).

Example

{:ok, page} =
  ExPipedrive.DealInstallments.list_page(client, deal_ids: [1, 2])

{:ok, installment} =
  ExPipedrive.DealInstallments.create(client, 1, %{
    description: "Delivery Fee",
    amount: 10,
    billing_date: "2025-03-10"
  })

{:ok, installment} =
  ExPipedrive.DealInstallments.update(client, 1, installment.id, %{
    amount: 15
  })

{:ok, :ok} = ExPipedrive.DealInstallments.delete(client, 1, installment.id)

Summary

Functions

Adds an installment to a deal via POST /api/v2/deals/:id/installments.

Deletes one deal-installment via DELETE /api/v2/deals/:id/installments/:installment_id.

Lists one page of installments via GET /api/v2/deals/installments.

Lazily streams deal-installments across v2 cursor pages.

Updates a deal-installment via PATCH /api/v2/deals/:id/installments/:installment_id.

Functions

Link to this function

create(client, deal_id, attrs)

View Source
@spec create(Tesla.Client.t(), term(), map()) ::
  {:ok, ExPipedrive.DealInstallment.t()} | {:error, ExPipedrive.Error.t()}

Adds an installment to a deal via POST /api/v2/deals/:id/installments.

Requires :description, :amount, and :billing_date.

Link to this function

delete(client, deal_id, installment_id)

View Source
@spec delete(Tesla.Client.t(), term(), term()) ::
  {:ok, :ok} | {:error, ExPipedrive.Error.t()}

Deletes one deal-installment via DELETE /api/v2/deals/:id/installments/:installment_id.

@spec list_page(
  Tesla.Client.t(),
  keyword()
) :: {:ok, ExPipedrive.Page.t()} | {:error, ExPipedrive.Error.t()}

Lists one page of installments via GET /api/v2/deals/installments.

Requires :deal_ids — a list of deal ids or a comma-separated string (max 100 ids per Pipedrive).

Options: :cursor, :limit (clamped to 500), :sort_by, :sort_direction.

@spec stream(
  Tesla.Client.t(),
  keyword()
) :: Enumerable.t()

Lazily streams deal-installments across v2 cursor pages.

Requires :deal_ids (see list_page/2).

Link to this function

update(client, deal_id, installment_id, attrs)

View Source
@spec update(Tesla.Client.t(), term(), term(), map()) ::
  {:ok, ExPipedrive.DealInstallment.t()} | {:error, ExPipedrive.Error.t()}

Updates a deal-installment via PATCH /api/v2/deals/:id/installments/:installment_id.