The server API uses resource objects to represent the different types of data that ProcessOut manages for you (for example, Invoice, Customer and Transaction). Browse the Resource types section of the sidebar to learn more about the structure of these objects.

There are several types of resources that you create explicitly when you need them. For example, you must create an Invoice before you can accept a payment and you can create a Customer to store payment details for a user. The create() function for these types lets you pass a parameter object with details of the data you want to store. The code sample shows how to create an Invoice with values for the customer_id, name, amount
and other fields.

curl -X POST https://api.processout.com/invoices \
    -u test-proj_gAO1Uu0ysZJvDuUpOGPkUBeE3pGalk3x:key_sandbox_mah31RDFqcDxmaS7MvhDbJfDJvjtsFTB \
    -d customer_id="cust_CgdhFgj5QEv5I8dx6tHxVVrgxBDDzAgc" \
    -d name="Amazing item" \
    -d statement_descriptor="amazing item" \
    -d amount="4.99" \
    -d currency="AUD" \
    -d order_id="000001"
var ProcessOut = require("processout");
var client = new ProcessOut(
    "test-proj_gAO1Uu0ysZJvDuUpOGPkUBeE3pGalk3x",
    "key_sandbox_mah31RDFqcDxmaS7MvhDbJfDJvjtsFTB");

client.newInvoice().create({
    customer_id:          "cust_CgdhFgj5QEv5I8dx6tHxVVrgxBDDzAgc",
    name:                 "Amazing item",
    statement_descriptor: "amazing item",
    amount:               "4.99",
    currency:              "AUD"
}).then(function(invoice) {
    //

}, function(err) {
    // An error occured

});
import processout
client = processout.ProcessOut(
    "test-proj_gAO1Uu0ysZJvDuUpOGPkUBeE3pGalk3x", 
    "key_sandbox_mah31RDFqcDxmaS7MvhDbJfDJvjtsFTB")

invoice = client.new_invoice().create({
    "customer_id":          "cust_CgdhFgj5QEv5I8dx6tHxVVrgxBDDzAgc",
    "name":                 "Amazing item",
    "statement_descriptor": "amazing item",
    "amount":               "4.99",
    "currency":              "AUD"
})
require "processout"
client = ProcessOut::Client.new(
    "test-proj_gAO1Uu0ysZJvDuUpOGPkUBeE3pGalk3x", 
    "key_sandbox_mah31RDFqcDxmaS7MvhDbJfDJvjtsFTB")

invoice = client.invoice.create(
    customer_id:          "cust_CgdhFgj5QEv5I8dx6tHxVVrgxBDDzAgc",
    name:                 "Amazing item",
    statement_descriptor: "amazing item",
    amount:               "4.99",
    currency:              "AUD"
)
<?php
$client = new \ProcessOut\ProcessOut(
    "test-proj_gAO1Uu0ysZJvDuUpOGPkUBeE3pGalk3x", 
    "key_sandbox_mah31RDFqcDxmaS7MvhDbJfDJvjtsFTB");

$invoice = $client->newInvoice()->create(array(
    "customer_id"          => "cust_CgdhFgj5QEv5I8dx6tHxVVrgxBDDzAgc",
    "name"                 => "Amazing item",
    "statement_descriptor" => "amazing item",
    "amount"               => "4.99",
    "currency"             => "AUD"
));
import "github.com/processout/processout-go"

var client = processout.New(
    "test-proj_gAO1Uu0ysZJvDuUpOGPkUBeE3pGalk3x", 
    "key_sandbox_mah31RDFqcDxmaS7MvhDbJfDJvjtsFTB",
)

iv, err := client.NewInvoice().Create(processout.InvoiceCreateParameters{
    Invoice: &processout.Invoice{
        CustomerID:          processout.String("cust_CgdhFgj5QEv5I8dx6tHxVVrgxBDDzAgc"),
        Name:                processout.String("Amazing item"),
        StatementDescriptor: processout.String("amazing item"),
        Amount:              processout.String("4.99"),
        Currency:            processout.String("AUD"),
    },
})

The response returned by create() is the new Invoice containing your specified data among many other fields. One of the most important fields is id, which contains a unique ID string for the object. You will use the id value extensively as a way to fetch objects and refer to them in the fields of other objects.

{
    "invoice": {
        "id": "iv_0kJ1i4d06uViosJjCKpUHzKeauffMom4",
        "project_id": "proj_gAO1Uu0ysZJvDuUpOGPkUBeE3pGalk3x",
        "subscription_id": null,
        "customer_id": "cust_CgdhFgj5QEv5I8dx6tHxVVrgxBDDzAgc",
        "token_id": null,
        "details": null,
        "transaction_id": "tr_qQI20QnTYPXK1MALJNfkOCjK8nycUObl",
        "name": "Amazing item",
      	"order_id" : "000001",
        "amount": "4.99",
        "currency": "AUD",
        "metadata": {},
        "gateway_data": {},
        "exemption_reason_3ds2": null,
        "challenge_indicator": null,
        .
        .
        .
    },
    "success": true
}