diff --git a/EnvelopeGenerator.Application/Contracts/SQLExecutor/IDocumentExecutor.cs b/EnvelopeGenerator.Application/Contracts/SQLExecutor/IDocumentExecutor.cs
new file mode 100644
index 00000000..e3163f5e
--- /dev/null
+++ b/EnvelopeGenerator.Application/Contracts/SQLExecutor/IDocumentExecutor.cs
@@ -0,0 +1,18 @@
+using EnvelopeGenerator.Domain.Entities;
+
+namespace EnvelopeGenerator.Application.Contracts.SQLExecutor;
+
+///
+///
+///
+public interface IDocumentExecutor
+{
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task CreateDocumentAsync(string base64, string envelope_uuid, CancellationToken cancellation = default);
+}
diff --git a/EnvelopeGenerator.Infrastructure/Executor/DocumentExecutor.cs b/EnvelopeGenerator.Infrastructure/Executor/DocumentExecutor.cs
new file mode 100644
index 00000000..7143b81e
--- /dev/null
+++ b/EnvelopeGenerator.Infrastructure/Executor/DocumentExecutor.cs
@@ -0,0 +1,28 @@
+using Dapper;
+using EnvelopeGenerator.Application.Contracts.SQLExecutor;
+using EnvelopeGenerator.Application.SQL;
+using EnvelopeGenerator.Domain.Entities;
+using Microsoft.Data.SqlClient;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Options;
+
+namespace EnvelopeGenerator.Infrastructure.Executor;
+
+public class DocumentExecutor : SQLExecutor, IDocumentExecutor
+{
+ public DocumentExecutor(IServiceProvider provider, IOptions sqlExecutorParamsOptions) : base(provider, sqlExecutorParamsOptions)
+ {
+ }
+
+ public async Task CreateDocumentAsync(string base64, string envelope_uuid, CancellationToken cancellation = default)
+ {
+ using var connection = new SqlConnection(Params.ConnectionString);
+ var sql = Provider.GetRequiredService();
+ await connection.OpenAsync(cancellation);
+ var parameters = DocumentCreateReadSQL.CreateParmas(base64, envelope_uuid);
+ var documents = await connection.QueryAsync(sql.Raw, parameters);
+ return documents.FirstOrDefault()
+ ?? throw new InvalidOperationException($"Document creation failed. Parameters:" +
+ $"base64={base64}, envelope_uuid='{envelope_uuid}'.");
+ }
+}