diff --git a/go/svc/invoice/main.go b/go/svc/invoice/main.go
index 11733c4..4a80441 100644
--- a/go/svc/invoice/main.go
+++ b/go/svc/invoice/main.go
@@ -95,7 +95,7 @@
 	}
 }
 
-func (s *service) invoicePDF(ctx context.Context, uid string) ([]byte, error) {
+func (s *service) invoicePDF(ctx context.Context, uid, language string) ([]byte, error) {
 	sealed, err := s.m.getSealedUid(ctx, uid)
 	if err != nil {
 		return nil, err
@@ -115,7 +115,7 @@
 			return nil, err
 		}
 
-		rendered, err = renderInvoicePDF(invoice)
+		rendered, err = renderInvoicePDF(invoice, language)
 		if err != nil {
 			return nil, err
 		}
@@ -124,7 +124,7 @@
 }
 
 func (s *service) RenderInvoice(req *pb.RenderInvoiceRequest, srv pb.Invoicer_RenderInvoiceServer) error {
-	rendered, err := s.invoicePDF(srv.Context(), req.Uid)
+	rendered, err := s.invoicePDF(srv.Context(), req.Uid, req.Language)
 	if err != nil {
 		if _, ok := status.FromError(err); ok {
 			return err
@@ -150,7 +150,11 @@
 }
 
 func (s *service) SealInvoice(ctx context.Context, req *pb.SealInvoiceRequest) (*pb.SealInvoiceResponse, error) {
-	if err := s.m.sealInvoice(ctx, req.Uid); err != nil {
+	useProformaTime := false
+	if req.DateSource == pb.SealInvoiceRequest_DATE_SOURCE_PROFORMA {
+		useProformaTime = true
+	}
+	if err := s.m.sealInvoice(ctx, req.Uid, req.Language, useProformaTime); err != nil {
 		if _, ok := status.FromError(err); ok {
 			return nil, err
 		}
