Payantis Platform
Payantis.
Payantis.
  1. Issuing API
  • Payantis Platform
    • Payantis Platform
    • API Kullanımı
    • Temel Kavramlar
  • Issuing API
    • Payantis Issuing
    • Adım Adım Issuing API
    • Kural Motoru
    • Hassas Bilgilerin Güvenli İletimi
    • Customer
      • Create Customer
      • Get or Create Customer
      • Get Customer
      • Get Customer List
      • Update Customer
      • Update Customer Segment
      • Upsert Address
      • Upsert Communication
      • Upsert Identification
      • Create Segment
      • Get Segments
      • Update Segment
      • Delete Segment
      • Create User Note
      • Get User Notes
    • Card
      • Create Card
      • Create Noname Card
      • Get Card List
      • Get Card
      • Get Card Details
      • Get Card Policy
      • Get Card Perso Info
      • Get Card Shipment Info
      • Renew Card
      • Detokenize Card
      • Link Noname Card To Customer
      • Unlink Noname Card
      • Update Card Status
      • Update Customer Card Statuses
      • Update Card Policy
      • Update Card Phone Number
      • Update Digital Slip Type
      • Update Auto Renewal Status
      • Get Payantis Public Key
      • Cvv2 - Reset Counters
      • Cvv2 - Verify
      • Cvv2 - Get with Expire Date
      • Pin - Verify
      • Pin - Set
      • Pin - Change
      • Pin - Unblock
      • Pin - Set Random
      • Pin - Send via SMS
      • Creates User Note
      • Get User Notes
    • Product
      • Create Card Art
      • Create Card Bin Range
      • Create Card Product
      • Create Card Product Group
      • Get Card Art List
      • Get Card Bin List
      • Get Card Bin Range List
      • Get Card Product Group List
      • Get Card Product List
      • Get Card Product
      • Update Card Art Name
      • Update Card Bin Range
      • Update Card Product Group
      • Update Card Product
      • Update Card Product Contactless Limit
      • Delete Card Art
      • Delete Card Product Group
      • Delete Card Product
    • Transactions
      • Get Card Transactions
    • Authorization Controls
      • Create Authorization Control
      • Update Authorization Control
      • Link
      • Unlink
      • Get Authorization Controls
      • Get Links
      • Delete Authorization Control
    • Velocity Controls
      • Create Velocity Control
      • Update Velocity Control
      • Get Velocity Control
      • Get Velocity Control List
      • Delete Velocity Control
      • Link
      • Unlink
      • Get Velocity Links
      • Get Card Velocity Limits
      • Card Velocity
      • Get Card Velocity
      • Delete Card Velocity
    • Fees
      • Transaction Fee
        • Create
        • Get List
        • Get
        • Update
        • Delete
        • Link
        • Get Links
        • Unlink
      • Card Issuance Fee
        • Create
        • Update
        • Get
        • Get List
        • Delete
        • Link
        • Get Links
        • Unlink
      • Card Annual Fee
        • Create
        • Get List
        • Update
        • Get
        • Delete
        • Link
        • Get Links
        • Unlink
    • WebHook
      • Register
      • Get Registered Webhooks
      • Unregister
      • Update
    • AuditLog
      • Get Card Audits
      • Get Product Audits
      • Get Policy Audits
    • Schemas
      • AuditLogCardListItemDto
      • CardPhysicalDto
      • AuditLogPolicyListItemDto
      • AuditLogProductListItemDto
      • QueryBuilderFieldDto
      • AddressDto
      • AuthorizationCheckDto
      • AuthorizationCheckLinkDto
      • BaseCardPhysicalInfoDto
      • CompanyInfo
      • CardAccountStatisticInfoDto
      • CardDetokenizeRequestDto
      • CardDetokenizeResponseDto
      • CardPhoneNumberUpdateRequestDto
      • CardPhysicalInfoDto
      • CardPolicyInfoDto
      • CardProductInfoDto
      • CardRenewalRequestDto
      • CardRequestDto
      • CardResponseInfoDto
      • CardStatusInfoDto
      • CardStatusUpdateRequestDto
      • ContactlessLimitDto
      • CreateCardArtDto
      • CreateCardDto
      • CreateCardProductDto
      • CreateCustomerAddressDto
      • CreateCustomerCommunicationDto
      • CreateCustomerDto
      • CreateCustomerIdentificationDto
      • CreateUpdateAuthorizationCheckLinkDto
      • CreateUpdateCardAnnualFeeLinkDto
      • CreateUpdateCardIssuanceFeeLinkDto
      • CreateUpdateCardProductGroupDto
      • CreateUpdateTransactionFeeLinkDto
      • CreateUpdateVelocityCheckLinkDto
      • CreateVelocityCheckDto
      • CustomerInfoDto
      • FindCardResponseDto
      • PinRequestDto
      • TransactionCriteriaDto
      • UpdateCardArtDto
      • UpdateCardAutoRenewalStatusDto
      • UpdateCardProductDto
      • UpdateCardStatusResponseDto
      • UpdateCardStatusAndIssuanceResponseDto
      • UpdateCustomerCardStatusRequestDto
      • UpdateCustomerCardStatusResponseDto
      • UpdateCustomerDto
      • UpdateVelocityCheckDto
      • VelocityAvailableAmountDto
      • VelocityCheckDto
      • VelocityControlsDto
      • VelocityLimitDto
      • VelocityUsedAmountDto
      • BaseCardDto
      • BaseCardProductPhysicalDto
      • BaseLinkDto
      • CardAnnualFeeDto
      • CardAnnualFeeLinkDto
      • CardArtDto
      • CardDeliveryAddressDto
      • CardDeliveryCommunicationDto
      • CardDetailDto
      • CardDto
      • CardInfoDto
      • CardIssuanceFeeDto
      • CardIssuanceFeeLinkDto
      • CardParentDto
      • CardPolicyAddRequestDto
      • CardPolicyDto
      • CardPolicyResponseDto
      • CardProductDetailDto
      • CardProductDto
      • CardProductGroupDto
      • CardProductPhysicalDto
      • CardSummaryDto
      • ChangePinRequestDto
      • CreateAuthorizationCheckDto
      • CreateCardAnnualFeeDto
      • CreateCardIssuanceFeeDto
      • CreateCardPolicyDto
      • CreateCardProductPhysicalDto
      • CreateTransactionFeeDto
      • CreateUpdateCustomerSegmentDto
      • CustomerAddressDto
      • CustomerCommunicationDto
      • CustomerDetailDto
      • CustomerDto
      • CustomerIdentificationDto
      • CustomerSegmentDto
      • CardVelocityRequestDto
      • CardShipmentDetailResponseDto
      • CardShipmentResponseDto
      • Cvv2AndResponseDto
      • IssuanceDetailsDto
      • IssuanceDto
      • IssuanceNewCardDto
      • IssuanceSummaryDto
      • LinkCustomerDto
      • CustomerCardsDto
      • NoNameCardRequestDto
      • TransactionFeeDto
      • TransactionFeeLinkDto
      • UnLinkCustomerDto
      • UpdateAuthorizationCheckDto
      • UpdateCardAnnualFeeDto
      • UpdateCardIssuanceFeeDto
      • UpdateDigitalSlipTypeDto
      • UpdateDigitalSlipTypeResponseDto
      • UpdateTransactionFeeDto
      • UpdatedCardInfo
      • VelocityCheckLinkDto
      • VerifCvv2RequestDto
      • VerifyOrSetPinRequestDto
      • CreateCardBulkResponseDto
      • PublicKeyDto
      • IntegrationKeyExchangeResponseDto
      • TenantWebHookRequestDto
      • CurrencyExchangeRateDto
      • AdditionalAmountDto
      • CreateUserNoteRequestDto
      • NoteResponseDto
      • TaxDto
      • CreateUpdateCurrencyExchangeRateDto
      • TenantWebHookResponseDto
      • UpdateTenantCurrencyConversionDto
      • CardTransactionResponseDto
      • PagedResultDto<AuditLogCardListItemDto>
      • PagedResultDto<AuditLogPolicyListItemDto>
      • PagedResultDto<AuditLogProductListItemDto>
      • PagedResultDto<CardProductDetailDto>
      • PagedResultDto<CardProductGroupDto>
      • PagedResultDto<CustomerDto>
      • PagedResultDto<CustomerSegmentDto>
      • PagedResultDto<IssuanceSummaryDto>
      • PagedResultDto<NoteResponseDto>
      • PagedResultDto<CardTransactionResponseDto>
      • VelocityCheckLinkCriteriaDto
      • CardBinDto
      • CardBinRangeDto
      • CreateCardBinDto
      • CreateUpdateCardBinRangeDto
      • UpdateCardBinDto
      • PagedResultDto<CardBinDto>
  • Kurum Finansal Entegrasyon
    • Finansal Entegrasyon
    • Günsonu Dosyaları
    • Settlement Dosyası Alanları
    • Expire Dosyası Alanları
    • Kurum Real-Time API
      • Authenticate
      • Auth Refresh
      • Balance Inquiry
      • Authorization
      • Reverse
      • Refund
      • Notify
    • Schemas
      • BaseRequestDto
      • RefundRequestDto
      • BaseResponseDto
      • AuthorizationRequestDto
      • AuthorizationResponseDto
      • BalanceInquiryResponseDto
      • RefundResponseDto
      • ReversalResponseDto
      • AdditionalAmountDto
      • BalanceInquiryRequestDto
      • AccountDetailDto
      • OriginalDetailDto
      • ReversalRequestDto
      • BalanceInformationDto
      • NotificationRequestDto
      • NotificationResponseDto
  • Transaction Testing API
    • Transaction Testing
    • Get Card Info
      POST
    • Generate Pin Block
      POST
    • Extract Clear Pin
      POST
    • Process Transaction
      POST
    • Void Transaction
      POST
    • Refund Transaction
      POST
    • Schemas
      • Payantis.SandBox.BaseSimulationResponseDto
      • Payantis.SandBox.DetailedSimulationRefundRequestDto
      • Payantis.SandBox.DetailedSimulationRefundResponseDto
      • Payantis.SandBox.DetailedSimulationRequestDto
      • Payantis.SandBox.DetailedSimulationResponseDto
      • Payantis.SandBox.DetailedSimulationReversalRequestDto
      • Payantis.SandBox.DetailedSimulationReversalResponseDto
      • Payantis.SandBox.Dto.ClearCardInfoDto
      • Payantis.SandBox.Dto.ClearCardInfoRequestDto
      • Payantis.SandBox.Dto.ClearPinRequestDto
      • Payantis.SandBox.Dto.ClearPinResponseDto
      • Payantis.SandBox.Dto.EncryptCardNumberRequestDto
      • Payantis.SandBox.Dto.PinBlockRequestDto
      • Payantis.SandBox.Dto.PinBlockResponseDto
      • Payantis.SandBox.Dto.PinTestRequestDto
      • Payantis.SandBox.Dto.PinTestResponseDto
      • Payantis.SandBox.SimulationRefundRequestDto
      • Payantis.SandBox.SimulationRefundResponseDto
      • Payantis.SandBox.SimulationRequestDto
      • Payantis.SandBox.SimulationResponseDto
      • Payantis.SandBox.SimulationReversalRequestDto
      • Payantis.SandBox.SimulationReversalResponseDto
      • Payantis.SystemParameter.AdditionalAmountCalculationSource
      • Payantis.SystemParameter.AdditionalAmountType
      • Payantis.SystemParameter.ArqcResultCodes
      • Payantis.SystemParameter.CardBrand
      • Payantis.SystemParameter.CardholderActivatedTerminalLevel
      • Payantis.SystemParameter.CardholderPresence
      • Payantis.SystemParameter.CavvResultCode
      • Payantis.SystemParameter.CvcResultCode
      • Payantis.SystemParameter.Dto.AdditionalAmountDto
      • Payantis.SystemParameter.Dto.TaxDto
      • Payantis.SystemParameter.KeyType
      • Payantis.SystemParameter.LmkType
      • Payantis.SystemParameter.PosEntryMode
      • Payantis.SystemParameter.ResponseCodes
      • Payantis.SystemParameter.SLIChannel
      • Payantis.SystemParameter.SLIUcafStatusCode
      • Payantis.SystemParameter.TerminalPinCapability
      • Payantis.SystemParameter.TerminalType
      • Payantis.SystemParameter.TransactionCode
      • Payantis.SystemParameter.TransactionDomain
      • Payantis.SystemParameter.TransactionFlowCode
      • Payantis.SystemParameter.TransactionNetwork
      • Payantis.SystemParameter.TransactionStatus
  • Acquiring API
    • Merchant
      • Create Merchant
      • Get Merchant
      • List Merchants
      • Update Merchant
      • Delete Merchant
      • Upsert Contact
      • Upsert Identity
      • Upsert Address
      • Delete Contact
      • Delete Identity
      • Upsert Address
      • Get Merchant Terminals
      • Create User Note
      • Get User Notes
      • Get Transactions
    • Terminal
      • /api/v1/acquiring/terminal
      • /api/v1/acquiring/terminal
      • /api/v1/acquiring/terminal/list
      • /api/v1/acquiring/terminal/{terminalCode}
      • /api/v1/acquiring/terminal/{terminalCode}
      • /api/v1/acquiring/terminal/change-terminal-allowed-currencies
    • AuthTemplate
      • /api/v1/acquiring/auth-template
      • /api/v1/acquiring/auth-template/{authTemplateCode}
      • /api/v1/acquiring/auth-template/{authTemplateCode}
      • /api/v1/acquiring/auth-template/{authTemplateCode}
      • /api/v1/acquiring/auth-template/list
    • Batch
      • /api/v1/acquiring/batch
      • /api/v1/acquiring/batch/list
      • /api/v1/acquiring/batch/update-batch-status
    • EodMessageTemplate
      • /api/v1/acquiring/eod-message-template
      • /api/v1/acquiring/eod-message-template/{eodTemplateCode}
      • /api/v1/acquiring/eod-message-template/{eodTemplateCode}
      • /api/v1/acquiring/eod-message-template/{eodTemplateCode}
      • /api/v1/acquiring/eod-message-template/list
    • Schemas
      • Payantis.Acquiring.Merchant.AuthTemplateResponseDto
      • Payantis.Acquiring.Merchant.BatchCurrencySummaryDto
      • Payantis.Acquiring.Merchant.BatchDto
      • Payantis.Acquiring.Merchant.ChangeTerminalAllowedCurrenciesDto
      • Payantis.Acquiring.Merchant.CreateAuthTemplateDto
      • Payantis.Acquiring.Merchant.CreateEodMessageTemplateDto
      • Payantis.Acquiring.Merchant.CreateMerchantAddressDto
      • Payantis.Acquiring.Merchant.CreateMerchantContactDto
      • Payantis.Acquiring.Merchant.CreateMerchantDto
      • Payantis.Acquiring.Merchant.CreateMerchantIdentityDto
      • Payantis.Acquiring.Merchant.CreateTerminalDto
      • Payantis.Acquiring.Merchant.EodMessageTemplateDto
      • Payantis.Acquiring.Merchant.EodMessageTemplateResponseDto
      • Payantis.Acquiring.Merchant.MerchantAddressDto
      • Payantis.Acquiring.Merchant.MerchantBasicDto
      • Payantis.Acquiring.Merchant.MerchantContactDto
      • Payantis.Acquiring.Merchant.MerchantDto
      • Payantis.Acquiring.Merchant.MerchantEcommerceDetailsDto
      • Payantis.Acquiring.Merchant.MerchantIdentityDto
      • Payantis.Acquiring.Merchant.MerchantQrDetailsDto
      • Payantis.Acquiring.Merchant.PhysicalTerminalDeviceDto
      • Payantis.Acquiring.Merchant.TerminalDto
      • Payantis.Acquiring.Merchant.TerminalInfoDto
      • Payantis.Acquiring.Merchant.TerminalResponseDto
      • Payantis.Acquiring.Merchant.UpdateAuthTemplateDto
      • Payantis.Acquiring.Merchant.UpdateBatchStatusDto
      • Payantis.Acquiring.Merchant.UpdateEodMessageTemplateDto
      • Payantis.Acquiring.Merchant.UpdateMerchantDto
      • Payantis.Acquiring.Merchant.UpdateTerminalDto
      • Payantis.Acquiring.Merchant.UpsertMerchantAddressDto
      • Payantis.Acquiring.Merchant.UpsertMerchantContactDto
      • Payantis.Acquiring.Merchant.UpsertMerchantIdentityDto
      • Payantis.SystemParameter.Dto.AdditionalAmountDto
      • Payantis.SystemParameter.Dto.Request.CreateNoteEntityTypeDto
      • Payantis.SystemParameter.Dto.Response.NoteResponseDto
      • Payantis.SystemParameter.Dto.TaxDto
      • Payantis.Transaction.Acquiring.Backend.MerchantTransactionResponseDto
      • Payantis.Transaction.Issuing.Backend.CardTransactionResponseDto
      • Payantis.Transaction.MessageFieldsSummaryDto
      • Volo.Abp.Application.Dtos.PagedResultDto<Payantis.Acquiring.Merchant.AuthTemplateResponseDto>
      • Volo.Abp.Application.Dtos.PagedResultDto<Payantis.Acquiring.Merchant.BatchDto>
      • Volo.Abp.Application.Dtos.PagedResultDto<Payantis.Acquiring.Merchant.EodMessageTemplateResponseDto>
      • Volo.Abp.Application.Dtos.PagedResultDto<Payantis.Acquiring.Merchant.MerchantDto>
      • Volo.Abp.Application.Dtos.PagedResultDto<Payantis.Acquiring.Merchant.TerminalDto>
      • Volo.Abp.Application.Dtos.PagedResultDto<Payantis.SystemParameter.Dto.Response.NoteResponseDto>
      • Volo.Abp.Application.Dtos.PagedResultDto<Payantis.Transaction.Acquiring.Backend.MerchantTransactionResponseDto>
      • Volo.Abp.Application.Dtos.PagedResultDto<Payantis.Transaction.Issuing.Backend.CardTransactionResponseDto>
  • Auth API
    • Get Token
    • Refresh Token
  1. Issuing API

Hassas Bilgilerin Güvenli İletimi

PCI-DSS gereği ödeme sistemlerinde hassas verilerin güvenli iletimi çok önemlidir. Bu veriler; açık kart numarası, CVV, son kullanma tarihi ve PIN'dir. Payantis Platform'da kurumdan gelen ve kuruma gönderilen bu tür bilgiler şifrelenerek iletilir.

Kurumun Açık Kart Numarasını Şifrelemesi#

Kurum, bazı durumlarda açık kart numarası ile işlem yapmak isteyebilir. Bu durumda açık kart numarasının Payantis'e gönderilmeden önce şifrelenmesi gerekmektedir. Bunun için:
1.
Payantis 2048 bit uzunluğunda bir RSA anahtar çifti üretir.
2.
Kurum, üretilen anahtarın public kısmını Get Payantis Public Key API'si alır.
3.
Kurum, bu API'den dönen public anahtarla veriyi şifreler ve Payantis'e iletir.
4.
Payantis, gelen veriyi kendi private anahtarıyla çözüp işleme alır.
Şifreleme İşleminin Uygulanması
Açık kart numarası aşağıdaki EncryptCardNo methodu ile şifrelenir. Bu methodda payantisPublicKeyInBase64 parametresi Get Payantis Public Key API'sinden gelmektedir.

Kurumun Şifreli Bilgileri Açması#

Payantis, kart numarası gibi hassas verileri açık bir şekilde saklamaz ve kurumlar ile açık şekilde paylaşmaz. Öte yandan, iş gereksinimlerine göre (örneğin sanal kart bilgilerini göstermek gibi), bu veriler kuruma şifrelenerek gönderilir. Bu şifreleme işlemi için :
1.
Kurum 2048 bit uzunluğunda bir RSA anahtar çifti üretir ve public kısmını Payantis’e iletir.
2.
Payantis bu anahtarı kendi sisteminde saklar ve hassas verileri iletirken bu anahtar ile şifreler.
3.
Kurum Payantis'ten gelen şifreli veriyi kendi private anahtarıyla çözer.
Veri Çözme İşleminin Uygulanması
Payantis'ten gelen hassas ve şifreli veri aşağıdaki DecryptData methodu kullanılarak kurum tarafından çözülebilir. Bu methodda veriyi çözme için kullanılacak anahtar olan tenantPrivateKeyInBase64 kurum tarafından daha önce üretilmiştir.

Fiziksel Kart Şifresinin Güvenli Şekilde İletilmesi#

Kart hamili, kurumun kanalları üzerinden (Çağrı Merkezi, Mobil Uygulama vb.) fiziksel kart şifresini değiştirmek istediğinde, şifre bilgisinin Payantis’e güvenli şekilde iletilmesi gerekir. Benzer şekilde, ilk kart şifresinin müşteriye SMS ile iletilmesi gereken durumlarda da şifre bilgisinin Payantis’ten kuruma güvenli şekilde aktarılması gerekir. Bu iletimlerin güvenliğini sağlamak amacıyla taraflar arasında bir anahtar seremonisi gerçekleştirilir.

Seremoni Kapsamındaki Anahtarlar#

ZMK (Zone Master Key): Anahtar transferlerinde kullanılan ana anahtardır ve Key Encryption Key (KEK) olarak görev yapar. Diğer anahtarların güvenli şekilde paylaşılmasını sağlar.
ZPK (Zone PIN Key): Kart şifrelerinin (PIN) şifrelenmesi ve çözülmesi için kullanılan anahtardır. Bu anahtar, güvenlik sebebiyle ZMK altında şifrelenmiş şekilde paylaşılır. Kurum, ZPK’yı kullanmadan önce kendi güvenlik politikalarına uygun şekilde ZMK ile çözerek (clear hale getirerek) güvenli ortamda saklamalı ve Payantis ile iletişiminde bu anahtarı kullanmalıdır.

Anahtar Seramonisi#

Anahtar seramonisinde sıra ile şu adımlar uygulanır:
1
Payantis, anahtar transferinde kullanılmak üzere kuruma özel bir ZMK üretir. Bu anahtar, güvenlik amacıyla 3 ayrı bileşen halinde kuruma iletilir. Ayrıca, bileşenlerin ve anahtarın doğruluğunun teyit edilebilmesi için KCV değerleri paylaşılır. Bu paylaşım, kurum tarafından belirtilen adreslere posta yolu ile yapılır.
2
Payantis, kart şifrelerinin şifrelenmesinde kullanılmak üzere bir ZPK üretir ve bu anahtarı ZMK altında şifreleyerek kuruma e-posta ile iletir.
3
Kurum, kendisine iletilen ZMK bileşenlerini birleştirerek ZMK’yı oluşturur ve KCV ile doğrular. Ardından, ZPK’yı ZMK kullanarak çözer (ZMK altından çıkararak clear hale getirir) ve güvenli şekilde saklar. Bu ZMK, sonraki ZPK paylaşımlarında da kullanılmaktadır.

Kart Şifrelerinin İletimi#

Kurum, kart şifresini Payantis’e iletmek istediğinde, bu şifre bilgisini ZPK kullanarak PIN block formatında şifreler ve Payantis’e gönderir. Payantis, ilgili şifre bilgisini çözerek kart şifresi güncelleme işlemini gerçekleştirir.
Kurum, müşteriye ilk kart şifresini iletmek üzere Payantis’ten şifre bilgisini talep ettiğinde, Payantis bu bilgiyi ZPK altında şifreleyerek kuruma iletir. Kurum, bu veriyi ZPK ile çözerek kendi güvenli süreçleri üzerinden müşteriye SMS ile iletir.

Örnek Uygulama#

Aşağıdaki örnek uygulamada kart şifresini şifreleme (Pin Block altına alma) ve şifreli kart şifresini çözme fonksiyonları bulunmaktadır. Uygulamada anahtarlar statik olarak verilmiştir, bu anahtarlar güvenli bir ortamda saklanmalı ve uygulamada bu güvenli ortamdan alınarak kullanılmalıdır. Uygulamadaki başlıca methodlar şöyledir:
GenerateZmkFromComponents: ZMK bileşenlerinden ZMK'yı elde eder.
DecryptZpkUnderZmk: ZMK altında gönderilen ZPK anahtarının açık halini elde eder.
GenerateEncryptedPinBlock: Açık haldeki kart şifresinden Pin Block oluşturur ve bu Pin Block'u ZPK anahtarı ile şifreler. Bu sayede pin bilgisi güvenli şekilde iletilebilir hale gelir.
DecryptEncryptedPinBlock: Şifreli haldeki kart şifresinin açık halini elde eder.
Previous
Kural Motoru
Next
Customer
Built with