PaymentIntent

The PaymentIntent is arguably the most important concept to understand. This is what every service revolves around, and it is therefore the most important concept

Intent-object

Stripe

POST /v1/payment_intents

{
  // Amount
  "amount": 1000,
  "currency": "nok",
  // Payment method
  "payment_method_types": ["card"],
  "capture_method": "manual",
  // Customer
  "customer": "your-external-customer-id",
  "receipt_email": "Ola.Nordmann@example.com",
 
  "description": "Online store purchase",
  // Important metadata
  "meta_data": {
    "externalPaymentReferenceID": "your-external-unique-id",
    "sellerConnectedAccountID": "cad66277-2a14-4648-aa94-8df9d81a6363",
    "externalObjectIdTag": "your-external-object-id-tag",
    "your-other-keys": "example"
  }
}

Paybucky

POST /payments

{
  // Amount
  "grossAmount": 1000,
  "currency": "NOK",
  // Payment method
  "paymentGateway": "creditcard",
  "chargeImmediately": true,
  // Customer
  "customerExternalID": "your-external-customer-id",

  "environment": "test",
  "description": "Online store purchase",

  // Important metadata
  "externalPaymentReferenceID": "your-external-unique-id",
  "sellerConnectedAccountID": "cad66277-2a14-4648-aa94-8df9d81a6363",
  "externalObjectIdTag": "your-external-object-id-tag",
  "metaData": {
    "your_other_keys": "example"
  }
  // The money split: What amount each account get. 
  // This means you can split your payments on multiple sellers.
  "moneySplitList": [
    {
      "connectedAccountID": "cad66277-2a14-4648-aa94-8df9d81a6363",
      "amount": 500,
      "description": "T-shirt product name",
      "externalID": "t-shirt-product-id"
      "isFee": false,
    },
    //...optionally more splits to other accounts
    {
      "connectedAccountID": "00000000-0000-0000-0000-000000000000",
      "amount": 250,
      "description": "Platform fee",
      "externalID": "platform-fee",
      "isFee": true
    }
  ],

  // When paying, this is where the Customers are redirected
  "successUrl": "https://your-system.com/payment/success",
  "failedUrl": "https://your-system.com/payment/failed",
}

As you can see, creating a PaymentIntent requires more fields. This might seem less intuitive, but the major advantage is that you have full control over the payment from the very start—with little to no additional action required afterward. For example, if you want to create or update a customer, you can do it directly within our PaymentIntent object, whereas Stripe would need a separate call. See Customer page for more information:

Customer