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
| Field | What it holds |
|---|---|
DocEntry | Internal key. VPM1 and VPM2 point to it through their DocNum column. |
DocNum | Payment number users see. |
DocDate | Posting date of the payment. |
DocType | S = vendor, C = customer (for example a refund), A = account. |
CardCode | Business partner paid. Joins to OCRD.CardCode. |
CashSum | Amount paid in cash. |
TrsfrSum | Amount paid by bank transfer, from TrsfrAcct. |
CheckSum | Total of the checks issued. |
CreditSum | Amount paid by credit card. |
DocTotal | Total amount paid in local currency. |
Canceled | N = normal, Y = cancelled, C = the cancellation itself. |
TransId | Journal 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
- Outgoing payments by date: Vendor payments made in a period, split into cash, transfer, check and card.
- Vendor aging report (AP aging): Open A/P invoice balance per vendor in due-date buckets.
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.
