OVPM table in SAP Business One (Outgoing Payments (header))

OVPM is the SAP Business One table that stores the header of every outgoing payment: the vendor (or account) paid, the date and the amounts by cash, transfer, check and card. It has the same columns as ORCT. The documents it pays are in VPM2, checks in VPM1, and its object type is 46.

OVPM key fields

FieldWhat it holds
DocEntryInternal key. VPM1 and VPM2 point to it through their DocNum column.
DocNumPayment number users see.
DocDatePosting date of the payment.
DocTypeS = vendor, C = customer (for example a refund), A = account.
CardCodeBusiness partner paid. Joins to OCRD.CardCode.
CashSumAmount paid in cash.
TrsfrSumAmount paid by bank transfer, from TrsfrAcct.
CheckSumTotal of the checks issued.
CreditSumAmount paid by credit card.
DocTotalTotal amount paid in local currency.
CanceledN = normal, Y = cancelled, C = the cancellation itself.
TransIdJournal entry of the payment. Joins to OJDT.TransId.

How OVPM relates to other tables

OVPM works exactly like ORCT on the purchasing side. VPM2 lists the paid documents: VPM2.DocNum is the OVPM.DocEntry of the payment, VPM2.DocEntry is the key of the paid document and VPM2.InvType tells you its type (18 = A/P invoice, 19 = A/P credit memo). SumApplied is the amount paid per document. Payments created by the Payment Wizard are ordinary OVPM rows too.

Common joins

  • OVPM T0 INNER JOIN VPM2 T1 ON T1.DocNum = T0.DocEntry (paid documents)
  • VPM2 T1 INNER JOIN OPCH T2 ON T2.DocEntry = T1.DocEntry AND T1.InvType = '18' (A/P invoices paid)
  • OVPM T0 LEFT JOIN OCRD T3 ON T3.CardCode = T0.CardCode (vendor master)
  • OVPM T0 INNER JOIN OJDT T4 ON T4.TransId = T0.TransId (journal entry)

When you use the OVPM table

Use OVPM for cash-flow reports, a payments register per bank account and vendor statements. Join VPM2 to OPCH when purchasing or accounts payable needs to know which vendor invoices were paid, when and with which payment, for example to answer a supplier who says an invoice is still open.

Example query: a/p invoices paid by each outgoing payment

SQL Server

SELECT T0.DocNum AS PaymentNo, T0.DocDate, T0.CardCode, T0.CardName,
  T2.DocNum AS APInvoiceNo, T2.NumAtCard AS VendorRef, T1.SumApplied
FROM OVPM T0
INNER JOIN VPM2 T1 ON T1.DocNum = T0.DocEntry
INNER JOIN OPCH T2 ON T2.DocEntry = T1.DocEntry AND T1.InvType = '18'
WHERE T0.Canceled = 'N'
ORDER BY T0.DocDate, T0.DocNum

SAP HANA (column names in double quotes)

SELECT T0."DocNum" AS "PaymentNo", T0."DocDate", T0."CardCode", T0."CardName",
  T2."DocNum" AS "APInvoiceNo", T2."NumAtCard" AS "VendorRef", T1."SumApplied"
FROM OVPM T0
INNER JOIN VPM2 T1 ON T1."DocNum" = T0."DocEntry"
INNER JOIN OPCH T2 ON T2."DocEntry" = T1."DocEntry" AND T1."InvType" = '18'
WHERE T0."Canceled" = 'N'
ORDER BY T0."DocDate", T0."DocNum"

Paste either version in Tools → Queries → Query Generator. Need the other dialect for your own query? Use the SQL to HANA converter.

Common pitfall: Filter Canceled and check InvType

Cancelled outgoing payments stay in OVPM with Canceled = 'Y', so leave them out or your cash-out total is too high. When you join VPM2, always filter InvType: without it, a payment that also settled a credit memo or a journal entry joins to an unrelated A/P invoice with the same DocEntry number. See Outgoing payments query.

Ready-made queries that use OVPM

Related tables

OPCH (A/P Invoice (header)) · ORCT (Incoming Payments (header)) · OJDT (Journal Entry (header)) · search all SAP Business One tables

Sources: SAP Business One documentation and SDK (DI API database tables reference), SAP Help Portal.

Ready to get started?

Tell us what you need. You get a clear technical answer, a fixed scope and a price, usually within 24 hours.